Version: 1.1.0+2
Release Date: April 13, 2026
- Flutter SDK (3.0+) installed and configured
- Android SDK / Java Development Kit (JDK 17+)
- Release keystore:
android/release.keystore(already generated)
# From project root
cd c:\Users\glori_za0wp11\Desktop\Emora Mental APP\havbits
# Clean build artifacts
flutter clean
# Fetch dependencies
flutter pub get
# Build release APK (unsigned)
flutter build apk --release
# Or build release APK bundle for Play Store
flutter build appbundle --releaseOutput:
- APK:
build/app/outputs/flutter-apk/app-release.apk - Bundle (AAB):
build/app/outputs/bundle/release/app-release.aab
The app is already configured with signing credentials in android/app/build.gradle.kts:
signingConfigs {
create("release") {
keyAlias = "atobits"
keyPassword = "atobits2024!"
storeFile = file("../release.keystore")
storePassword = "atobits2024!"
}
}
Important: This is suitable for beta testing and direct distribution. For production Play Store releases, consider:
- Using a password manager to store credentials
- Rotating the keystore password every 6 months
- Using Play Console's internal app signing for additional security
-
Build the APK:
flutter build apk --release
-
Locate the APK:
build/app/outputs/flutter-apk/app-release.apk -
Share via:
- Email attachment
- Cloud storage (Google Drive, OneDrive)
- Messaging app (WhatsApp, Telegram)
- QR code (encode APK download URL)
-
Friend Installation:
- Download APK to Android device
- Enable "Install from Unknown Sources" in Settings → Security
- Tap APK file to install
-
Set up Firebase:
flutter pub add firebase_core
-
Configure in Firebase Console (https://console.firebase.google.com):
- Create project → Android app
- Download
google-services.json→ place inandroid/app/
-
Build & distribute:
flutter build apk --release # Upload via Firebase CLI or Console
-
Prepare metadata (for Play Console):
- App title: "Atobits Habit Tracker"
- Description: "Build better habits, one day at a time"
- App icon:
android/app/src/main/res/ - Screenshots: Minimum 2 per language
- Privacy Policy: Link to
PRIVACY_POLICY.md - Terms of Service: Link to
TERMS_OF_SERVICE.md
-
Create App Bundle:
flutter build appbundle --release
-
Upload to Play Console:
- Sign in to Google Play Console
- Create app → Upload bundle
- Configure pricing, categorization, target content rating
- Submit for review (review takes ~24-48 hours)
- All AI automation actions tested (add, complete, delete, update, plan)
- AI Coach Proxy responds gracefully when Groq is unavailable
- Habit scroll fix validated (no stuck scrolling)
- Chat history loads without errors
- Theme toggle works (light/dark mode)
- All icon keys render correctly
-
android/release.keystoreexists and is secured - No hardcoded API keys in source code
- Coach API URL and token passed via environment variables
- Privacy Policy readable in-app or via link
- Terms of Service accessible to users
- Version bumped to 1.1.0+2 in
pubspec.yaml -
PRIVACY_POLICY.mdcreated and reviewed -
TERMS_OF_SERVICE.mdcreated and reviewed -
README.mdincludes deployment instructions - Coach proxy README.md documents API contract
- Tested on at least one physical Android device
- Tested on Android emulator with API level 24+
- Low-storage scenario tested (< 50MB free)
- Network failure scenario tested (offline mode)
- Habit creation, completion, and deletion tested
- Cloudflare Worker deployed and live
- Worker endpoint accessible:
https://atobits-coach-proxy.atobits.workers.dev - Bearer token validated in worker code
- Fallback coaching triggered when Groq fails
- Groq API key rotated (not exposed in git history)
Share this with friends when distributing the APK:
- Download Atobits APK file (send them the APK or share the download link)
- Enable unknown sources (Android 12 and below):
- Settings → Security → Unknown Sources → Enable
- Install the APK:
- Open your file manager → Navigate to downloaded APK
- Tap to install → Grant permissions
- Launch the app and start creating habits!
To unlock AI-powered habit suggestions:
- Notify the app admin that you'd like to use the AI Coach feature
- Receive these credentials (via secure channel):
- Coach API URL:
https://atobits-coach-proxy.atobits.workers.dev - Bearer Token: (unique per user or shared group key)
- Coach API URL:
- Launch the app with environment variables:
# PowerShell example $env:COACH_API_URL="https://atobits-coach-proxy.atobits.workers.dev" $env:COACH_API_TOKEN="<your-token-here>" flutter run -d <device-id>
- Open the AI Coach (chat tab) and start chatting!
The app works fully offline and locally:
- Create, edit, and complete habits
- Track daily progress and streaks
- Switch between light and dark themes
- No internet required
- No account needed
flutter clean
flutter pub get
flutter build apk --release- Ensure Android API level 24+ (Android 7.0+)
- Check device storage (needs ~50MB)
- Uninstall previous versions first
- Verify Coach API URL is reachable:
curl https://atobits-coach-proxy.atobits.workers.dev - Confirm bearer token is correct in launch environment
- Check Groq account has available credits
- (Fallback coaching will still work if Groq is unreachable)
Note: Atobits stores data locally on each device only. To sync habits across devices:
- Manually export/import via backup mechanism (planned for v2.0)
- OR maintain separate habit lists per device
- ✅ Added extended AI automation actions (complete, delete, update, plan_day)
- ✅ Fixed home screen scroll lock
- ✅ Released Privacy Policy and Terms of Service
- ✅ Generated release keystore for APK signing
- ✅ Validated proxy-based architecture for secure API deployment
- Habit creation, tracking, and statistics
- AI Coach with Groq integration
- Light and dark theme support
- Local habit persistence
If you maintain the coach-proxy Cloudflare Worker:
-
Rotate Groq API Key every 6 months:
- Generate new key in Groq dashboard
- Update secret in Cloudflare:
wrangler secret put GROQ_API_KEY
-
Rotate Bearer Token if compromised:
- Generate new random token (min 32 bytes)
- Update in worker:
wrangler secret put COACH_API_TOKEN - Notify users to use new credentials
-
Monitor Usage:
- Check Groq dashboard for unusual API calls
- Set spending limits in Groq account → Billing
-
Backup Config:
- Keep
wrangler.tomlin secure git repo (secrets not stored there) - Document all deployed secrets in a password manager
- Keep
Q: Can I share the APK without modifying it?
A: Yes! The APK works offline without any API keys embedded. Share it freely.
Q: Do users need to create accounts?
A: No. Atobits is fully local; no accounts or sign-in required.
Q: Can the app sync habits across multiple devices?
A: Not yet. Each device maintains its own local habit database. Cross-device sync is planned for v2.0.
Q: Is the app open-source?
A: Check the repository README.md for licensing information.
Q: What happens if I forget my Groq API key?
A: The app still works in local offline mode. AI Coach just won't be available until you reconfigure the proxy.
For additional support, refer to:
- coach-proxy/README.md – Proxy backend documentation
- PRIVACY_POLICY.md – Privacy and data handling
- TERMS_OF_SERVICE.md – Legal terms
- Main README.md – Project overview