Przejdź do głównej zawartości

Wzorce rozwoju Flutter

Przyspiesz rozwój Flutter z Cursor i Claude Code. Te wzorce obejmują tworzenie widgetów, zarządzanie stanem, integrację platform i unikalne funkcje, które czynią Flutter potężnym wyborem dla rozwoju cross-platform.

  1. Otwórz Cursor w swoim workspace
  2. Uruchom tryb Agent (Cmd/Ctrl + I)
  3. Prompt: “Stwórz nową aplikację Flutter z:
    • Designem Material 3
    • Zarządzaniem stanu Riverpod
    • Nawigacją Go_router
    • Dio do networkingu
    • Freezed dla klas danych”
  4. Pozwól agentowi obsłużyć Flutter CLI i konfigurację pakietów
// Cursor prompt dla niestandardowych widgetów:
"Stwórz widget CustomCard, który:
- Przyjmuje title, subtitle i leading icon
- Ma Material 3 elevation i theming
- Wspiera callback onTap
- Zawiera wsparcie hero animation"
// Agent generuje:
import 'package:flutter/material.dart';
class CustomCard extends StatelessWidget {
final String title;
final String? subtitle;
final IconData? leadingIcon;
final VoidCallback? onTap;
final String? heroTag;
const CustomCard({
super.key,
required this.title,
this.subtitle,
this.leadingIcon,
this.onTap,
this.heroTag,
});
@override
Widget build(BuildContext context) {
// Implementacja z Material 3 theming
}
}
// Cursor Agent prompt:
"Ustaw Riverpod z:
1. Providerem stanu autoryzacji
2. Providerem profilu użytkownika z async loading
3. Providerem trybu motywu
4. Providerem preferencji językowych
Uwzględnij właściwą obsługę błędów i stany ładowania"

Providery Async

// Prompt: "Stwórz async provider dla danych użytkownika z:
// - Cachingiem
// - Możliwością odświeżania
// - Odzyskiwaniem błędów
// - Modyfikatorem Family dla parametrów"

State Notifiers

// Prompt: "Zaimplementuj koszyk zakupowy z:
// - Dodawaniem/usuwaniem elementów
// - Aktualizacjami ilości
// - Obliczaniem ceny
// - Trwałością"
// Kompleksowy prompt nawigacji:
"Zaimplementuj go_router z:
- Zagnieżdżoną nawigacją
- Strażnikami autoryzacji
- Deep linking
- Wsparciem URL-i web
- Niestandardowymi przejściami
- Obsługą błędów"
// Cursor wygeneruje:
final router = GoRouter(
routes: [
GoRoute(
path: '/',
builder: (context, state) => const HomePage(),
routes: [
GoRoute(
path: 'details/:id',
builder: (context, state) {
final id = state.pathParameters['id']!;
return DetailsPage(id: id);
},
),
],
),
],
);
// Cursor prompt dla responsywnych layoutów:
"Stwórz responsywny dashboard, który:
- Używa LayoutBuilder dla breakpointów
- Adaptuje nawigację (drawer vs rail vs bottom nav)
- Responsywny layout siatki
- Zachowuje stan podczas zmian layoutu"
  1. Generuj motyw: “Stwórz motyw Material 3 z niestandardowym schematem kolorów”
  2. Dodaj tryb ciemny: “Zaimplementuj tryb ciemny z wykrywaniem preferencji systemu”
  3. Komponenty niestandardowe: “Stylizuj wszystkie komponenty Material zgodnie z marką”
  4. Dynamiczne themowanie: “Dodaj przełączanie motywów w runtime z trwałością”
// Cursor Agent prompt:
"Zaimplementuj funkcję kamery z:
- Przechwytywaniem zdjęć
- Nagrywaniem wideo
- Pickerem galerii
- Kompresją obrazów
- Uprawnieniami iOS/Android"
// Kompleksowe generowanie testów:
"Napisz testy widgetów dla CustomCard w tym:
- Testy Golden dla regresji wizualnej
- Testy interakcji (tap, long press)
- Testy dostępności
- Testy wariantów motywu
- Testy stanu błędu"
  1. Konfiguracja: “Skonfiguruj pakiet integration_test”
  2. Pisz testy: “Stwórz test end-to-end dla onboardingu użytkownika”
  3. Integracja CI: “Dodaj testy integracyjne do GitHub Actions”

