Developing a Delivery App for Express Courier Delivery Company

What is the delivery app for

It’s easy: to make and track the order, сall the courier, find the nearest office, make a callback request, and calculate the delivery cost. How to add all these options into one delivery app? This question is far trickier. And that is what we needed to do for CDEK, a logistics company providing international express-courier delivery services.

CDEK has Android development expertise. And the customer decided to begin with an Android app to review the code and evaluate our skills. We were to develop an iPhone app right after Android version.

Android app: part one

We found some gaps in the documentation at the very beginning, it slowed us down a bit. Then we got a team member from the client side, so we filled all the gaps in 2 months and began the first phase of the project. Our goal was to develop an app with limited functionality:

  • Use tracking number to get the latest delivery status
  • Search CDEK offices within a radius of 1, 3 or 10 kilometers according to set 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. Well done! But no pause, we continue moving on.

Express courier delivery app

Android app: part two

We developed two important features:

  • Calculate delivery cost
  • Call the courier

This takes several parameters including the type of user (sender or receiver), addresses, delivery time, weights, and dimensions.

While we were working on this functionality, it became clear that additional options are needed. Is there any way to send a parcel on the weekend? Whether it’s required to carry a box up to the top floor? Should a user get an SMS delivery notification? Lots of small things affect the delivery cost. And furthermore, we decided to make a range of rates: the cheapest delivery, the fastest one, and 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.

iOS app

The next phase started with the iOS app.

We took into account our experience of the first two phases and didn’t have any problem with the final one. We added authorization, so now CDEK customers are able to:

  • login
  • watch their profile and order history
  • filter orders with different statuses
  • name the orders


Building the calculator was quite challenging. The solution has to change its form according to inputted parameters. All the additional options are included in a separate list with custom controls. We 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 a costing with no delivery order. Additionally, users can always take a step back, and the app saves all the data. We hid quite a complex logic and functionality beneath an intuitive app interface.

Another thing we can be proud of is the UI/UX app design that we created from the ground up. We put a  lot of effort to make it intuitive, simple and user-friendly along with complex functionality.

CDEK mobile app

Summing up

The mobile app gave a new way for CDEK to communicate with their customers. The built-in cost calculator is a big competitive advantage. Today, it has over 100,000 downloads on Google Play and more than 50,000 downloads on App Store.

Now we can say, it was a good decision to split the project into two parts, Android and iOS. We developed an app for one platform, tested by two different teams (our and the client’s), and then ported it another platform. Cost-effective solution with minimum changes.


Android: Java, Kotlin, Databinding, Rxjava, Dagger 2, Retrofit, Objectbox Google maps, Yandex api
iOS: Swift, VIPER, Dependency Injection, Realm, Eureka, Google Maps
Backend: Java 8, Spring, Hibernate, PostgreSQL, MapStruct, Flyway


  • Spring
  • PostgreSQL
  • Hibernate
  • java
  • Android
  • Swift
  • IOS

Related projects

Let's move forward with your project

Get in touch

You can upload doc, docx, pdf, odt, ott, txt, jpeg, xls, rar, zip, 7z files under 200mb

Filter by