Receber por email
← Voltar para o catálogo

flutter-dev

Flutter cross-platform development guide covering widget patterns, Riverpod/Bloc state management, GoRouter navigation, performance optimization, and platform-specific implementations. Includes const optimization, responsive layouts, testing strategies, and DevTools profiling. Use when: building Flutter apps, implementing state management (Riverpod/Bloc), setting up GoRouter navigation, creating c

367estrelas
Atualizado há 4 meses

Ver no GitHub ↗

Como adicionar

/plugin marketplace add aiskillstore/marketplace

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/flutter-dev/svg)](https://www.skillteca.com.br/skills/flutter-dev)

Alerta por categoria

Receba novas skills de Design e Frontend toda segunda

1 email curto, só com as skills novas de Design e Frontend. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Flutter Development Guide

A practical guide for building cross-platform applications with Flutter 3 and Dart. Focuses on proven patterns, state management, and performance optimization.

Quick Reference

Widget Patterns

| Purpose | Component | |---------|-----------| | State management (simple) | StateProvider + ConsumerWidget | | State management (complex) | NotifierProvider / Bloc | | Async data | FutureProvider / AsyncNotifierProvider | | Real-time streams | StreamProvider | | Navigation | GoRouter + context.go/push | | Responsive layout | LayoutBuilder + breakpoints | | List display | ListView.builder | | Complex scrolling | CustomScrollView + Slivers | | Hooks | HookWidget + useState/useEffect | | Forms | Form + TextFormField + validation |

Performance Patterns

| Purpose | Solution | |---------|----------| | Prevent rebuilds | const constructors | | Selective updates | ref.watch(provider.select(...)) | | Isolate repaints | RepaintBoundary | | Lazy lists | ListView.builder | | Heavy computation | compute() isolate | | Image caching | cached_network_image |

Core Principles

Widget Optimization

  • Use const constructors wherever possible
  • Extract static widgets to separate const classes
  • Use Key for list items (ValueKey, ObjectKey)
  • Prefer ConsumerWidget over StatefulWidget for state

State Management

  • Riverpod for dependency injection and simple state
  • Bloc/Cubit for event-driven workflows and complex logic
  • Never mutate state directly (create new instances)
  • Use select() to minimize rebuilds

Layout

  • 8pt spacing increments (8, 16, 24, 32, 48)
  • Responsive breakpoints: mobile (<650), tablet (650-1100), desktop (>1100)
  • Support all screen sizes with flexible layouts
  • Follow Material 3 / Cupertino design guidelines

Performance

  • Profile with DevTools before optimizing
  • Target <16ms frame time for 60fps
  • Use RepaintBoundary for complex animations
  • Offload heavy work with compute()

Checklist

Widget Best Practices

  • [ ] const constructors on all static widgets
  • [ ] Proper Key on list items
  • [ ] ConsumerWidget for state-dependent widgets
  • [ ] No widget building inside build() method
  • [ ] Extract reusable widgets to separate files

State Management

  • [ ] Immutable state objects
  • [ ] select() for granular rebuilds
  • [ ] Proper provider scoping
  • [ ] Dispose controllers and subscriptions
  • [ ] Handle loading/error states

Navigation

  • [ ] GoRouter with typed routes
  • [ ] Auth guards via redirect
  • [ ] Deep linking support
  • [ ] State preservation across routes

Performance

  • [ ] Profile mode testing (flutter run --profile)
  • [ ] <16ms frame rendering time
  • [ ] No unnecessary rebuilds (DevTools check)
  • [ ] Images cached and resized
  • [ ] Heavy computation in isolates

Testing

  • [ ] Widget tests for UI components
  • [ ] Unit tests for business logic
  • [ ] Integration tests for user flows
  • [ ] Bloc tests with blocTest()

References

| Topic | Reference | |-------|-----------| | Widget patterns, const optimization, responsive layout | [Widget Patterns](references/widget-patterns.md) | | Riverpod providers, notifiers, async state | [Riverpod State Management](references/riverpod-state.md) | | Bloc, Cubit, event-driven state | [Bloc State Management](references/bloc-state.md) | | GoRouter setup, routes, deep linking | [GoRouter Navigation](references/gorouter-navigation.md) | | Feature-based structure, dependencies | [Project Structure](references/project-structure.md) | | Profiling, const optimization, DevTools | [Performance Optimization](references/performance.md) | | Widget tests, integration tests, mocking | [Testing Strategies](references/testing.md) | | iOS/Android/Web specific implementations | [Platform Integration](references/platform-specific.md) | | Implicit/explicit animations, Hero, transitions | [Animations](references/animations.md) | | Dio, interceptors, error handling, caching | [Networking](references/networking.md) | | Form validation, FormField, input formatters | [Forms](references/forms.md) | | i18n, flutter_localizations, intl | [Localization](references/localization.md) |

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.

Compartilhar X LinkedIn