What You Need To Develop a High Quality Transportation App
A few years ago IBA Group started work on a startup product in the transport and navigation space. We wanted to build an app that could provide real time information about the location of public transportation. We wanted the arrival time and timetables to be processed in real time. This would provide users with the most current information possible.
The static schedules many cities offer for their transportation are often insufficient. Public transportation commonly arrives later, or earlier, than expected. We set out to provide a solution for cities, providing accurate estimated times of arrival.
This is the first in a series of articles on this subject, so keep an eye out for future posts that dive deeper into this app’s development process, the problems we came across, and how we solved them.
Solving the Problem
The initial idea was to develop a transportation app that would work with the latest, most relevant data from transport operators. This would be our competitive advantage, since similar applications weren’t able to request this information as frequently as needed and were forced to make, often, inaccurate estimations. To gain this advantage, we would need to enter into agreements with cities’ transport companies to receive all required data that would allow us to display the exact position of the transport and its schedule.
We managed to do just that! Our ability to work with the latest and most relevant data through the development process was a huge boon and a source of inspiration to the project.
With the best available data in hand, we defined three main features:
- Easily accessible timetables for each type of public transport in the online scoreboard
- Routes based on desired locations, types of transport, and times of arrival and departure
- The ability to view public transport locations on the map in real time
The Development Process
While working on the architecture and technologies of the app, special attention was paid to responsiveness, resiliency, high performance, and the optimized handling of network traffic. To organize communication with services, we chose gRPC, as it’s fast and provides lightweight messages. We also decided to use reactive programming with RxSwift for iOS and RxJava for Android. Swinject was used as our dependency injection technique.
For design, we used Figma, which made it possible to create prototypes with a high level of realism and launch them directly on a mobile phone. This allowed us to conduct usability tests to decide which was the best version based on reviews.
Testing, Refining, and Improving What We Built
We developed our application, in part, with users. At first, the most basic and necessary features, in our opinion, were added and the application was available in one city. More cities, in several countries, were added as development continued.
At the same time, while users simply use the application in their daily life, we use A/B testing and various analytical tools to evaluate the retention, churn, and growth rates. We work to understand what users need, how they use the app, and which features are successful and which are not. The stability of the application is still regularly monitored, as are user reviews. If a large number of users ask for a feature or a fix, we bring it up for discussion and get to work.
Our team also tests the app on the ground, especially when we add support for new regions. It’s a part of our everyday lives. This increases our team’s level of engagement, provides new data points, and augments our constant desire to come up with new ideas to create a truly user-friendly application.
The Feature Set
Below is the feature set we decided upon for the application.
- Online timetable. Timetables for buses, trolleybuses, trams, and minibuses can be viewed in the online scoreboard on your device. You can select the required type of public transport and suitable time. A schedule is available for every day of the week.
- How to get to…? You can plan your route using the application, taking into account the types of public transport that suit you, be it bus, trolleybus, tram, or minibus. You can choose your current location, transport stop, or just select a place on the map to build your route.
- Where is my bus? All your city public transport is displayed on the map in real time. You can watch for your bus, trolley, tram or minibus, and know exactly where your bus is.
- When will my trolleybus arrive? The arrival time of a public transport is calculated based on the real location of the vehicle. You will immediately see a message on the online board if the trip is delayed, and you can see the latest information about its final stop for each transport route.
- Favorites. You can bookmark your favorite public transport routes to quickly find them in Favorites. This can be done at any stop, and you can go to a stop or view the entire route with just one click. It’s quick and easy.
- Settings. Want to see timetables for only certain types of transport? You can set it up in Settings and customize the application to make it as comfortable as possible for you.
- Region. You are able to build routes and view the timetable not only in cities, but also by district and region. You can move the map to the required point and you will immediately see the timetable for that region.
Release and Growth
We ran an advertising campaign across a range of social networks. The app has had steady user growth with a good customer retention rate. While we haven’t recently launched any new ad campaigns, the number of users continues to grow steadily, in part due to the word of mouth surrounding our successful solution.
Looking to the Future
We continue to develop the application and expand its geography. We also have customers interested in this solution and we’re working on customization of the app for their needs. Together, we developed an application for taxi drivers based on our solution. It allows drivers to monitor other carriers and calculate the optimal arrival time at the stop. This helps drivers avoid situations when there are no passengers at a stop.
We’re happy and ready to share our experience and knowledge in the transport and map-reading domain, whether you’re looking for location tracking and navigation based apps (e.g., taxi or delivery) or any apps where you need to show objects on a map (e.g., city guides).
Even if you don’t have an exact vision of the application, we will help you come up with a concept and build an agile solution to whatever problem you’re facing. Even if you’re not in the transportation space, we will learn your specific business needs and adapt our solution, saving you money, or we will create a new app of your very own.
If you liked this article and are interested in reading more about the technical problems we encountered and how we solve them, about organizing the work of a team to ensure each member feels important and wholly involved, or about how to develop features that users really need and love, you can check out our follow up articles here, our other blog posts, or get in touch.