Mobile App Development for Goods Delivery
Delivery of goods differs fundamentally from food delivery: large-sized freight, interval time slots, signature upon receipt, integration with external ERP/WMS. We create apps for delivery services and online stores that solve these problems — with accurate rate calculation, optimized routes, and reliable parcel tracking. Our experience: 5 years in the market and over 20 delivery projects. We know how to combine the client app, courier app, and admin panel into a single system.
How does a mobile delivery app solve the complex tariff problem?
Calculating delivery cost is the first pain point for any logistics business. The tariff depends on weight, dimensions, fragility, and even temperature regime. Storing the tariff matrix on the server is the only correct solution: a POST /delivery/calculate request returns available options with price and time. Hardcoding in the app inevitably leads to errors when conditions change. Server-side rate calculation allows flexible tariff adjustments without releasing a new app version. For example, when fuel costs change or a new tariff appears, it's enough to update the config on the server. To optimize routes, we use OR-Tools — a library from Google that can reduce mileage by 15-20%. A delivery goods API standardizes data exchange between the app and the warehouse.
Managing time slots is another challenge. Clients choose a 2-4 hour window, not an exact time. Slots are generated N days ahead, each with an order limit. When a slot is full, it becomes unavailable. Capacity is calculated based on the number of active couriers and average load per route. This avoids overloading couriers and reduces complaints. In one project with a hypermarket chain, we implemented dynamic route rebuilding when a new order is added — delivery time decreased by 25% compared to a fixed route.
Why is ERP integration important?
Without integration with ERP (1С, MyWarehouse, SAP), the app risks selling out-of-stock items. We implement synchronization via REST API or asynchronous queues (RabbitMQ/Kafka). The product catalog is cached locally (Room/Core Data) with TTL and invalidation on an "assortment update" event. A double check — when adding to cart (server confirms availability) and at final checkout — almost completely eliminates scenarios where an item is ordered but not available. For a home goods store chain, we implemented integration with 1С via REST API. When a price or stock changes in 1С, it sends an event, the app updates its cache and immediately blocks the order if the item is unavailable. This reduced returns by 30%. For product returns, the client initiates a request through the app, the server creates a return invoice and starts a refund.
Server-side rate calculation is three times more accurate than hardcoding — the error margin drops from 15% to 5% thanks to centralized rule updates. Additionally, we automatically generate reports on courier efficiency in Power BI or Tableau.
How to set up server-side rate calculation? Step-by-step process
- Define parameters: weight, dimensions, fragility, temperature regime, tariff zone.
- Backend development: create a
calculateendpoint with injected pricing rules. - Load tariff matrix: as a JSON config that can be changed without redeployment.
- Integration with a mapping API: to calculate distance and time based on accurate routes.
- No request failures: on error, a fallback tariff (maximum or last successful) is used.
- Testing: 100+ scenarios, including edge cases for weight and fragility.
What we use?
| Component | iOS | Android | Cross-platform |
|---|---|---|---|
| Language/Framework | Swift 5.9+, SwiftUI | Kotlin, Jetpack Compose | Flutter/Dart, React Native/TS |
| Storage | CoreData, CloudKit | Room, DataStore | sqflite, Hive |
| Network | URLSession + async/await | Retrofit + Coroutines | Dio, axios |
| DI | Manual or Swinject | Hilt, Koin | Provider, Riverpod |
| Push | APNs + FCM | FCM | FCM |
Push notifications are implemented via APNs in strict compliance with App Store Review Guidelines Section 4.2. On Android, via FCM with high priority.
What's included in the work?
| Stage | Scope | Result |
|---|---|---|
| Analysis | Client interviews, studying business processes, API integrations | Technical specification |
| Design | UI/UX design, database architecture, stack selection | Design mockups, ER diagrams |
| Development | Backend (API), client apps, courier app | Source code, API documentation |
| Testing | Unit, integration, load, UAT | Test report |
| Deployment | Publishing to App Store/Google Play, CI/CD setup | Working app in stores |
Timeline and cost
MVP (one platform + courier app) takes 8–14 weeks. Full platform (iOS + Android, 1С integration, slots, returns, dispatcher panel) — 4–8 months. Cost is calculated individually after requirements analysis. We guarantee transparent stages and fixed deadlines. Get a consultation for your project — we'll estimate the timeline and cost. Contact us to discuss details.
Try our approach — order a preliminary project estimate. Find out how we can help your business automate delivery and reduce costs.







