NYC Subway Tracker
App StoreA simple mobile app that hits the MTA API directly to retrieve the latest subway schedule times. Built with React Native for the main app, and Swift for the Widget and Live Activity components.
Overview
I live right above a subway station in Brooklyn. I wanted to build a simple mobile app that retrieves the latest subway schedule times directly from the MTA API and displays them clearly and simply, with auto-refresh built in.
I also wanted to use this as an opportunity to explore the Widget and Live Activity features of iOS development, so I added a way for users to pin a specific route's next upcoming train to their lock screen.
Goals
My goals for this project were pretty simple. It was mostly an exercise in getting more comfortable with Swift, Xcode, and mobile development in general.
- Users can mark stations and routes as "favorites"
- Users view nearby stations and their upcoming train times
- Users can start a Live Activity for a given station and route
- Users can add a home screen Widget
- Publish an iOS app in the App Store
- Get comfortable programming in Swift and Xcode
- Build a functional Live Activity widget
Retrospective
This was the first app I ever published to the App Store, so I learned a lot about both mobile development and the deployment process.
The easiest part was fleshing out the main app with React Native. The ecosystem has improved a lot, and I was surprised at how pleasant the DX was. I'm a big fan of Expo.
The main challenges were implementing updates for the Live Activity component, creating smooth gesture animations, and passing the initial App Store review.