A multi-screen Body Mass Index calculator built with Flutter, featuring a fully custom dark UI. Created while following The App Brewery's Complete Flutter Development Bootcamp.
A simple, good-looking BMI calculator: pick your gender, set your height and weight, and get your BMI with a category and a short interpretation. The focus of the project is custom Flutter UI — theming, reusable widgets, and a clean multi-page flow — rather than complex logic.
⚠️ Attribution: this is a learning project built by following The App Brewery's Complete Flutter Development Bootcamp. The UI is based on a design by Ruben Vaalt. Credit for the original course material and design goes to them; this repo is my implementation while learning Flutter.
- Input screen — gender selection, height slider, weight and age steppers
- BMI calculation —
weight / (height/100)² - Result screen — BMI value, category (Underweight / Normal / Overweight), and a short interpretation
- Custom dark theme with a coherent color palette and reusable card/button widgets
lib/calculator_brain.dart:
- BMI = weight ÷ (height in metres)²
- ≥ 25 → Overweight · > 18.5 → Normal · otherwise → Underweight
- Flutter / Dart (SDK
>=2.1.0 <3.0.0) font_awesome_flutterfor icons- Material design with a customized dark
ThemeData
lib/
├── main.dart # app entry + theme
├── screens/
│ ├── input_page.dart # gender / height / weight / age input
│ └── results_page.dart # BMI result + interpretation
├── calculator_brain.dart # BMI calculation logic
├── constants.dart # shared text styles & colors
└── components/
├── reusable_card.dart
├── icon_content.dart
├── bottom_button.dart
└── round_icon_button.dart
- Install the Flutter SDK
- Fetch dependencies:
flutter pub get
- Run on a connected device or emulator:
flutter run
- Flutter themes for coherent branding
- Multi-page navigation with Routes and Navigator
- Extracting and refactoring widgets into reusable components
- Passing functions as parameters/fields
GestureDetectorfor custom interactions- Dart enums, the ternary operator, and
constvsfinal - Composition over inheritance for custom UI
Based on The App Brewery's Complete Flutter Development Bootcamp — full course at www.appbrewery.co. UI design by Ruben Vaalt.