Der iOS-Client ist in Swift gebaut, mit einem Ein-Bildschirm-zur-Fahrt-Flow: einer Live-Karte naher Scooter, einem QR-Scan-Einstiegspunkt und einer Scooter-Detailkarte, die Akku, geschätzte Reichweite, Startgebühr und Minutenpreis anzeigt, bevor der Fahrer sich festlegt. Die Kartenebene verwendet Apples Core Location für die Position des Fahrers und streamt die GPS-Positionen der Scooter aus dem Backend, sodass die Auswahl die echte Flotte widerspiegelt, ohne durch eine langsame Netzwerk-Roundtrip blockiert zu werden. Der QR-Entsperr-Pfad ist der Punkt, an dem die meisten Fahrer ihren ersten Eindruck vom Produkt gewinnen, und wo wir überproportional viel Engineering-Aufwand investiert haben: scannen, Wallet- und Zonenberechtigung validieren, die Entsperr-Absicht senden und in dem Moment, in dem der Controller bestätigt, einen klaren „Fahrt gestartet"-Status anzeigen.
Da die Controller-Bestätigung bei schwachem Mobilfunk verzögert eintreffen kann, ist der iOS-Flow um explizite Fahrtstatus herum aufgebaut — Leerlauf, Entsperren, Fahrt gestartet, Beenden — statt um eine optimistische Oberfläche, die vorgibt, der Scooter sei entsperrt, bevor dies bestätigt wurde. Ein Fahrer wird nie in eine abrechenbare Fahrt überführt, bevor das Backend eine bestätigte Entsperrung vom Controller hat — die mit Abstand wichtigste Korrektheitseigenschaft in einer Scooter-App. Die End-to-End-iOS-Oberfläche wird im Rahmen unserer Praxis der Mobile App-Entwicklung geliefert.