Projects Selected work · iOS

Personal Projects Apps I've designed, built & shipped

FocusiOS · Product
Featured1 project
Year2025 — 2026

A small set of apps I've designed and built end-to-end — from first sketch to a working iOS demo. Each frame below plays a short walkthrough; the notes beside it cover the problem, my role, and how it's put together. Replace this intro with your own.

Live Rail

Live UK rail departures — every platform, delay and cancellation, plus real-time train tracking, in one glanceable board.

Live Rail departures board for London Euston: an on-time tally, a row of fastest trains to each destination, and live service cards with platforms, operators and delays.

Checking the next train shouldn't mean fighting a cluttered website. Live Rail turns the UK's live rail feeds into a fast, glanceable departures board — the kind you can read in the two seconds before you run for the platform.

I built it end to end. The interface is the easy part; the data is the hard part. Network Rail's official feeds — LDBWS for departure boards, TRUST for real-time train movements — are XML-era, fragmented and awkward to call from a phone. So I wrote a Node/Express adapter, hosted on Railway, that normalises them into one clean JSON API, with a native SwiftUI app layering live tracking, platform-change alerts and reliability history on top.

  • Live departures, every platform. Real-time boards for 2,500+ stations — operators, platforms, delays and cancellations, plus a “fastest train to each destination” row — all on a live polling loop.
  • Adaptive polling, not a fixed timer. While you track a train, the refresh interval tightens from 60s to 8s as it nears the next stop — fresh data when it matters, without hammering the API or the battery.
  • A backend that knows where the train really is. The Railway adapter fuses scheduled boards with TRUST movement events, so the app infers a train's true position between stops instead of trusting the timetable.
  • Native iOS, top to bottom. SwiftUI throughout, with ActivityKit Live Activities on the Lock Screen, MapKit route maps, and CoreLocation for nearby-station discovery.

Try it live

The real Live Rail board, running in your browser — powered by the same Railway API as the iOS app. Search any UK station, switch departures and arrivals, and tap a train for its live calling points.