The wholesale
b2b marketplace

Home   →   Projects   →   The Wholesale B2B Marketplace

Project Details

The first app version was implemented in 2012 when the client asked our Agilie team to improve the existing app’s features. In 2015 he decided to start over and appointed us a task of developing the retail marketplace platform from scratch. During this time, our team built Android and iOS apps and participated in creating some parts of the web functionality.

The mobile b2b platform we’ve made helps suppliers from China, India, and other countries to sell their goods to retailers from the US and Europe. The buyer can choose and order the product he needs from the list of manufactured goods. In addition, it is possible to send your wishes to the seller so that he creates prototypes based on them.

For today, the service successfully operates, and there are world famous brands among its clients, such as Adidas.

Challenges

#1. Migration to new programming languages

iOS. Initially, the iOS version of the project was written in Objective-C. However, the increased popularity of Swift has led to the idea of migration to this new language with its undoubted advantages. Therefore, the new app features were being written in the Swift language, and the old code was being rewritten too. When Swift 3.0 was released, the new changeover turned out to be a laborious task because the syntax has changed significantly, and a number of features had to be fixed manually. Fortunately, subsequent language improvements have been much easier for developers.


Android. Android app was written in Java. But when we started working on the project, Kotlin became the official development language for the Android platform. Therefore, it was decided to write new features in Kotlin and, if possible, rewrite the old ones. Since there are no problems with the mutual compatibility of these languages, there were no difficulties in their interaction.

#2. Loading content

In the first version of the project, media content was being downloaded directly, which was fraught with risks of data loss in such cases as crashes, battery discharge, etc. Besides, the client's requirements for the application had increased, and the updated service should have been able to deal with 100+ photos. To achieve such an aim, we used the Realm database that has several advantages, for example, data encryption capabilities. What's more, we have resorted to the technology of storing photo/video in the cacheable phone storage (the feature of the cacheable directory is that when the phone memory is full it can self-clean as needed). This approach ensures the preservation of content and the ability to continue downloading data even in cases of force majeure.

#3. Moving to Clean Architecture

The original code for the old app version was written using the MVP architecture. Having undertaken the project, we decided to use the Clean Architecture approach. This architecture helped us to implement the messaging system more qualitatively and to refactor the main screens, which later allowed speeding up the bug fixing and changing of features.

#4. Offline access

Then the client came up with the idea of implementing the offline mode. Due to this feature, in the absence of an Internet connection, the main data for the display is being taken from the database. At the moment, only viewing and deferred download of media content to the server is available. The plans include the possibility of creating Inspirations / Wishlists, editing, adding comments offline.

#5. Customizing chat

We didn't create the feature of messaging (chat) from scratch but we were faced with the need to improve it. The fact is that former client's developers used the Sinch library for instant messaging and the native Core Data database for storing information (messages, contacts, etc.). The Sinch library is not such a bad choice, but it did not fully meet our needs. We had to add code to the library so that it could cope with all the tasks, which led to a considerable loss of time (and therefore client's money). In this regard, it was decided to look for more suitable alternatives. The result of our search was the powerful and easy-to-use Twilio service. It allowed us to organize a stable chat operation and unload the server.

b2b marketplace image
Technology used:
iOS
Objective-C
Swift
Android
Java
Kotlin

Implemented Features

Siri Integration

This B2B marketplace platform supports Siri technology. For example, the user can ask the app to send a message to a specific recipient ("Hey Siri, send a message to Joe").

iMessages extension

iMessages extension we've implemented is a list of goods from Inspirations/Wishlist/Showrooms that can be sent to the interlocutor in the form of a picture and a short product description.

Augmented reality

After the release of AR Kit, our team implemented support for augmented reality. This feature helps to study 3D models of goods in a three-dimensional format: one can twist them and view from different angles and distances.

b2b marketplace features image

Chatting

The chat feature allows users to communicate with each other in the format most convenient for them.

Inspirations

The Inspirations screen is a set of pictures that a user saves on his phone and collects into specific groups. Their task is to illustrate what kind of goods this user dreams about.

Wishlist

Wishlist also gives the opportunity to collect groups of pictures that show products that the user would like to have. However, this feature, unlike the previous one, allows sharing this Wishlist with the manufacturer.

b2b marketplace features image

Showrooms

Showrooms is a ready-made collection of goods that the manufacturer shares. The user can choose and order the list of products he likes.

Notifications

The application also provides users with the possibility to get push notifications of changes in Wishlists and Showrooms.

b2b marketplace features image
Contact us