Developing a Delivery App for Express Courier Delivery Company
What is the delivery app for
It’s easy. The app is meant to make and track the order, сall the courier, find the nearest office, make a callback request, and calculate the delivery cost. How do you add all of these options into one delivery app? The answer to this question is far trickier. And that is what we needed to do for CDEK, a logistics company providing international express-courier delivery services.
Android App: Part One
In the beginning, we found some gaps in the documentation. For this reason, we got a team member from the client side, which allowed us to fill all the gaps in 2 months and start the first phase of the project. Our goal was to develop an app with limited functionality:
- use a tracking number to get the latest delivery status
- search CDEK offices within a radius of 1, 3 or 10 kilometers by the following parameters: opening hours and conditions of acceptance (e.g. acceptance of goods over 30 kg)
- contact with a call center
- callback request
The first Android app version was released on Google Play in the fall of 2017.
Android App: Part Two
We developed two important features:
- calculating delivery cost
- calling the courier
They include several parameters: the type of user (sender or receiver), addresses, delivery time, weights, and dimensions.
While we were working on this functionality, it became clear that the app needed additional options. What if a client wants to receive a box at the top floor? Should a user get an SMS delivery notification? Such details affect the delivery cost. Also, we decided to make a range of rates: the cheapest delivery, the fastest one, and the options in between. The history of calculations can be saved as a history in the app.
The client agreed on all the additional options that were not foreseen at the beginning. Every single one of them required an extra workload. But, despite it, we successfully released the second version of Android in November, just in two months after the first one.
The next phase started with the iOS app development.
We took into account the experience we acquired in the previous phases so the development went smoothly. We added authorization so that CDEK customers could:
- see their profile and order history
- filter orders with different statuses
- name the orders
Building the calculator was quite challenging. The solution had to change forms according to inputted parameters. We gathered all the additional options in a separate list with custom controls and created a complex screenflow for any given scenario. Users can сall the courier first and then calculate a cost, and vice versa. Or, they can just save the price with no delivery order. Additionally, users can always take a step back and the app will save all the data. Our complex logic and functionality are hidden beneath an intuitive app interface.
Another thing we are proud of is the UI/UX app design that we created from scratch. We put a lot of effort to make it intuitive, simple and user-friendly without compromising its complex functionality.
At first, the design was simple. On client request, we made a Springboard menu. The map screen had a two-step search bar. First, users searched for a city, then typed in an address. Also, we added office cards with basic information: address, opening hours, weight restrictions, and phone number.
But, in the life cycle of a mobile app, there comes a moment when you need to make a major upgrade. Since the launch, business and customer requirements have grown. Taking into account users' wishes and our recommendations, CDEK decided to simplify the UI/UX design according to modern trends. In the new concept, the Springboard main screen was replaced by Tabbars. The menu items "Our Offices", "Calculate Delivery", "Call Courier", and "Track Order" became tab bars "Find", "Offices", "Calculations", "Courier", and "Menu" at the bottom of the screen.
We made the map more informative and user-friendly. Now, you can find the necessary office with one request. Additionally, we updated office cards. Users can now see: the address, working hours, and the name of the nearest ground stop. They can also create a route from the current or selected location to the office.
In the future, we will make some UI/UX improvements to the calculator.
New App Features
Now, in addition to working on the design, we are improving the app from the tech side. We added push notifications to let users know that the parcel was sent, arrived at the pickup point, handed over to the courier for delivery, or delivered. For the Android version of the app, we provided AndroidX support and added SSL Pinning to prevent third-party traffic interception — MITM attacks.
Also, we added authorization so that users view a list of their orders. Next, we are moving on to the calculator redesign to give it a fresher look. Stay tuned for more!
The mobile app became one of the key ways for CDEK to communicate with their customers. So far, the app has a total of 1,200,000+ downloads on Google Play and the App Store. The average ratings in the AppStore and Google Play are 4.7 and 4.5, respectively.
Splitting the project into two parts, Android and iOS, was a good decision. We developed an app for one platform, tested by two different teams, ours and the client’s, and then ported it to another platform. This resulted in a cost-effective solution with minimal changes.
Android: Java, Databinding, Rxjava, Dagger 2, Retrofit, Objectbox
iOS: Swift, VIPER, Dependency Injection, Realm, Eureka
Server-Side: Java 8, Spring, Hibernate, PostgreSQL, MapStruct, Flyway
Integrations: Fabric, Firebase, Appsflyer, UXCam, Google Maps