We spend a significant part of our lives traveling. Public transit mobile applications which we can browse the schedules can help us planning the trips. Though real-time trip information is quite useful, there is still an important demand on accessing the schedules offline, when the device is not connected to the internet.
Budapesti Közlekedési Központ (Center for Transport Budapest) regularly publishes the transit data in the standard GTFS format, but the format and size of the database is not optimal for mobile use, so the database needs to be converted.
The differences of the mobile platforms can cause further difficulties, because the more users we want to reach, the more devices and platforms need to be supported. However, developing a separate app for each platform is an expensive and time demanding task.
With Xamarin platform, we can build native Android, iOS and UWP mobile applications based on a shared C# codebase. Therefore, we can overcome most of the platform differences with a Xamarin mobile application. Moreover an ASP.NET Core web application running in a Microsoft Azure cloud service can be automated to download and convert the static transit database. Furthermore, the mobile app can download the transformed database from the web app through REST API.
During my thesis work, I planned an architecture containing three applications, created the automated conversion workflow which is run by the web application and developed a schedule browser Xamarin mobile app.