Ryadom: a ride-hailing app
A studio-initiated mobile app for city travel. We designed and built the passenger journey from choosing an address and ride option to meeting the driver, rating the trip and viewing trip history.

From address to pickup
The app uses geolocation to suggest a pickup point. Passengers can adjust it on the map, search for a destination and compare three ride options. The fare and pickup time appear before booking. Once a driver is found, the map shows their route to the passenger, with the car's model, colour and registration number in the panel below.



The app in motion
A recording of the working demo: address search, switching ride options, price updates and a car moving along the road. Once the trip starts, the pickup route changes to the destination route. Test controls in the video speed up transitions between stages.
Through to the end of the trip
The route, driver details and agreed fare remain visible throughout the trip. On completion, the passenger can leave a rating and choose a tip. The trip is saved in the device's history and remains available after the app restarts.



Interaction details
A warm light background, graphite buttons and orange selection states connect the screens. Car cards keep their size when selected, and scrolling through them does not change the ride option. The bottom sheet follows the user's finger, while fare updates preserve the position of the list and map.
During recalculation, the previous fare stays visible with an updating label. If the route changes, it is hidden until a new fare is ready. The app handles slow responses, network errors, denied location access and repeated booking taps.
About the project
The app was built with React Native and Expo, with a build prepared for testing in Expo Go. Geolocation, address search and road routing are connected. The iPhone version uses Apple Maps; the browser demo shown on this page uses OpenStreetMap.
Ryadom demonstrates the interface and service workflows. Vehicle movement, driver profiles, demand and fares are simulated. Live taxi booking, payments and dispatch are not connected.