# brianegan/flutter_architecture_samples

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/brianegan-flutter-architecture-samples).**

8,920 stars · 1,714 forks · Dart · BSD-3-Clause

## Links

- GitHub: https://github.com/brianegan/flutter_architecture_samples
- Homepage: http://fluttersamples.com/
- awesome-repositories: https://awesome-repositories.com/repository/brianegan-flutter-architecture-samples.md

## Topics

`dart` `flutter` `redux`

## Description

This is a reference project that implements the same TodoMVC application across multiple Flutter state management and architecture patterns, enabling direct side-by-side comparison. The project demonstrates how different approaches—including BLoC, Redux, MobX, Provider, and Scoped Model—handle state, data flow, and separation of concerns within the Flutter framework.

Each architecture implementation is built to the same specification and runs an identical suite of shared integration tests, ensuring consistent behavior across all patterns. This allows developers to evaluate the trade-offs of each approach in a concrete, testable context rather than through abstract descriptions.

The project serves as a learning resource for Flutter app architecture, providing working examples that show how different patterns manage state, structure code, and support testing. The shared integration test suite verifies that every implementation behaves identically from the user's perspective, regardless of the underlying architectural choices.

## Tags

### Mobile Development

- [TodoMVC Implementations](https://awesome-repositories.com/f/mobile-development/cross-platform-frameworks/flutter/todomvc-implementations.md) — An implementation of the TodoMVC specification using Flutter, demonstrating cross-architecture testing and pattern evaluation.

### Software Engineering & Architecture

- [Pattern Comparisons](https://awesome-repositories.com/f/software-engineering-architecture/architectural-patterns/pattern-comparisons.md) — Compare architectural patterns by implementing the same app in each approach to highlight their trade-offs. ([source](http://fluttersamples.com/))
- [Widget Tree Providers](https://awesome-repositories.com/f/software-engineering-architecture/dependency-injection-providers/widget-tree-providers.md) — Wraps InheritedWidget to expose dependencies and state to descendant widgets in a testable way.
- [Flutter](https://awesome-repositories.com/f/software-engineering-architecture/redux-implementations/flutter.md) — Manages state through a unidirectional data flow with a single store, reducers, and actions.
- [Flutter State Management Demos](https://awesome-repositories.com/f/software-engineering-architecture/shared-state-management/flutter-state-management-demos.md) — A demo application showcasing different architectural approaches like BLoC, Redux, and MobX within the Flutter ecosystem.
- [State Management Comparison Apps](https://awesome-repositories.com/f/software-engineering-architecture/shared-state-management/flutter-state-management-demos/state-management-comparison-apps.md) — A reference app that implements the same TodoMVC interface across multiple Flutter state management patterns for side-by-side comparison.
- [Pattern Comparisons](https://awesome-repositories.com/f/software-engineering-architecture/state-management-patterns/pattern-comparisons.md) — Compare state management patterns by implementing the same TodoMVC app across multiple architectural approaches to evaluate their trade-offs side by side. ([source](https://cdn.jsdelivr.net/gh/brianegan/flutter_architecture_samples@main/README.md))

### Testing & Quality Assurance

- [Integration Testing](https://awesome-repositories.com/f/testing-quality-assurance/integration-testing.md) — Run integration tests across different architectures using shared tests that verify app behavior on every sample implementation. ([source](http://fluttersamples.com/))
- [Cross-Architecture Integration Tests](https://awesome-repositories.com/f/testing-quality-assurance/integration-testing/cross-architecture-integration-tests.md) — Running shared integration tests across multiple architectural implementations to verify consistent app behavior regardless of the pattern used.
- [End-to-End Testing](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/e2e-integration-testing/end-to-end-testing.md) — Runs identical end-to-end tests across all architecture implementations to verify consistent behavior.

### User Interface & Experience

- [InheritedWidget Scoping](https://awesome-repositories.com/f/user-interface-experience/state-injection-patterns/scoped-dependency-injection/inheritedwidget-scoping.md) — Shares state by injecting a model object deep into the widget hierarchy using InheritedWidget.

### Web Development

- [MobX Implementations](https://awesome-repositories.com/f/web-development/observable-state-patterns/mobx-implementations.md) — Uses observable state and automatic reactions to propagate changes reactively through the widget tree.
- [Flutter State Management Examples](https://awesome-repositories.com/f/web-development/state-management-libraries/flutter-state-management-examples.md) — Explore state management examples by running demo apps for patterns like BLoC, Redux, and MobX to see how each manages application state. ([source](http://fluttersamples.com/))
- [BLoC Implementations](https://awesome-repositories.com/f/web-development/state-management-patterns/bloc-implementations.md) — Separates business logic from UI by using streams and sinks to manage state reactively.
