Developing a Taxi Mobile App for Passengers

Developing a Taxi Mobile App for Passengers The address input field is the most frequently used in the app. If autocomplete works slower than 150 ms, the user leaves. The real-time map with moving cars is another pain point: jerky icons cause negative reviews. Payments are the third stumbling blo

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1All 1734 services
Developing a Taxi Mobile App for Passengers
Complex
from 1 week to 3 months

Our competencies:

Frequently Asked Questions

Latest works

  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    897
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1218
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    600

Developing a Taxi Mobile App for Passengers

The address input field is the most frequently used in the app. If autocomplete works slower than 150 ms, the user leaves. The real-time map with moving cars is another pain point: jerky icons cause negative reviews. Payments are the third stumbling block: unreadable errors or long processing lose loyalty. On every project, we encounter these bottlenecks and know how to bypass them. We have accumulated experience on 30+ projects and know how to avoid these problems.

How to Ensure Address Autocomplete within 150 ms?

Google Places Autocomplete API gives quality results, but with high query volume it's expensive. Mapbox Search API is 2-3 times cheaper with comparable quality. For CIS, 2GIS Suggest API is effective. Use sessionToken in Google Places API: one token combines a series of autocompletes plus one Place Details request into one billing session. Without a token, each character is a separate query at full price. Savings can reach $500 per month at 10,000 trips/day. An alternative is Mapbox, which reduces costs by 60-70%.

API Speed Cost per 10,000 requests Region
Google Places Autocomplete 150-200 ms ~$2.83 (without sessionToken) Worldwide
Mapbox Search API 100-150 ms ~$1.00 (with package) Worldwide
2GIS Suggest API 100-200 ms Free up to 100,000 requests/day CIS

Determining the current location as the pickup point: CLLocationManager / FusedLocationProviderClient with a one-time request (requestLocation() on iOS), then reverse geocoding to get a readable address. Accuracy matters: if reverse geocoding returns "N street" instead of "N street, 15" — the user won't know where the car will arrive.

Why Car Interpolation Is Critical for UX?

Real-time car movement on the map is animation of markers based on received coordinates. A naive implementation: got new coordinate → moved marker. Result: jerky car icons.

The correct implementation is interpolation between points. On iOS: CADisplayLink with calculation of intermediate positions, GMSMarker.position changes smoothly via CABasicAnimation. On Android: ValueAnimator with LatLngInterpolator — animate the LatLng of the marker between previous and new position over the update interval (typically 3-5 seconds). The car icon must also rotate according to the direction of travel: the angle is calculated via Math.atan2 from two consecutive points.

WebSocket or MQTT — for receiving driver coordinates in real time. When entering the background, iOS disconnects WebSocket. When the user returns to the app, a reconnect and a REST request for current positions are needed, otherwise the driver marker remains at the old location. Experience shows that without interpolation, the number of complaints about "frozen" cars increases by 4 times.

How to Solve Notification Delay?

Push notifications: driver accepted → driver en route → driver arrived → trip started → trip completed. Each state has its own text and sound. On iOS, custom sound files are added to the bundle and specified in the APNs payload aps.sound. On Android — NotificationChannel with sound configured via AudioAttributes.

The "driver arrived" notification is especially critical — the user must come out within 2-3 minutes. If push is delayed due to Doze mode, the user is late, the driver leaves, and a bad review follows. For this notification, use high-priority push (APNs apns-priority: 10, FCM priority: high) and duplicate via in-app WebSocket event. This reduces late arrival percentage by 30%.

Notification Channel Delay (typical) Dependency on power saving modes
APNs High-Priority 1-3 seconds Low
FCM High-Priority 1-5 seconds Medium (Doze)
In-app WebSocket < 1 second None (foreground only)

Payments Without Headache

Stripe SDK (iOS, Android) is the standard for international projects. PaymentSheet — ready UI with support for Apple Pay, Google Pay, cards. Integration takes 1-2 days. For Russia/CIS — YooKassa (Yandex.Kassa) or CloudPayments SDK.

Apple Pay requires a separate entitlement (com.apple.developer.in-app-payments) and registered merchant ID in Apple Developer Portal. Google Pay — declaration in AndroidManifest.xml and passing production access review from Google.

Payment errors must give understandable text, not a code like card_declined_insufficient_funds. Stripe returns a decline_code — we map it to human-readable messages in all app languages. We guarantee that the user will never see a technical error code.

Stages and Timeline

  1. Requirements audit — 1-2 days
  2. Passenger flow design — 3-5 days
  3. Map and geocoding integration — 5-7 days
  4. Real-time tracking — 7-10 days
  5. Payment module — 3-5 days
  6. Push notifications — 2-3 days
  7. Testing (including edge cases) — 5-7 days
  8. Publication on App Store and Google Play — 3-5 days

Timeline: 8 to 14 weeks. Cost is calculated individually after requirements analysis.

What Is Included?

  • App source code in Swift/Kotlin/Flutter with full strict mode
  • API integration documentation (maps, payments, notifications)
  • Deployment and store publication instructions
  • Consultation on passing App Store Review Guidelines and Google Play Policy
  • 30-day warranty support after launch (bug fixes, consultations)

Get a consultation — contact us to discuss your project. Order your taxi mobile app development today.