- macOS with Xcode 14.0+
- iOS 16.1+ Simulator or device (for Live Activities)
- LTA DataMall API key
-
Clone the repo
git clone https://github.com/tsuwave/tsuwave.git cd tsuwave -
Add your API key
cp Config/Secrets.template.xcconfig Config/Secrets.xcconfig # Edit Config/Secrets.xcconfig and add your LTA API key -
Open in Xcode
- Open
TsuWave.xcodeprojin Xcode - Select your team for signing
- Build and run
- Open
Since this repo doesn't include the .xcodeproj file (to avoid merge conflicts), you'll need to create it:
./scripts/setup-project.sh- Open Xcode
- File → New → Project → iOS App
- Name: "TsuWave"
- Organization: Your name or "TsuWave"
- Bundle ID:
com.tsuwave.swell - Interface: SwiftUI
- Language: Swift
- Target: iOS 16.1+
Then:
- Delete the auto-generated files
- Add all files from this repo
- Add Widget Extension target for Live Activities
- Link the Config/Secrets.xcconfig in build settings
- Select iPhone 14 Pro or newer (for Dynamic Island support)
- Press Run
Test with these bus stops:
59009- Orchard (Bus 14)75009- Tampines (Bus 31)
- Product → Archive
- Distribute App → App Store Connect
- Upload and process
- Add to TestFlight internal testing