Tip
Yours, completely. No accounts, no subscriptions, no ads, no tracking. Every habit and setting stays on your device — and the full source is open.
Streak is a habit tracker that respects you. Create as many habits as you like, log them with one tap, and follow your progress through a GitHub-style activity grid, streak counters and a statistics dashboard. It is fast, offline, and built to feel calm rather than demanding.
Grab the latest APK from the Releases page. Builds are split per CPU architecture to keep each download small — pick the one that matches your phone (most modern devices are arm64-v8a):
| APK | For |
|---|---|
Streak-arm64-v8a.apk |
Modern 64-bit phones (recommended) |
Streak-armeabi-v7a.apk |
Older 32-bit devices |
Streak-x86_64.apk |
Emulators / x86 tablets |
Note
Streak isn't on the Play Store. Since the APK isn't from a store, Android may ask you to allow installs from your browser/file manager the first time.
|
Tracking
|
Visualization
|
|
Personalization
|
Data & platform
|
| Area | Choice |
|---|---|
| Framework | Flutter (Dart) |
| State management | provider |
| Local storage | hive_ce |
| Charts | fl_chart |
| Notifications | flutter_local_notifications + timezone |
| Home widgets | home_widget + Jetpack Glance (Kotlin) |
| Icons | Lucide |
Directory layout
lib/
├── main.dart App entry point and home-widget callback
├── app/ App shell, navigation host and theming
│ └── theme/ Palette, design tokens, light/dark themes
├── core/ Cross-cutting building blocks
│ ├── database/ Local persistence (Hive)
│ ├── extensions/ Date helpers
│ ├── i18n/ Localized strings
│ ├── icons/ Icon and emoji catalogs
│ ├── routing/ Navigation and page transitions
│ ├── utils/ Snackbars and helpers
│ └── widgets/ Shared UI primitives
├── features/ Feature-first modules
│ ├── habits/ data · state · pages · widgets
│ ├── statistics/ Statistics dashboard
│ ├── settings/ Preferences and About
│ └── onboarding/ First-run experience
└── services/ Notifications, home widgets, backup
android/ Android host project and home-widget layouts
assets/ App icon and bundled images
fonts/ Figtree and Playfair Display
docs/screenshots/ Marketing screenshots used in this README
tool/ Icon-generation scripts (dev only)
- Flutter SDK (stable channel)
- Android Studio or the Android SDK, with a device or emulator
git clone https://github.com/InlitX/streak.git
cd streak
flutter pub get
flutter run# one APK per architecture (arm64-v8a, armeabi-v7a, x86_64)
flutter build apk --release --split-per-abiPushing a v* tag runs the GitHub Actions workflow, which builds these split
APKs plus a source archive and attaches them to a new GitHub Release.
Tip
To sign a release build, create android/key.properties with your keystore
details. That file and any keystore are intentionally git-ignored; without
them, release builds fall back to the debug signing key.
- Feature-first layout. Each feature owns its data models, state controllers, pages and widgets, keeping boundaries clear.
- Single source of truth. Habits, categories and settings are persisted in
Hive and exposed through
ChangeNotifiercontrollers. - Resilient storage. Corrupt or schema-mismatched records are skipped instead of crashing startup, and non-critical startup work (notifications, widgets) is isolated so it can never block the app from launching.
- Consistent navigation. Every push flows through a single navigator with opaque page transitions, so screens never bleed through during animations.
Important
Streak has no analytics, no advertising SDK and no network backend. The app never sends your data anywhere — it stays on your device. The only outbound actions are links you choose to open yourself.
Issues and pull requests are welcome. For larger changes, please open an issue first to discuss the direction.
Released under the MIT License.




