instagram instagram linkedin
TravelSG

Bus Arrival Tracker. Mainly featuring Live Activity for Bus Arrival.

architecture architecture
mobile mobile
tablet tablet
watch watch
widget widget
Section 1: App Architecture & Structure
architecture High-level overview of system patterns, shared resources, and backend integration.
Firebase Backend Services Node.js Cloud Functions executing scheduled tasks, APNs notification delivery, and Live Activity token lifecycle management.
Cross-Device Sync iCloud CoreData synchronization for favourited items, stored locations and preferences, ensuring a seamless experience across devices.
Singleton Framework Centralized models, networking, viewmodel, and database using a shared memory serving iOS, watchOS, and Widget targets.
Section 2: iOS
mobile Core mobile application delivering comprehensive public transport and traffic tracking.
Advanced MapKit Rendering Interactive map overlays displaying bus stops, live traffic cameras, incidents, and polylines.
Traffic Status & Camera Integration Interactive map overlays displaying bus stops, live traffic cameras, incidents, and polylines.
Live Activities & Dynamic Island Real-time tracking for bus route travel and arrivals utilizing ActivityKit and Firebase pushes.
Custom User Preferences Dynamic app icon selection, customizable widget color profiles, and adaptive UI themes.
App Intents & Siri Shortcuts SiriKit integration enabling custom voice commands and workflow automations (TravelSG-Intent).
Section 3: iPadOS
tablet Universal SwiftUI implementation scaled for tablet displays.
Adaptive UI Layouts Multi-column structural designs utilizing SwiftUI view modifiers to handle variable screen dimensions.
Section 4: watchOS
watch Standalone companion application optimized for Apple Watch interaction.
Standalone MapKit Integration Native MapView rendering nearby bus stops and user location directly on-wrist.
Real-Time Transport Data Fetching and parsing live bus arrival timings via LTA DataMall API.
Haptics & Notifications Custom AlertManager executing native watchOS haptic feedback and notification delays.
Clustered UI Algorithmically grouped bus stops (BusStopCluster) for optimized small-screen rendering.
Section 5: Widgets
widget Glanceable WidgetKit components providing asynchronous data on Home and Lock screens.
Interactive Home Screen Widgets Live updating modules for bus arrival countdowns and HDB carpark lot availability.
Lock Screen Accessories Minimalist complication-style widgets for immediate transit metric visibility.
Traffic Camera Snapshots Widget rendering live static image feeds from LTA highway traffic cameras.
User-Configurable Intents Parameter-driven widget configurations allowing users to select specific bus stops or locations directly from the Home Screen.