A SwiftUI iOS app that tracks upcoming rocket launches from Cape Canaveral and Kennedy Space Center with real-time Live Activity countdowns on your Lock Screen and Dynamic Island.
Built for Space Coast locals who want to know when the next launch is, how long until T-0, and which direction to look.
- Live Activity Countdown - Track a launch on your Lock Screen and Dynamic Island with a real-time T-minus timer
- Dynamic Island - Compact view shows a rocket icon + countdown timer; expanded view shows full mission details
- Direction Compass - Tells you which direction to look from your location (defaults to Melbourne, FL)
- Upcoming Launches - See the next 5 launches with mission name, vehicle, provider, pad, and weather
- Pull-to-Refresh - Swipe down to fetch the latest launch data
- Dark Theme - Deep space blacks with neon orange and blue accents
- SwiftUI + ActivityKit (iOS 17.0+)
- XcodeGen for project generation
- RocketLaunch.Live API (free tier, no auth required)
- No third-party dependencies
- Xcode 15+ with iOS 17 SDK
- XcodeGen:
brew install xcodegen
cd /path/to/RocketLaunch
xcodegen generate
open RocketLaunch.xcodeprojSelect your target device and hit Run. The .xcodeproj is gitignored and generated from project.yml.
Live Activities and Dynamic Island only work on a real device. The Lock Screen countdown will display in the Simulator, but Dynamic Island will not render.
RocketLaunch/ Main app target
App/ Entry point, Info.plist, entitlements
Views/ All SwiftUI views (ContentView, hero card, launch list, compass)
ViewModels/ LaunchViewModel, LiveActivityManager, LocationManager
Services/ API client, direction calculator (bearing math + pad coordinates)
Theme/ SpaceTheme (colors, fonts, gradients, dimensions)
Assets.xcassets/ App icon and asset catalog
RocketLaunchLiveActivity/ Widget extension target (Live Activities)
RocketLaunchLiveActivity.swift ActivityConfiguration + Dynamic Island
Views/LockScreenView.swift Lock Screen presentation
Shared/ Code shared between both targets
Models/ Launch (API models), LaunchAttributes (ActivityKit)
Extensions/ Date helpers
Uses the RocketLaunch.Live free API:
- Endpoint:
https://fdo.rocketlaunch.live/json/launches/next/5 - No authentication required
- Returns the next 5 upcoming launches in JSON
- Auto-refreshes every 5 minutes
The API doesn't include launch pad coordinates, so the app uses a built-in lookup table of known pads (LC-39A, SLC-40, SLC-41, etc.) to calculate the bearing from your location. If location permission is denied, it defaults to Melbourne, FL.