After using fitness and sleep trackers for couple of years I realized I have learned my body enough such that the main gains were from the paying attention to your body more than any HR/sleep stage tracking. This is a fully offline Android app for tracking daily recovery and food. Log how you slept and feel each morning, get a recovery score and a sleep-debt-aware bedtime recommendation, and keep a running food log — including breaking a dish down into its ingredients. All data stays on your device. If you still want to conduct analysis export the data to a csv and use your favorite method.
- Morning inputs: sleep hours, energy, soreness, motivation
- Recovery score: computed from your morning inputs, color-coded
- Sleep debt & bedtime: tracks cumulative sleep debt and recommends a bedtime → wake window from your target sleep, debt, and stress
- Evening inputs: stress, screens-off time, caffeine cutoff
- Today's entry is pre-filled if you've already logged, so you can edit rather than re-enter
- Log meals with quantity, unit, meal type, and the time you actually ate
- Autocomplete from a bundled starter list plus your own recently logged foods
- Dish breakdown (optional): search a dish and pull a generic recipe's ingredients from Spoonacular, scaled by how many plates (servings) you ate, then edit the lines before logging
- Saved dishes: any dish you've broken down before resurfaces in the food search to re-log in a tap
- Grouped view: logged ingredients are grouped by dish, collapsible, and removable per item or per dish
- Local SQLite (Room) — no account, no network required for core use
- CSV export/import for recovery and food data (backup / transfer)
- Daily reminder notifications (morning and evening), restored on reboot
- Kotlin, Jetpack Compose, Material 3
- Room (SQLite) for persistence
- Android
HttpURLConnection+org.jsonfor the optional Spoonacular lookup (no extra networking dependencies)
- Android Studio (recent)
- JDK 17+
- Android SDK, min API 24 (Android 7.0), target API 34
- Open the project in Android Studio and let Gradle sync.
- Run on a device or emulator (API 24+).
To build a debug APK from the command line:
./gradlew assembleDebugThe APK is written to app/build/outputs/apk/debug/.
The dish-breakdown feature needs a free Spoonacular API key. The rest of the app works without it.
- Enter your key in the app under the Settings tab. It's stored on-device (SharedPreferences) and is never committed to source or version control.
- Until a key is set, the dish search simply prompts for one; everything else works normally.
score = (energy + (11 - soreness) + motivation) / 3
Higher energy and motivation raise it; higher soreness lowers it. 8+ is green, 5–8 yellow, below 5 red.
All entries live in the app's private storage on the device. They survive app updates but are removed on uninstall. Use CSV export to back up or move your data. The only network call is the optional Spoonacular dish lookup, made only when you search for a dish.
Released under the MIT License. Not affiliated with any commercial fitness tracker.