A modern, comprehensive Flutter application for calculating and tracking Body Mass Index (BMI). Monitor your health journey with beautiful charts, historical data, and personalized insights.
- BMI Calculator: Accurate BMI calculation using height and weight
- Multi-Unit Support: Switch between metric (cm/kg) and imperial (ft/lbs) units
- Gender Selection: Tailored calculations and recommendations
- BMI Categories: Clear classification (Underweight, Normal, Overweight, Obese)
- Healthy Weight Range: Shows ideal weight range for your height
- π BMI History & Graphs: Track your BMI over time with interactive charts
- πΎ Local Data Storage: Your data stays private on your device
- π± Responsive Design: Optimized for all screen sizes
- π¨ Modern UI: Beautiful, intuitive interface with custom animations
- π Share Results: Share your BMI results with others
- π Interactive Wheel Sliders: Smooth, precise input controls
- Drawer Navigation: Easy access to history, graphs, and settings
- Motivational Messages: Personalized interpretations based on results
- Ad Integration: Monetized with Google AdMob
- Cross-Platform: Available on Android, iOS, Web, Windows, macOS, and Linux
- Flutter SDK (>=3.3.4 <4.0.0)
- Dart SDK
- Android Studio / VS Code
- Git
-
Clone the repository
git clone https://github.com/alamin-alshaharia/bmi-health-checker.git cd bmi-health-checker -
Install dependencies
flutter pub get
-
Run the app
flutter run
lib/
βββ main.dart # App entry point
βββ calculator.dart # BMI calculation logic
βββ ads/ # Advertisement management
βββ constant/ # App constants and themes
βββ fonts/ # Custom fonts
βββ models/ # Data models
βββ providers/ # State management (Riverpod)
βββ screen/ # UI screens
βββ utils/ # Utility functions
βββ widget/ # Reusable widgets
- Flutter SDK: Cross-platform UI framework
- Dart: Programming language
- Riverpod: Modern state management solution
- flutter_riverpod: Reactive caching and data-binding
- wheel_slider: Interactive wheel input controls
- fl_chart: Beautiful, customizable charts
- flutter_screenutil: Responsive screen adaptation
- font_awesome_flutter: Icon library
- shared_preferences: Local data persistence
- package_info_plus: App version information
- share_plus: Share functionality across platforms
- url_launcher: Launch URLs and external apps
- connectivity_plus: Network connectivity monitoring
- google_mobile_ads: AdMob integration
- flutter_slider_drawer: Custom drawer implementation
- get: Route management and utilities
- flutter_exit_app: Proper app exit handling
class Calculator {
final double height;
final double weight;
double bmiValue() => weight / pow(height / 100, 2);
String bmiText() { /* BMI category logic */ }
String bmiInterpretation() { /* Personalized messages */ }
}- BmiProvider: Manages BMI calculation state
- Riverpod: Handles reactive state updates
- Local Storage: Persists user data and history
- Responsive Design: Adapts to different screen sizes
- Custom Animations: Smooth transitions and interactions
- Theme System: Consistent color scheme and typography
The project includes comprehensive testing:
# Run unit tests
flutter test
# Run integration tests
flutter test integration_test/
# Run specific test file
flutter test test/unit/calculator_test.dart- Unit Tests: BMI calculation logic
- Integration Tests: End-to-end user flows
- Widget Tests: UI component testing
- Add your AdMob App ID in
android/app/src/main/AndroidManifest.xml - Configure ad unit IDs in
lib/ads/ad_constants.dart - Update iOS configuration in
ios/Runner/Info.plist
- Configure signing certificates for release builds
- Update
android/app/build.gradlefor Android - Configure signing in Xcode for iOS
- v1.2.0: Latest stable release
- Enhanced UI/UX
- Improved chart functionality
- Bug fixes and performance improvements
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Copyright (c) 2025 Md. Alamin Al Shaharia. All rights reserved.
This code is provided for educational and reference purposes only. While you may fork this repository on GitHub for personal study, you may not use, copy, modify, or distribute the code without permission.
This project is not licensed under any open source license..
Developer: Alamin Al Shaharia Email: [email protected] GitHub: @alamin-alshaharia
- Flutter team for the amazing framework
- Contributors to the open-source packages used
- Medical professionals who provided BMI calculation standards
- Users who provided feedback and suggestions
This app is for informational purposes only and should not be used as a substitute for professional medical advice. Always consult with healthcare professionals for medical decisions and health-related concerns.
Made with β€οΈ using Flutter
β Star this repo if you found it helpful!






