A simple, motivational fitness app that helps users stay active by tracking their daily steps, walking time, distance, and calories burned with beautiful visualizations and achievement systems.
- Multi-User Authentication: Secure user registration and login with password encryption
- Live Step Counter: Real-time step tracking using device sensors
- Progress Visualization: Circular progress ring showing daily goal completion
- Activity Metrics: Displays steps, distance, calories, and active time
- Streak Tracking: Motivates users with consecutive active days
- Achievement System: Unlock badges for reaching milestones
- Data Isolation: Each user's data is completely separate and secure
- Login/Register: Secure local authentication with guest mode option
- Dashboard: Main screen with live stats and progress visualization
- History: Calendar view with daily, weekly, and monthly statistics
- Goals & Achievements: Set personal goals and unlock badges
- Settings: Customize profile, theme, notifications, and units
- Accelerometer: Motion detection and step counting with false movement filtering
- Gyroscope: Improved accuracy through phone orientation recognition
- GPS: Route tracking and precise outdoor distance measurement
- SQLite Database: Multi-user support with secure authentication
- User table with hashed passwords (SHA-256)
- Daily steps table linked to user accounts
- Achievements tracking per user
- Foreign key relationships for data integrity
- Shared Preferences: Saves app settings and user preferences
- Local-First: All data stored locally for privacy
- Android Studio (Arctic Fox or newer)
- Android SDK 24 or higher
- Physical Android device recommended (for accurate sensor testing)
- Clone or Download the project files
- Open in Android Studio: File → Open → Select the project folder
- Sync Gradle:
- Android Studio should automatically sync
- If not:
File → Sync Project with Gradle Files
- Add Required Resources: Create the following drawable resources in
res/drawable/:ic_home.xml(Home icon)ic_history.xml(History icon)ic_trophy.xml(Trophy icon)ic_settings.xml(Settings icon)ic_notification.xml(Notification icon)ic_badge_locked.xml(Locked badge)ic_badge_unlocked.xml(Unlocked badge)circular_progress.xml(Circular progress drawable)
- Activity Recognition
- Location Access (for GPS tracking)
- Notifications
- Connect Device or start an emulator
- Run: Click the green play button in Android Studio
- Register: Create a new account with email and password
- Login: Sign in with your credentials or continue as guest
- Start Tracking: Click "Start Tracking" on the dashboard
The app uses a dual approach:
- Hardware Step Counter (preferred): Uses TYPE_STEP_COUNTER sensor
- Accelerometer Fallback: Custom algorithm detecting movement patterns
- User Authentication: Passwords hashed with SHA-256 for security
- Data Isolation: Each user's steps, achievements, and settings are separate
- Persistent Storage: Data survives app restarts and user sessions
- Guest Mode: Temporary tracking without account creation
- Daily steps automatically saved to SQLite database
- Progress tracked across app restarts
- User-specific data retrieval on login
- Export functionality for data portability
Unlock badges for:
- 🥇 First 1K Steps - First milestone
- 🔥 Week Streak - 7 consecutive active days
- 🏆 10K Club - 10,000 steps in one day
- System-wide theme switching
- Persistent preference storage
- Material Design compliant
Three distinctive functional layouts:
- Login/Register
- Dashboard with live stats
- History/Goals/Settings
User interaction:
- Login/registration forms
- Start/Stop tracking button
- Goal settings
Intents:
- Navigation between activities
- Service communication
Sensor data collection:
- Accelerometer for step counting
- Gyroscope for accuracy improvement
- GPS for route tracking
Dynamic and practical use:
- Real-time step counter updates
- Progress visualization
- Historical data display
Database/File Storage:
- SQLite database with 3 tables (users, daily_steps, achievements)
- User authentication with password hashing
- Foreign key relationships
- User-specific data queries
Persistent Storage:
- Daily steps saved per user
- Data survives app restarts
- Login sessions maintained
- SharedPreferences for settings
Mobile Optimization:
- Background service for continuous tracking
- Efficient sensor sampling
- Battery-friendly GPS intervals
- Foreground service notification
- Step Counter: Walk around with device
- Multi-User: Create 2 accounts, verify data separation
- Login/Logout: Test password verification and session persistence
- Guest Mode: Ensure temporary tracking works
- Streak System: Change device date to test consecutive days
- Dark Mode: Toggle in settings
- Database: Add multiple days of data
- Achievements: Reach different milestones
- Emulator testing limited (no real sensor data)
- GPS requires outdoor testing
- Battery optimization may affect background trackin
Educational project
Aden Ibrahim Salat
Student ID: 3107940
BSC-MD Mobile Development Course
Note: This is a student project for educational purposes. Always test thoroughly on physical devices for accurate sensor readings.