AdvancedMobileFree prompt

Flutter Implementation with Clean Architecture and BLoC Pattern

Scalable Flutter architecture with layered separation, BLoC for state management, and dependency injection.

Structure a Flutter project with clean architecture that facilitates testing, maintenance, and onboarding of new developers.

At a glance

Access

Free prompt

Open to copy without upgrading.

Prompt objective

Structure a Flutter project with clean architecture that facilitates testing, maintenance, and onboarding of new developers.

Real use case

Espírito Santo fintech PixBank is migrating from a native app (Swift + Kotlin) to Flutter. The team has 5 developers from different backgrounds (web, iOS, Android). They need a standardized architecture that everyone can follow and that supports the 40+ screens of the banking app.

Customize these fields first

APP NAMEAPP TYPENUMBERAPI DESCRIPTION+ Webfeature_nameMAIN FEATURE

Replace the placeholders with your own context before you run the prompt. That usually improves the first output more than adding more instructions later.

Prompt

Design the complete architecture for a Flutter app called [APP NAME], a [APP TYPE] with [NUMBER] main screens/features.\\\\\\\\n\\\\\\\\n**Context:**\\\\\\\\n- Team: [NUMBER] Flutter developers\\\\\\\\n- Complexity: [NUMBER] screens, [NUMBER] APIs, [NUMBER] offline features\\\\\\\\n- Backend: [API DESCRIPTION]\\\\\\\\n- Target platforms: iOS + Android [+ Web]\\\\\\\\n\\\\\\\\n**1) Clean Architecture — Layers:**\\\\\\\\n\\\\\\\\n\\\\\\\\\\\\\\\\\\\\\\\`\\\\\\\\\\\\\\\\\\\\\\\`\\\\\\\\\\\\\\\\\\\\\\\`\\\\\\\\nlib/\\\\\\\\n├── core/                    # Shared across features\\\\\\\\n│   ├── error/               # Failure classes, exceptions\\\\\\\\n│   ├── network/             # API client, interceptors\\\\\\\\n│   ├── usecases/            # Base UseCase class\\\\\\\\n│   └── theme/               # AppTheme, colors, typography\\\\\\\\n├── features/\\\\\\\\n│   └── [feature_name]/\\\\\\\\n│       ├── data/\\\\\\\\n│       │   ├── datasources/  # Remote + Local data sources\\\\\\\\n│       │   ├── models/       # JSON serialization (fromJson/toJson)\\\\\\\\n│       │   └── repositories/ # Repository implementation\\\\\\\\n│       ├── domain/\\\\\\\\n│       │   ├── entities/     # Business objects (pure Dart)\\\\\\\\n│       │   ├── repositories/ # Repository contracts (abstract)\\\\\\\\n│       │   └── usecases/     # Business logic\\\\\\\\n│       └── presentation/\\\\\\\\n│           ├── bloc/         # BLoC + Events + States\\\\\\\\n│           ├── pages/        # Full screens\\\\\\\\n│           └── widgets/      # Feature-specific widgets\\\\\\\\n└── injection_container.dart  # GetIt DI setup\\\\\\\\n\\\\\\\\\\\\\\\\\\\\\\\`\\\\\\\\\\\\\\\\\\\\\\\`\\\\\\\\\\\\\\\\\\\\\\\`\\\\\\\\n\\\\\\\\n**2) BLoC Pattern in Detail:**\\\\\\\\n- For [MAIN FEATURE], create:\\\\\\\\n  - Events: all possible user actions\\\\\\\\n  - States: all possible screen states (initial, loading, loaded, error)\\\\\\\\n  - BLoC: event → state transformation logic\\\\\\\\n  - Unit tests for BLoC (bloc_test package)\\\\\\\\n- Cubit vs. BLoC: when to use each\\\\\\\\n- BlocObserver for global logging\\\\\\\\n- MultiBlocProvider at app root\\\\\\\\n\\\\\\\\n**3) Dependency Injection (GetIt):**\\\\\\\\n- Singleton registration (API client, database)\\\\\\\\n- Factory registration (BLoCs, UseCases)\\\\\\\\n- Lazy vs. eager initialization\\\\\\\\n- Feature-based modules for organization\\\\\\\\n\\\\\\\\n**4) Networking:**\\\\\\\\n- Dio with interceptors (auth, logging, error handling)\\\\\\\\n- Retrofit for API code generation\\\\\\\\n- Unified error model with Either (dartz/fpdart)\\\\\\\\n- Connectivity check before requests\\\\\\\\n\\\\\\\\n**5) Navigation:**\\\\\\\\n- GoRouter (declarative) with typed routes\\\\\\\\n- Guards for authentication\\\\\\\\n- Deep linking\\\\\\\\n- Nested navigation (shell routes)\\\\\\\\n\\\\\\\\n**6) Testing:**\\\\\\\\n- Unit tests: BLoCs, UseCases, Repositories\\\\\\\\n- Widget tests: isolated components\\\\\\\\n- Integration tests: complete flows\\\\\\\\n- Mocking with Mocktail\\\\\\\\n- Coverage target: > [%]\\\\\\\\n\\\\\\\\n**7) CI/CD:**\\\\\\\\n- GitHub Actions: analyze, test, build\\\\\\\\n- Fastlane for App Store/Play Store deployment\\\\\\\\n- Flavor configuration (dev, staging, prod)\\\\\\\\n- Code generation: build_runner, freezed, json_serializable\\\\\\\\n\\\\\\\\nInclude complete code for [MAIN FEATURE] following all architecture layers.

Open directly in an AI — the text is pre-filled:

How to use this prompt

  1. 1Replace the key placeholders first: APP NAME, APP TYPE, NUMBER, API DESCRIPTION.
  2. 2Replace any bracketed placeholders like [this] with your own context.
  3. 3Add extra background information when you want more tailored results.
  4. 4Combine multiple prompts in one conversation when you need a richer output.
  5. 5Save your best-performing prompts so they are easy to reuse later.

Next best step

Open the guide first, then branch only if you still need more.

A guide for technical builders choosing between prompts, coding workflows, and agent-based implementation.

If this prompt is close but not quite right, generate variants next. If the job is recurring, move into the course library after the guide.

Related prompts

View all

Explore other prompt categories

Move sideways into adjacent libraries when the current category is not the full answer.

Free browsing stays open. Premium prompts unlock the reusable workflow layer.

Use the guides and role paths to validate the job first. Upgrade when you want the full prompt text, editable premium prompts, and the surrounding course paths in one place.

Free access

  • Browse guides, role paths, and category pages.
  • Preview prompts before you decide to upgrade.
  • Find the right starting point without friction.

Membership access

  • Unlock premium prompts and the full copy text.
  • See more workflow paths and course connections.
  • Keep the reusable templates in one place.
Chat on WhatsApp