I used to commute every day from York to Leeds using the CityZap bus. I built this app to help me get to work on time!
I created this app because I wanted to learn how to build apple watch apps using Microsoft's Xamarin mobile phone development framework. While the app looks relatively simple, behind the scenes is quite deceptive.
At the time, CityZap didn't publish a system for finding the next bus times computationally, instead, they had a page hidden away on their app which would display the next bus times in a table within HTML.
After finding where this page was hosted, I wrote some C# code running under .net core which would access the site, read the next bus time (known as scraping) and save this data on my server. The code ran every minute during the hours of 6 am and 7 pm (I didn't want to hammer their server unnecessarily) and made the data I had scraped available to my app through a JSON web service.
As mentioned above, the mobile app was written in Xamarin, which allows you to build native apps for Apple and Android devices using the C# language.
I no longer commute to Leeds every day and the CityZap bus no longer exists, but back when I did, the app was crucial to me as I could see in an instant by looking at my watch how long it should be before the bus came even before I got to the stop. As well as running on Apple Watch and iPhones, the app also worked fine on Android mobile phones (as shown above) as well as iPads and Android Tablet devices.
Finally, a fun personal project that was actually useful!