Wydajność wspomagana AI

Cursor/Claude może pomóc z:

  • Użyciem konstruktorów const
  • Optymalizacją przebudowy widgetów
  • Strategiami cachowania obrazów
  • Implementacją lazy loading
  • Wykrywaniem wycieków pamięci
// Prompt monitorowania wydajności:
"Dodaj śledzenie wydajności dla:
- Czasów budowania widgetów
- Metryki renderowania klatek
- Użycia pamięci
- Czasu trwania requestów sieciowych
- Uwzględnij integrację DevTools"
// Cursor prompt dla konfiguracji API:
"Stwórz serwis API z Dio, który zawiera:
- Interceptory dla tokenów autoryzacji
- Logowanie request/response
- Obsługę błędów z retry
- Kolejkę offline
- Modele typebezpieczne z Freezed"
// Prompt prostego przechowywania:
"Stwórz serwis ustawień z:
- Kluczami preferencji typebezpiecznymi
// - Wsparciem migracji
// - Wartościami domyślnymi
// - Aktualizacjami Stream"
// Kompleksowy prompt architektury:
"Ustaw czystą architekturę z:
- Warstwą domeny (entities, use cases)
- Warstwą danych (repositories, data sources)
- Warstwą prezentacji (pages, view models)
- Dependency injection z get_it
- Strategią obsługi błędów"
// Kompleksowa implementacja autoryzacji:
"Zaimplementuj autoryzację z:
1. Logowaniem email/hasło
2. Logowaniem społecznościowym (Google, Apple)
3. Autoryzacją biometryczną
4. Zarządzaniem sesją
5. Auto-wylogowaniem przy bezczynności"
// Wzorzec paginacji:
"Stwórz listę z nieskończonym przewijaniem z:
- Lazy loading
- Pull to refresh
- Obsługą stanu błędu
- Wskaźnikami ładowania
- Stanem pustym
- Efektywnością sieci"
  1. Stwórz formularz: “Zbuduj wieloetapowy formularz z walidacją”
  2. Dodaj walidację: “Zaimplementuj walidację w czasie rzeczywistym i przy submit”
  3. Obsługa błędów: “Pokaż błędy inline z dostępnością”
  4. Zarządzanie stanem: “Utrzymuj stan formularza między restartami aplikacji”
// Prompt konfiguracji debugowania:
"Skonfiguruj Flutter DevTools z:
- Niestandardowymi właściwościami inspector
- Nakładkami wydajności
- Markerami profilowania pamięci
- Debugowaniem sieci
- Podpowiedziami optymalizacji drzewa widgetów"

Kompleksowa strategia błędów

AI może zaimplementować:

  • Globalne granice błędów
  • Raportowanie crashy (Sentry/Firebase)
  • Przyjazne ekrany błędów
  • Mechanizmy odzyskiwania
  • Zachowanie debug vs release
# Cursor prompt: "Skonfiguruj build Android z:
# - Podpisywaniem aplikacji
# - Regułami ProGuard
# - Wsparciem Multi-APK
# - Metadanymi Play Store"
// Strukturyzuj swoje prompty tak:
"Stwórz [typ widgetu], który:
- Przestrzega wytycznych Material 3
- Wspiera [specyficzne funkcje]
- Obsługuje [przypadki brzegowe]
- Zawiera [kod specyficzny dla platformy]
- Ma kompleksową dokumentację"
// Prompt złożonego UI:
"Stwórz niestandardowego malarza dla:
- Animowanego tła fal
- Efektu gradient mesh
- Responsywnego na motyw
- Zoptymalizowanego pod kątem wydajności
- Z konfigurowalnymi parametrami"
// Prompt integracji natywnej:
"Zaimplementuj kanał platformy dla:
- Integracji iOS HealthKit
- Android Health Connect
- Komunikacji typebezpiecznej
- Obsługi błędów
- Mock implementacji do testów"