Mobile app re-build and optimisation
About Urban Jurnalist
Urban Journalist is a mobile app that aims to bring new value in exchanging recommendations for city trips. Instead of relying on quantitative information the way Google and TripAdvisor does, Urban Journalist relies on building social connections between people and their favorite hotspots. Users can follow friends, or others with similar taste in hotspots, and through this, exchange recommendations and insights.
“With Flutter, we could build two compatible apps for the price of one, rather than two separate apps in different platforms.”
ABOUT THE PROJECT
The project started with the desire to make the app cross-platform compatible. Initially, the app was only available on iOS, using a proprietary back-end (Content Management System). Translating the application into Android required that the app was to be re-build from the ground up. Additionally, the back-end CMS had some restrictions, which limited the options for growth. After looking at the existing code during our Sprint 0, we concluded that rather than also building an Android version of the app, a cross-platform compatible version using Flutter was a better choice.
“By optimizing the code, we were able to reduce the amount of API calls and its costs over 90%”
With this, we could build ‘two’ apps in one go, both with not only the same features as before, but also a modular back-end, which made it highly compatible with future developments. After this, we also optimized the amount of API calls from the Google Maps server, cutting its costs 4-fold immediately and got it to under 10% of the original costs in the longer term. Finally, we added Analytics, allowing for easy observation of customer conversion and retention.
The first part of the project consisted of an analysis of the app and the code. Here we decided the scope of the next phases, but also opportunities for innovative solutions and improvements. The core goal of this project was to translate the iOS app into an Android version. However, there was also room for improvement in the back-end structure of the app. Because of this we advised to build the app using Flutter, which is a UI toolkit from Google that uses a single codebase. With this, we could build two compatible apps for the price of one, rather than two separate apps in different platforms.
Flutter takes platform differences into account, which means that with one build, you have full native performance on both iOS and Android. With this solution, for the price of one app, essentially two applications were made. This also means that we were able to improve the shortcomings of the iOS version in one go.
At the same time, a new back-end structure using the Yii2 framework was made, which not only served as a back-end for the new app, but also improved on the limitations of the previous CMS. This new back-end also opened up new opportunities for optimization and analytics.
Building a new back-end structure also allowed the team to optimize several back-end processes. Since the application uses Google Maps data, it needs to connect to the Google Maps API. For each call, the client pays a fee. By optimizing the code, we were able to reduce the amount of API calls and its costs over 90%. This is a major reduce in monthly costs for a core functionality of the application.
While Urban Journalist wanted an Android version of the application, we managed to come up with innovative and forward-thinking solutions that tailored to the needs of our client without compromising costs. The final result is an app with a modular back-end, ready to future developments, cross platform compatibility, and an API call optimization that reduced core functionality costs almost 10-fold.