Communitygithub.com

flutter/flutter-architecting-apps

Architektioniert eine Flutter-Anwendung mit dem empfohlenen Schichtenansatz (UI, Logik, Daten). Verwenden Sie dies, wenn Sie ein neues Projekt strukturieren oder für Skalierbarkeit umgestalten.

Was ist flutter-architecting-apps?

Diese Fähigkeit (Skill) dient zur Architekturierung einer Flutter-Anwendung nach dem empfohlenen, mehrschichtigen Aufbau (UI, Logik, Daten). Sie ist ideal, wenn ein neues Projekt strukturiert oder ein bestehendes für bessere Skalierbarkeit umgestaltet werden soll. Der Skill setzt auf die saubere Trennung von Präsentation, Geschäftslogik und Datenzugriff, was die Testbarkeit, Wartbarkeit und Erweiterbarkeit der Anwendung deutlich verbessert. Entwickler können mit diesem Ansatz sicherstellen, dass ihre Flutter-App einer soliden, bewährten Architektur folgt – analog zu State-Management-Lösungen wie BLoC oder Riverpod, jedoch auf einer konzeptionell höheren Ebene.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/flutter/skills/tree/main/skills/flutter-architecting-apps

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht flutter-architecting-apps?

Architektioniert eine Flutter-Anwendung mit dem empfohlenen Schichtenansatz (UI, Logik, Daten). Verwenden Sie dies, wenn Sie ein neues Projekt strukturieren oder für Skalierbarkeit umgestalten.

Überblick

Diese Fähigkeit hilft Ihnen, eine Flutter-App nach einer sauberen, geschichteten Architektur zu organisieren. Die drei Hauptschichten sind:

  • UI-Schicht: Widgets und Ansichten, die die Benutzeroberfläche darstellen.
  • Logikschicht: Geschäftslogik, State-Management und Orchestrierung.
  • Datenschicht: Datenzugriff, Repositories und Datenquellen (z.B. APIs, lokale Datenbanken).

Verwendung

Rufen Sie diese Fähigkeit auf, wenn Sie:

  • Ein neues Flutter-Projekt beginnen und eine solide Architektur wünschen.
  • Eine bestehende App umgestalten, um sie testbarer und wartbarer zu machen.
  • Ein Team von Entwicklern auf ein einheitliches Architekturmuster ausrichten möchten.

Empfohlene Tools und Pakete

  • State-Management: Provider, Riverpod, BLoC (flutter_bloc), GetX
  • Datenzugriff: Dio (HTTP), sqflite oder drift (SQLite), shared_preferences
  • Abhängigkeitsinjektion: GetIt, Injectable

Beispielhafte Ordnerstruktur

lib/
├── app/              # App-Konfiguration, Router, Themes
├── ui/               # UI-Schicht (Widgets, Screens)
│   ├── screens/
│   ├── widgets/
│   └── pages/
├── logic/            # Logikschicht (BLoCs, Provider, ViewModels)
│   ├── blocs/
│   ├── providers/
│   └── viewmodels/
├── data/             # Datenschicht (Repositories, Datenquellen, Modelle)
│   ├── repositories/
│   ├── datasources/
│   └── models/
└── main.dart

Architekturprinzipien

  1. Schichtentrennung: Jede Schicht kommuniziert nur mit der direkt darunterliegenden Schicht.
  2. Abhängigkeitsumkehr: Die Logikschicht definiert Schnittstellen, die von der Datenschicht implementiert werden.
  3. Testbarkeit: Geschäftslogik kann isoliert getestet werden, ohne UI- oder Datenbankabhängigkeiten.
  4. Skalierbarkeit: Neue Features können durch Hinzufügen neuer Module hinzugefügt werden, ohne bestehende Strukturen zu beeinträchtigen.

Weitere Informationen

Lesen Sie die offizielle Flutter-Architekturdokumentation für vertiefende Informationen.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

flutter/flutter-accessibility

Configure your Flutter app to support assistive technologies like Screen Readers

flutter/flutter-accessibility-audit

Triggers an accessibility scan through the widget_inspector and automatically adds Semantics widgets or missing labels to the source code.

flutter/flutter-adding-home-screen-widgets

Adds home screen widgets to a Flutter app for Android and iOS. Use when providing glanceable app information or quick actions on the device home screen.

flutter/flutter-add-integration-test

Configures Flutter Driver for app interaction and converts MCP actions into permanent integration tests. Use when adding integration testing to a project, exploring UI components via MCP, or automating user flows with the integration_test package.

flutter/flutter-add-widget-preview

Adds interactive widget previews to the project using the previews.dart system. Use when creating new UI components or updating existing screens to ensure consistent design and interactive testing.

flutter/flutter-add-widget-test

Implement a component-level test using `WidgetTester` to verify UI rendering and user interactions (tapping, scrolling, entering text). Use when validating that a specific widget displays correct data and responds to events as expected.

flutter/flutter-animating-apps

Implements animated effects, transitions, and motion in a Flutter app. Use when adding visual feedback, shared element transitions, or physics-based animations.

flutter/flutter-animation

Add animated effects to your Flutter app

flutter/flutter-apply-architecture-best-practices

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

flutter/flutter-app-size

Measure and reduce the size of the Flutter app bundle, APK, or IPA

flutter/flutter-architecture

Use the Flutter team's recommended app architecture

flutter/flutter-building-forms

Builds Flutter forms with validation and user input handling. Use when creating login screens, data entry forms, or any multi-field user input.

flutter/flutter-building-layouts

Builds Flutter layouts using the constraint system and layout widgets. Use when creating or refining the UI structure of a Flutter application.

flutter/flutter-building-plugins

Builds Flutter plugins that provide native interop for other apps to use. Use when creating reusable packages that bridge Flutter with platform-specific functionality.

flutter/flutter-build-responsive-layout

Use `LayoutBuilder`, `MediaQuery`, or `Expanded/Flexible` to create a layout that adapts to different screen sizes. Use when you need the UI to look good on both mobile and tablet/desktop form factors.

flutter/flutter-caching

Cache data in a Flutter app

flutter/flutter-caching-data

Implements caching strategies for Flutter apps to improve performance and offline support. Use when retaining app data locally to reduce network requests or speed up startup.

flutter/flutter-concurrency

Execute long-running tasks in a background thread in Flutter

flutter/flutter-databases

Work with databases in a Flutter app

flutter/flutter-embedding-native-views

Embeds native Android, iOS, or macOS views into a Flutter app. Use when integrating complex native components like maps or web views.

Verwandte Skills