Le client chauffeur est écrit en Kotlin avec Jetpack Compose pour l'interface et un service de premier plan basé sur les APIs de localisation Android. Le service de premier plan est obligatoire : sur les familles d'appareils Samsung, Xiaomi, OnePlus et Pixel, les optimiseurs de batterie agressifs terminent les processus de streaming de localisation en arrière-plan uniquement en quelques minutes, rompant le contrat de dispatch auquel un chauffeur s'engage implicitement au début d'un service. Le service affiche une notification persistante minimale, demande la permission de localisation de premier plan avec une divulgation d'objectif claire que le reviewer Google Play attend, et publie la position GPS via une connexion WebSocket persistante à une cadence d'une seconde. WorkManager gère les opérations non urgentes — synchronisation des gains, re-téléchargement de documents, résumés de service — avec une sémantique d'attente progressive respectant le mode Doze et l'économiseur de batterie sur Android 10 à Android 14.
Le cycle de vie du service est l'épine dorsale de l'expérience chauffeur. Un chauffeur ouvre l'application, effectue une vérification rapide du véhicule, appuie sur En ligne, et l'application passe à travers une machine à états claire — en ligne, en route, en course, en finalisation, hors ligne. Chaque état s'écrit dans le journal immuable d'événements de course sur le backend, ce qui alimente ensuite les rapports prêts pour l'audit pour les régulateurs américains et européens. Les paiements en espèces et par carte ferment tous deux la course par le même flux : un tap pour accepter les espèces, ou un reçu traité par carte que le passager voit instantanément dans son application. La même équipe d'ingénierie gère iOS et Android en synchronisation dans le cadre de notre pratique de développement d'applications mobiles.