LOCAL/ 17:30:48
A self-initiated project to improve Ireland’s public transport experience. Frustrated by the outdated TFI Live app, I built a clean, real-time notification system for bus, train, and DART arrivals, focusing on speed and intuitive design.
TYPE
Personal Project
ROLE
STACK
YEAR
2025
REPO

scope of work
I didn't need to scope out a grand feature set for this project, I Just needed to make sure I can get the basics nailed down, like quick query stop location and stop departure query times, a working navigation system, and a fresh aesthetic, which the current TFI app lacked.
development
I mocked up a design in Figma and fleshed it out, after the design was finished i needed to find somewhere to get the data, Ireland provides a gtfs feed upon request, I tried it out but it requires alot of filtering and matching, which isnt feasible on a mobile device, so i settled with the transit.land api, its quick, its fast and just what i needed, I introduced zustand for global state management with the persist middleware to store users favorites stops on device.
challenges & solutions
I needed a clustering solution for the map as the sheer amount of stops started to bog down the MapView, i settled on a C++ library called react-native-clusterer, most clusterers were unstable and caused crashes at runtime against the react-native-maps library on iOS, including this one, where null markers kept getting inserted into the render que inside the iOS map library, so i had to write custom code to make sure to ignore null/nil markers to patch the crashes
Outcome
This project is still in ongoing development, but i finished the MVP, I wanted a performant, clean, and most of all pretty alternative to the current public transport apps that are on the market, none existed, so I stepped up and made my own.
Im planning to write and host my own custom backend to filter the irish GTFS static and real-time data, as I've been granted permission by the NTA (National Transport Authority) to use their API, the data provided by them is much more complex and needs sorting + parsing, this job is more suited for a custom backend rather than on device processing.
The next features I'm planning is to use custom modules to take advantage of native iOS features like the dynamic island and the live notifications, so users can check when their train/bus is departing without even opening the app
More Works
More Works
More Works
More Works
More Works
More Works
More Works
More Works
More Works
More Works
More Works
More Works
NICHITA CONDREA