Seven small, self-contained Flutter apps — each one complete, runnable, and built around a handful of new concepts.
BMI Calculator · XOX Game · Notes App · Weather App
These are the small projects I built while teaching myself Flutter, going from a
setState calculator to a notes app backed by a local database. I've cleaned them
up and documented each one, so you can pick a project, read through the code, and
build something similar yourself.
| # | Project | Level | What it teaches |
|---|---|---|---|
| 01 | BMI Calculator | 🟢 Beginner | setState, reusable widgets, Slider, enum, passing data between screens with Navigator |
| 02 | Calculator | 🟢 Beginner | Adding a pub package, MediaQuery sizing, button styling, expression parsing with math_expressions |
| 03 | XOX Game | 🟢 Beginner | GridView.builder, list-based game state, win detection, AlertDialog, custom fonts |
| 04 | Quiz App | 🟢 Beginner | Modeling data with a Dart class, RadioListTile, building widgets from a list, scoring |
| 05 | Study Tracker | 🟡 Intermediate | Persistence with shared_preferences + JSON, charts with fl_chart, date picker, undo via SnackBar |
| 06 | Notes App | 🔴 Advanced | provider state management, Isar local database, full CRUD + search, swipe-to-delete, theme switching |
| 07 | Weather App | 🟡 Intermediate | REST API calls, async/await, JSON parsing, geolocation permissions, Lottie animations |
| 08 | AI Chat | 🟡 Intermediate | REST API integration with LLMs, provider chat state, ScrollController auto-scroll, custom chat UI |
Projects are categorized by difficulty level (🟢 Beginner, 🟡 Intermediate, 🔴 Advanced). If you're brand new to Flutter, we recommend starting with the beginner projects and building your way up.
You'll need the Flutter SDK
installed. Each project declares its own Dart SDK constraint in pubspec.yaml;
a recent stable Flutter release will run all of them.
# 1. Clone the repo
git clone https://github.com/yakupkahraman/flutter-mini-projects.git
cd flutter-mini-projects
# 2. Pick a project
cd projects/01_bmi_calculator
# 3. Generate the platform folders (see note below)
flutter create --platforms=android,ios,macos,windows,linux,web .
# 4. Install dependencies and run
flutter pub get
flutter runWhy step 3? Only
lib/,assets/andpubspec.yamlare committed for each app — the generatedandroid/,ios/,web/… folders are left out to keep the repo small.flutter create .regenerates them without touching yourlib/code. Pass only the platforms you actually need.
Three projects need an extra step:
- 07 Weather App — needs a free OpenWeatherMap API key and location permissions.
- 08 AI Chat — needs an Anthropic API key entered via the app UI.
- 06 Notes App — uses generated Isar code, so run
dart run build_runner buildif you change the model.
Each project's own README has the full details.
Flutter · Dart · provider · isar_community · shared_preferences ·
fl_chart · http · geolocator · lottie · hugeicons
Found a bug, or want to add a project? Issues and pull requests are welcome — see CONTRIBUTING.md for the folder naming convention, what to commit, and the README structure each project follows.
MIT — see LICENSE. Use these projects however you like.



