Dead-simple subscription tracker for iOS, built with Flutter/Cupertino widgets. Subctrl keeps tabs on recurring costs, converts currencies automatically, and sends optional local reminders before renewals hit.
- Track subscriptions with local storage backed by Drift (
subctrl.db). - Automatic currency conversion via a proxy rates service with historical seeds to keep analytics stable offline.
- Analytics tabs for monthly burn, category totals, and long-term spend trends.
- Local, timezone-aware notifications driven by
LocalNotificationsService. - Clean Architecture split into presentation, application, domain, and infrastructure layers.
- Enforced code coverage (70%+) through the GitHub Actions workflow.
- Prereqs: Flutter 3.38.5 (matches CI), Dart SDK ^3.10.3, Xcode for iOS simulator/device builds.
- Install deps:
flutter pub get
- Run the app:
flutter run
- Configure notifications (optional): ensure the iOS simulator/device has notification permissions enabled so local reminders can fire.
MIT © Denis Dementev


