Welcome to your comprehensive Flutter and Dart learning journey! This repository contains 8 weeks of structured lessons, exercises, and projects to take you from absolute beginner to building real-world Flutter applications.
Goal: Master Dart fundamentals before diving into Flutter
- Variables, data types, and null safety
- Control flow (if/else, switch, loops)
- Functions and arrow functions
- Collections (List, Map, Set)
- Exercise: Build a Dart console calculator
Goal: Understand Flutter's widget system and build simple UIs
- Your first Flutter app
- StatelessWidget vs StatefulWidget
- Basic widgets (Text, Container, Column, Row)
- Material Design basics
- Exercise: Build a personal info card app
Goal: Create interactive apps with state management
- Understanding setState
- User input with TextField
- Buttons and event handling
- ListView and scrolling
- Exercise: Build a Todo list app
Goal: Apply what you've learned in complete apps
- Project 1: Calculator app with custom UI
- Project 2: BMI Calculator
- Best practices and code organization
- Exercise: Enhance projects with features
Goal: Build multi-screen applications
- Navigator basics
- Passing data between screens
- Named routes
- Bottom navigation bar
- Exercise: Multi-page portfolio app
Goal: Fetch and display data from the internet
- HTTP requests with dio/http package
- JSON parsing and serialization
- Async/await patterns
- Error handling
- Exercise: Fetch and display data from a public API
Goal: Build a complete production-ready app
- Choose from: Weather App, Notes App, or Chat App
- State management (Provider/Riverpod)
- Local storage
- Polished UI/UX
- Deliverable: Complete functional app
-
Install Flutter SDK
- Windows: https://docs.flutter.dev/get-started/install/windows
- macOS:
brew install flutter - Linux:
sudo snap install flutter --classic
-
Install IDE
- VS Code + Flutter extension (recommended for beginners)
- OR Android Studio
-
Verify installation
flutter doctor
flutter-dart-tutorial/
├── week-1-dart-basics/
│ ├── lessons/ # Theory and examples
│ ├── exercises/ # Practice problems
│ └── solutions/ # Solution code
├── week-2-flutter-intro/
│ ├── lessons/
│ ├── exercises/
│ └── solutions/
├── ... (weeks 3-8)
└── README.md
- Follow the weeks sequentially - Each builds on previous concepts
- Read the lessons first - Understand theory before coding
- Complete all exercises - Practice is crucial
- Check solutions only after trying - Struggle helps you learn
- Experiment and break things - Best way to understand
- Lessons: 2-3 hours
- Exercises: 2-3 hours
- Projects: 3-5 hours
- Total: ~8-10 hours per week
By completing this course, you will:
- ✅ Write Dart code confidently
- ✅ Build beautiful, responsive UIs with Flutter
- ✅ Manage application state effectively
- ✅ Handle navigation in multi-screen apps
- ✅ Fetch and display data from APIs
- ✅ Store data locally
- ✅ Deploy production-ready Flutter apps
Track your progress by checking off completed weeks:
- Week 1: Dart Basics
- Week 2: Flutter Introduction
- Week 3: Stateful Widgets & User Input
- Week 4: Basic Projects
- Week 5: Navigation & Routing
- Week 6: Networking & APIs
- Week 7-8: Final Project
- Official Docs: https://docs.flutter.dev
- Dart Docs: https://dart.dev
- Widget Catalog: https://docs.flutter.dev/development/ui/widgets
- Stack Overflow: Tag your questions with
flutteranddart - Flutter Community: https://flutter.dev/community
- Code every day - Even 30 minutes helps
- Build things you're interested in - Customize the projects
- Read error messages carefully - They usually tell you what's wrong
- Use hot reload - See changes instantly while developing
- Don't skip exercises - They reinforce learning
Ready to begin? Start with Week 1: Dart Basics!