Tracker
An offline-first Android app for tracking your workouts, any stats you measure (weight, calories, body fat, waist, sleep...) and progress photos in one place. Built with Kotlin, Jetpack Compose and Material Design 3.
All data stays on your device, and you don't need an account. When you want your numbers elsewhere, export any screen's analytics, or everything at once, as a PDF or Excel file. To move to a new phone, back up everything to one file and restore it there. Health Connect sync is optional and reads data that is already on the phone. The app never goes online: it doesn't even ask for internet access.
🌐 Website: aboud-khalaf.github.io/Android-Tracker
✨ Features
🗓️ Programs and weekly schedule
- Create workout programs from a template — Full Body, Upper/Lower, Push/Pull/Legs — or start from scratch
- Pick your training days; each day gets its own exercise list, named after the split (e.g. Push, Pull, Legs, Push…)
- Add or remove training days, move a day to another weekday, or add days without a fixed weekday
- Put the days in your own order by dragging them (handle or long press) on the program screen, instead of the weekday order; the order is saved and kept when you reopen the program (Move up/down are in each day's menu too)
- Keep several programs and choose which one is active; Home shows today's workout from it, or the next one on a rest day
- Templates are plain data, so new splits need no code
🏋️ Workouts
- Add exercises to each training day from your own exercise library, or create one on the spot with its type and target muscle
- Replace an exercise (e.g. Bench Press → Dumbbell Press) without rebuilding the day: it keeps its place and targets
- Drag and drop exercises into a new order with the handle or a long press; the order is saved and restored (Move up/down stay available in the menu and to TalkBack)
- Targets per exercise: sets, reps and weight, or hold time, edited on their own without starting a workout. They prefill each new workout; what you actually lift is recorded separately and shown next to them as "Recorded last workout"
- Log weight-and-reps sets during an active workout
- Mark a set as a warm-up, drop set or to failure; add warm-ups before the working sets with one tap. Warm-ups are numbered apart and left out of progress, records, volume and "last time" comparisons
- Rest screen: after a set, the rest countdown takes over the screen with what comes next (the next set and last time's value, or the next exercise), −15s / +15s and Skip; "Show workout" shrinks it to a bar. When the rest between exercises ends, the next exercise opens
- Optionally rate each weighted set's effort on the RPE scale (6–10), shown next to the set once it's done
- Notes: a note on the whole workout (shown in history) and on each exercise (shown in its progress history and, next time, under the exercise as "Last time")
- Supersets: pair exercises on a training day ("Superset with next"); during the workout, completing a set goes straight to the next exercise of the superset, and the rest comes after each round
- Plate calculator: see which plates go on each side of a 20, 15 or 10 kg bar for the weight you typed
- New personal bests are celebrated the moment you complete the set: a vibration, a "New personal best!" message and a PB badge on the set
- Built-in hold timer for timed sets (planks, holds, etc.)
- Workout history grouped by month, with a filter by training day
- Consistency in History: your streak of weeks in a row with a workout, and a 12-week training calendar
- Workout summary after finishing (and from any workout in Home or History): time, sets, volume against the last workout of the same day, the personal bests it set, and each exercise's sets
⏱️ Workouts that survive leaving the app
- While a workout is in progress, an ongoing notification shows it with a running clock; tap it to jump back in
- The clock counts from the stored start time, so it stays right with the screen locked, in another app, or after Android closes the app
- Every set is saved the moment you log it. Reopen the app after it was closed (or the phone restarted) and the workout comes back on the exercise you were on, with your typed weight and reps and a running hold timer intact
- Only one workout can run at a time, so there are never duplicate timers
📈 Progress
- Sets this week by muscle: working sets per muscle group (chest, back, shoulders, arms, legs, core) this week next to last week; set or change the group on any exercise
- Search your exercises by name and filter them by target muscle group; the search stays pinned at the top while you scroll
- A details screen for each exercise, with a progress chart and full history
- Switch between progress metrics (top set weight, estimated one-rep max, reps, volume) and time ranges; once you log your Weight stat, × BW charts each top set as a multiple of your bodyweight that day
- Export an exercise's progress for the selected metric and range as a PDF or Excel file
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