NaRover: Social Navigation App For Cyclists
In cooperation with cycling activists, NGOs, communities and businesses, Waverley initiated the development of a location-based application allowing to track and navigate cycling infrastructures in multiple cities. The team created a native iOS (Swift and UI Kit) and Android (Kotlin) app that locates cycling lanes, bicycle parking, bike shops and rentals, even cyclists favorite coffee shops and breweries, parking spots, etc. The app utilizes Mapbox services for location production, and Firebase for back-end services. The application code is owned by Waverley Software, and can be easily scaled and reproduced if needed.
The Waverley team in Ukraine has always been into active lifestyle, environmental protection and sustainable living. Many team members use eco-friendly transportation to get to the office including bicycles, electric scooters and unicycles. To make the daily routes more efficient and comfortable, our engineers decided to create our own tool that would help to navigate all cycling infrastructure points in the city. When they proposed it to avid cyclist and Waverley founder Matt Brown, he gave them an enthusiastic thumbs up.
We started by analyzing many maps and navigation-related solutions including Google Maps, Apple Maps, Here, Maps Me, Waze, etc. Not one of these services that is available in the Ukraine includes bike lanes and other infrastructure relevant to the cycling community in their mapping. Therefore, users did not have the ability to identify a correct, convenient cycling route to their destination. Some navigation apps have limited ability to add new points of interest on a map, an important feature given that the cycling infrastructure grows from day to day. In addition, a solution for cyclists needs to be available 24/7 from any location, including areas with limited internet access. To be truly useful, the app needs to be able to navigate when the user is offline.
To learn and analyze the needs of potential users, Waverley cooperated with cycling activists, NGOs and communities such as the Lviv Bicycle Club, NGO “Convenient City” (Lviv) and Kyiv Cycling Club. These organizations investigate the problems cyclists face in Ukraine and work with city administration to help solve those problems. They supported Waverley’s idea of a cycling solution, helped identify most in-demand features, and provided the data on cycling infrastructure they had collected in several cities in Ukraine.
Over the course of several months, we created a mobile application that includes:
- a map with cycling lanes
- infrastructure points such as bike parking, repair shops, bicycle shops and rental locations, as well as places of interests for cyclists, water spots, etc., along with the ability to filter them on the map
- cycling lanes navigation
- The ability for users to add new points on the map
- User feedback
For the map itself, we chose Mapbox, an open-source service for custom-designed maps. It offered the best set of features for our solution when compared to other providers. The data is gathered from open data sources, such as OpenStreetMap and NASA, as well as purchased proprietary data sources such as DigitalGlobe.
Mapbox uses anonymised data from telemetry pings, such as Strava and RunKeeper, to identify missing data in OpenStreetMap with automatic methods. Fixes are applied manually, and reports on the issue submitted to OSM contributors. Additional features of Mapbox that made it the clear choice include a Studio tool that allows developers to import their own data to make choropleths, scaled point maps, and more This gave our engineers full design control: like adding our own fonts, icons, and textures to make your map fit seamlessly with your brand. But the most important feature is that it has its own cycling navigation, based on OSM data and the ability to work offline.
For the Android application we used Android SDK, Kotlin, AndroidX, Clean Architecture MVVM, RX Java, Koin and Retrofit HTTP for Back-end services. The address search function on the map is reproduced by Google Places. The native Mapbox solution for a map search appeared to have some issues in the target location; it doesn’t recognize numerical street addresses, so you cannot enter a specific destination in a search. Solving this problem was mission-critical so the team decided to implement the map search feature using Google Places with Mapbox geocoding services for data reproduction.
The native iOS Application is created with a traditional UI Kit with Swift. All application styles are created inside the Mapbox Studio tool, which is easily customisable. The map search is implemented by Apple Maps, which is more efficient for Apple users.
As the full map and data coordination is implemented inside the Mapbox tool; the back-end services include an admin page to work with user feedback. It is written on Flutter and is hosted on FireBase Hosting. Cloud Fire Store is used for feedback production (a brand new tool from FireBase that can gp for Real-Time Database), FireBase Authorization, FireBase Links (for location sharing), and Firebase Crashlytics.
Results and Future Plans
At present, the team has successfully tested and published Android and iOS applications with the following feature set:
- Map with cycling infrastructure of three cities in Ukraine (Lviv, Kyiv and Vinnytsia)
- Map search
- Points of interests filtering and the ability to save places in favorites
- Map navigation using cycling lanes and the ability to build complicated routes
- Location sharing that includes user location and points location
- Feedback and suggestions on functionality, design, issues or points on the map
- Rules for cyclists, designed and developed by the Lviv Cycling Club
Waverley continues to work with cycling communities to collect their feedback and suggestions on app functionality. In the next iteration, we plan to give users the ability to add points on the map, as well as program the app to show cycling news and events in the area.