All Flutter Guides
Flutter development guide organized by category
Getting Started
How to Set Up Flutter: SDK, IDE, and Emulator
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 vs Hot Restart in Flutter: What Each Keeps
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
What Is Dart? A Language Built on Null Safety and JIT/AOT
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: var/final/const and the ?, !, ?? Operators
Core Dart syntax, starting from main()
Dart programs start from main(). Covers var/final/const/late/dynamic declarations, string interpolation, Null Safety (?/!/??), and cascade (..) operator.
How Dart's Type System Works: Inference, Casts, and Generics
A statically typed language checked at compile time
Dart is statically typed with compile-time type checking. Covers type inference, is/as casting, type promotion, generics, and typedef.
Dart Classes: extends vs implements vs with
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 List vs Set vs Map: When to Use Each
Plus spread and 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: How to Use Future, Stream, and async/await
Keep the UI responsive during slow work
Handle time-consuming tasks without blocking UI. Future (single result), Stream (continuous events), async/await for sync-like async code.
Dart Exception Handling: Exception vs Error and try-catch
Plus on, rethrow, and async exceptions
Dart distinguishes Exception (recoverable) from Error (unrecoverable). Covers try-catch-finally, on-type handling, rethrow, and async exception handling.
What Are Dart Extensions? Adding Methods to Existing Classes
Examples: capitalize on String, isPrime on int
Extensions add methods, properties, and operators to existing classes without modifying source or inheritance. Add capitalize to String, isPrime to int, distinct to List.
How to Use Dart Records and 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
What Is the Flutter Widget Tree? Widget, Element, RenderObject
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: Which One to Use
Decide by whether the UI changes
Static UI uses StatelessWidget, interactive UI uses StatefulWidget — the right choice determines performance and structure
How Flutter Layout Works: Constraints Down, Sizes Up
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 vs Riverpod: Choosing Flutter State Management
An InheritedWidget wrapper and its successor
Provider is an InheritedWidget wrapper suitable for simple state management, Riverpod is its successor providing compile-time safety and testability
What Is the BLoC Pattern? Separating UI and Logic in Flutter
The one-way Event → BLoC → State flow
One-directional Event → BLoC → State flow completely separates business logic from UI. Excellent maintainability and testability in large-scale apps
Navigation & Routing
Flutter Navigation Basics: push/pop and Named Routes
Stacking screens with Navigator
Implement stack-based screen transitions with Navigator.push()/pop() and set up URL-based routing with Named Routes
How to Use GoRouter: Declarative, URL-Based Routing in Flutter
Deep links, redirects, and auth guards
go_router handles deep links, redirects, nested routes, and guards (auth checks) cleanly with URL-based declarative routing
Production & Deploy
How to Call a REST API in Flutter: http/dio and JSON
Mapping JSON to Dart objects
Practical guide to calling REST APIs with http or dio packages and mapping JSON serialization/deserialization to Dart objects
How to Publish a Flutter App to the App Store and Google Play
Signing, build settings, store listing, and review
App signing, build configuration, store registration, review handling — complete process for publishing Flutter app to App Store and Google Play
What Are Platform Channels? Calling Swift/Kotlin from Flutter
Camera, Bluetooth, and NFC via MethodChannel
How to communicate with Swift (iOS) / Kotlin (Android) code via MethodChannel when native features like camera, Bluetooth, NFC are needed