FitCore: Home Workouts & AI Coach demonstrates the integration of AI with Fitness on Android. Key features include:
- The integration of AI capabilities for personalized fitness coaching and insights.
- Categorized exercises based on the user's fitness level and goal.
- Track user steps with the phone's sensors and provide a weekly data chart.
- Calorie counter - distance tracker - dynamic BMI calculator and more
|
Your intelligent AI Coach, providing personalized advice and plans across all aspects of health, fitness, and nutrition to guide your wellness journey
|
|
- Compatible with devices running Android 7.0 and newer(Minimum SDK level 24).
- Fully implemented using Jetpack Compose
- Coroutines and Flow for asynchronous streams.
- Sensors in Android: Built-in sensors that measure motion, orientation, and various environmental conditions.
- Firebase:
- Authentication: Secure user sign-up, sign-in (including forgot password) for seamless onboarding.
- Crashlytics: Real-time crash reporting and insightful error analysis to maintain app stability.
- DebugView: For real-time event monitoring during development.
- Initial Data Population: Efficiently prepopulates the Room database with initial data using a pre-packaged JSON strategy
- Google Gemini: Powers the AI-driven personalized fitness coaching
- Jetpack
- Compose: Androidโs modern toolkit for building native UI.
- ViewModel: UI related data holder and lifecycle aware.
- Type Safe Compose Navigation: For navigating screens and Type Safety to create more robust, reliable, and maintainable navigation system , enabling Compile-Time Error Detection.
- Room: Constructs Database by providing an abstraction layer over SQLite to allow fluent database access.
- Hilt: Dependency Injection.
- Compose animation: Jetpack Compose animations.
- WorkManager: To achieve background processing with scheduling.
- Figma: A cloud-based, collaborative design tool primarily used for creating user interfaces (UIs) and interactive prototypes.
- Material 3: Google's latest design system for building modern, personalized, and accessible app UIs.
- Coil: image loading library for Android.
- Retrofit2: Construct the REST APIs and paging network data.
- ksp: Kotlin Symbol Processing API.
Fitcore is built according to Google's official architecture guidance.
The overall architecture is composed of two layers; the UI Layer and the data layer. Each layer has dedicated components, and they each have different responsibilities. The arrow means the component has a dependency on the target component following its direction.
Each layer has different responsibilities below. Basically, they follow unidirectional event/data flow.
The UI Layer consists of UI elements like buttons, menus, and tabs that could interact with users and ViewModel that holds app states and restores data when configuration changes.
This data layer is structured around a central Repository, which serves as the single source of truth for the application's data. Its primary functionality involves abstracting data operations, intelligently fetching and managing information from either the Network (for remote data) or the Local Database (Room). Data retrieved from the network can seamlessly update the local database(mostly authentication), ensuring data persistence, while the local database is also pre-populated via initial data seeding from JSON. The Repository then provides a unified data stream to higher architectural layers, enabling efficient and consistent access to all necessary information, thereby decoupling business logic from underlying data sources.
The app may limit functionality or self-terminate if it detects (Experimental):
- Rooted Devices: Presence of root access or related tools.
- Active Debugging: Attempts to debug or inspect the app's runtime
- App Tampering: Modifications to the app's code or resources
- Other security layers include:
- Code Obfuscation: The app's code is obfuscated to make reverse engineering significantly more difficult.
- Secured API Keys & Strings: Sensitive data like API keys and critical strings are indirectly implemented and not easily extractable.
- User achievement system (part of gamification strategy)
- Display upcoming workouts in the live workout sessions screen
Email me at: [email protected] or contact me on LinkedIn
Copyright 2025 Mohammad Khosravi
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.










