iOS Home Screen widget for static RTL (Maldives) bus passes. Import your QR once, track remaining rides, and tap the widget to log a trip.
- Import a QR screenshot from your gallery
- Estimate rides from commute days (optional weekends)
- Large Home Screen widget with QR + ride counter
- Tap the widget button to decrement a ride
- Manual ride adjustments in-app
- Flutter 3.12+
- Xcode 15+ / iOS 17+ (widget uses App Intents)
- Apple Developer account (App Groups)
- Clone and install:
git clone https://github.com/KillCode2301/busstik.git
cd busstik
flutter pub get-
Open
ios/Runner.xcworkspacein Xcode. -
Set your Team and choose your own Bundle IDs for both Runner and BusPassWidget (they must be unique under your Apple Developer account). For CLI builds, copy
ios/Flutter/Local.xcconfig.example→Local.xcconfigand set your Team ID (gitignored; optional if you only use Xcode Signing & Capabilities). -
Enable App Groups on both targets and create your own group ID (e.g.
group.com.yourname.busstik). Then update that same ID in:- both entitlements files under
ios/ appGroupIdinios/Runner/BusPassChannel.swiftappGroupIdinios/BusPassWidget/BusPassShared.swift
- both entitlements files under
-
Run:
flutter run- Set commute days (and weekends if needed).
- Tap Select & Save Ticket QR.
- Add the RTL Bus Pass widget to your Home Screen.
- Tap the − button on the widget after each ride.
lib/ Flutter UI + method channel client
ios/Runner/ App Group bridge (BusPassChannel)
ios/BusPassWidget/ WidgetKit extension + LogTrip intent
Flutter talks to native via rtl.buspass/widget. Shared state lives in the App Group (UserDefaults + QR image file).
MIT
