All Flutter Guides
Flutter development guide organized by category
π Getting Started
Flutter Development Setup
From SDK Installation to Running Your First App
Flutter SDK installation, IDE setup (VS Code/Android Studio), emulator configuration β complete environment setup guide to start development
Hot Reload & Hot Restart
Core Feature That Makes Flutter Development 10x Faster
Hot Reload lets you see results within 1 second after code changes β the core of Flutter developer productivity and its biggest differentiator
Useful Sites for Learning Flutter
Collection of helpful external resources
π― Dart Language
Introduction to Dart
Client-optimized programming language by Google
Dart is an object-oriented language designed by Google for fast, stable apps on all platforms. Everything is an object, with strong typing, Null Safety, and JIT+AOT compilation.
Dart Basic Syntax
Variables, strings, operators, Null Safety basics
Dart programs start from main(). Covers var/final/const/late/dynamic declarations, string interpolation, Null Safety (?/!/??), and cascade (..) operator.
Dart Type System
Static typing, type inference, generics, typedef
Dart is statically typed with compile-time type checking. Covers type inference, is/as casting, type promotion, generics, and typedef.
Dart Classes & OOP
5 constructor types, inheritance, interfaces, Mixin, factory pattern
Dart is fully object-oriented. Design flexible classes with 5 constructor types, extends/implements/with for inheritance, interfaces, Mixins, and factory patterns.
Dart Collections
List, Set, Map + spread, collection for/if
Dart's 3 core collections β List (ordered, duplicates), Set (unique, set operations), Map (key-value). Powerful data processing with spread, collection for/if, method chaining.
Dart Async Programming
Future, async/await, Stream, FutureBuilder
Handle time-consuming tasks without blocking UI. Future (single result), Stream (continuous events), async/await for sync-like async code.
Dart Exception Handling
try-catch-finally, on-type handling, rethrow
Dart distinguishes Exception (recoverable) from Error (unrecoverable). Covers try-catch-finally, on-type handling, rethrow, and async exception handling.
Dart Extensions
Adding methods/properties to existing classes
Extensions add methods, properties, and operators to existing classes without modifying source or inheritance. Add capitalize to String, isPrime to int, distinct to List.
Dart Records & Pattern Matching
Dart 3.0 β multiple returns, destructuring, switch patterns
Records, introduced in Dart 3.0, are immutable types for grouping values without classes. Combined with pattern matching, switch/if-case can check types and conditions simultaneously.
π¨ Widgets & UI
Understanding Widget Tree
The Foundation of Flutter UI β Everything is a Widget
In Flutter, buttons, text, padding, alignment are all widgets. Understand how Widget β Element β RenderObject, three trees compose the UI
StatefulWidget vs StatelessWidget
Widget Selection Based on State
Static UI uses StatelessWidget, interactive UI uses StatefulWidget β the right choice determines performance and structure
Flutter Layout System
Arranging UI with Row, Column, Stack, Flex
Constraints go down, Sizes go up, Parent sets position β understanding these 3 layout rules lets you freely arrange any UI
π State Management
Provider & Riverpod
Flutter Official Recommended State Management
Provider is an InheritedWidget wrapper suitable for simple state management, Riverpod is its successor providing compile-time safety and testability
BLoC Pattern
Separation of Concerns with Business Logic Component
One-directional Event β BLoC β State flow completely separates business logic from UI. Excellent maintainability and testability in large-scale apps
πΊοΈ Navigation & Routing
Navigation Basics
Screen Navigation with push/pop and Named Routes
Implement stack-based screen transitions with Navigator.push()/pop() and set up URL-based routing with Named Routes
GoRouter Declarative Routing
Flutter Official Recommended Routing Package
go_router handles deep links, redirects, nested routes, and guards (auth checks) cleanly with URL-based declarative routing
π¦ Production & Deploy
REST API Integration
Server Data Communication with http/dio
Practical guide to calling REST APIs with http or dio packages and mapping JSON serialization/deserialization to Dart objects
App Store Deployment
Publishing Flutter App to iOS App Store + Google Play
App signing, build configuration, store registration, review handling β complete process for publishing Flutter app to App Store and Google Play
Platform Channels
Calling Native Code (Swift/Kotlin) from Flutter
How to communicate with Swift (iOS) / Kotlin (Android) code via MethodChannel when native features like camera, Bluetooth, NFC are needed