A practical guide for building cross-platform applications with Flutter 3 and Dart. Focuses on proven patterns, state management, and performance optimization.
PurposeComponentState management (simple)StateProvider + ConsumerWidgetState management (complex)NotifierProvider / BlocAsync dataFutureProvider / AsyncNotifierProviderReal-time streamsStreamProviderNavigationGoRouter + context.go/pushResponsive layoutLayoutBuilder + breakpointsList displayListView.builderComplex scrollingCustomScrollView + SliversHooksHookWidget + useState/useEffectFormsForm + TextFormField + validation
PurposeSolutionPrevent rebuildsconst constructorsSelective updatesref.watch(provider.select(...))Isolate repaintsRepaintBoundaryLazy listsListView.builderHeavy computationcompute() isolateImage cachingcached_network_image
const constructors wherever possibleKey for list items (ValueKey, ObjectKey)ConsumerWidget over StatefulWidget for stateselect() to minimize rebuildsRepaintBoundary for complex animationscompute()const constructors on all static widgetsKey on list itemsConsumerWidget for state-dependent widgetsbuild() methodselect() for granular rebuildsflutter run --profile)blocTest()TopicReferenceWidget patterns, const optimization, responsive layoutWidget PatternsRiverpod providers, notifiers, async stateRiverpod State ManagementBloc, Cubit, event-driven stateBloc State ManagementGoRouter setup, routes, deep linkingGoRouter NavigationFeature-based structure, dependenciesProject StructureProfiling, const optimization, DevToolsPerformance OptimizationWidget tests, integration tests, mockingTesting StrategiesiOS/Android/Web specific implementationsPlatform IntegrationImplicit/explicit animations, Hero, transitionsAnimationsDio, interceptors, error handling, cachingNetworkingForm validation, FormField, input formattersFormsi18n, flutter_localizations, intlLocalization
Flutter, Dart, Material Design, and Cupertino are trademarks of Google LLC and Apple Inc. respectively. Riverpod, Bloc, and GoRouter are open-source packages by their respective maintainers.