Mobile 2,967 installs

flutter-apply-architecture-best-practices

by flutter/skills

Architects a Flutter application using the recommended layered approach (UI, Logic, Data). Use when structuring a new project or refactoring for scalability.

Skill content

Architecting Flutter Applications

Contents

- Architectural Layers

- Project Structure

- Workflow: Implementing a New Feature

- Examples

Architectural Layers

Enforce strict Separation of Concerns by dividing the application into distinct layers. Never mix UI rendering with business logic or data fetching.

UI Layer (Presentation)

Implement the MVVM (Model-View-ViewModel) pattern to manage UI state and logic.

- Views: Write reusable, lean widgets. Restrict logic in Views to UI-specific operations (e.g., animations, layout constraints, simple routing). Pass all required data from the ViewModel.

- ViewModels: Manage UI state and handle user interactions. Extend ChangeNotifier (or use Listenable) to expose state. Expose immutable state snapshots to the View. Inject Repositories into ViewModels via the constructor.