Personal Fitness
Personalized workout routine manager, set/rep logger & health analytics application.
iOS & Android
Lead Developer
2024 - 2025
Provider & Offline-First
Built with Flutter for high performance, smooth animations, and reliable offline local data storage.
Personal Fitness is an offline-first workout tracking mobile application created to help gym-goers, athletes, and fitness enthusiasts log their daily training sessions, customize weekly routine splits, monitor volume progression, and achieve long-term physical goals with zero distractions.
Most fitness apps require constant internet connectivity, suffer from sluggish UI in basement gyms, and lock essential routine creation features behind expensive subscriptions.
Engineered an ultra-fast, 100% offline Flutter app using Hive key-value persistence, featuring instant set/rep logging, built-in rest intervals, and clean visual progress charts.
Routine Builder
Create custom splits including Push-Pull-Legs, Upper-Lower, or full-body programs tailored to individual goals.
Instant Set Logger
Record weights, completed reps, and RPE with one-tap increments and automatic rest countdown vibration.
Exercise Database
Organized by muscle group (Chest, Back, Shoulders, Legs, Core) with form cues and previous personal bests.
Volume Analytics
Interactive weekly training volume and bodyweight graphs to ensure continuous progressive overload.
100% Offline First
No network connection required in gyms; lightning-fast read/write access via embedded Hive binary storage.
High-Contrast Dark UI
Sleek dark theme optimized for OLED screens and low-light training rooms to reduce eye strain and battery usage.
- Sub-millisecond Storage: Employed Hive NoSQL database for rapid serializations of complex workout hierarchies and exercise logs without database lock contention.
- Background Timer Synchronization: Robust timer controller that maintains accurate countdowns even when the app is minimized during workout rest intervals.
- State Modularity: Clean separation of WorkoutProvider and RoutineProvider, preventing unnecessary rebuilds of active input widgets.