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.
#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.