The iOS app for BOND, an e-bike ride sharing company that services public and private customers.
As you would expect from such a service, the app allows customers to fully experience the e-bikes provided by the company. During the past year, all backend services have been internalized by the company, so entirely new custom integrations have been built. The provided services are as follows (short summary):
Users are presented with a customized registration flow. It begins with a welcome page, which then leads the user to a registration process based on a phone number. Users receive an SMS code for confirmation, after which some personal data will be colected to finalize the creation process. Existing users will be signed in instead, after verifying their SMS code.
When opened for the first time, the app will prompt the user for location access (necessary) and permission to send notifications.
Users have multiple ways to find bikes: move around the map to locate bikes nearby, or see a list of bikes, sortable by distance or battery level. When a bike is selected, the map will zoom or move to accomodate both the user and the selected bike.
The map will also show a geofence around the city's zone of operation, and display charging stations nearby.
After booking a bike, users are presented with the Ride interface. From this interface they can manage their ride: toggle parking mode (lock the bike temporarily), end the booking or report an issue.It is also possible to collapse/expand the popover view of the ride interface.
During an ongoing ride, the app will follow the user's location on the map, updating its view accordingly. This is canceled if the user pans on the map, and is re-enabled after pressing the user location button.
After finishing a ride, a brief summary is presented, with a button to see more ride details, such as the ride costs.
For convenience, users can reserve bikes for 10 minutes. If they do so, the "own" the bike for that duration, and a timer is presented to keep track of how much time there is left.
At any point, users can either cancel the reservation, or book the bike as usual.
As a part of the registration process, before booking a bike for the first time users will be asked to provide their driver's licenses (legal requirements due to the bike's maximum speed).
Users are guided through the Jumio SDK (which has been customized) and submit their document. Upon completion, the app receives and displays a notification to the user, informing of the verification result: if successful, they can start riding, otherwise a new submission is required. The UI is updated accordingly to reflect the verification result.
Through this interface, users can add, edit and remove payment methods associated with their account. This associates a Stripe payment method to their account in the backend.
Users can also specify a default payment method, the one that will be used when attempting to charge a payment.
Side note: the swipe to edit/delete was built from scratch, it is not not a third-party library as none fit our UI designs.
In addition to the main experience, a side menu provides users with more pages and information.
Users can scroll through their ride history, find ways to contact support, access settings for the app and much more.