gitmyhub

flutter_architecture_samples

Dart ★ 8.9k updated 7mo ago

TodoMVC for Flutter

A Flutter learning reference that shows the same simple to-do app built over a dozen times, each using a different approach to organizing code, from basic Flutter patterns to Redux, BLoC, MobX, and more, so you can compare architectures side by side.

DartFlutterReduxBLoCMobXsetup: moderatecomplexity 2/5

This repository is a learning reference for developers building apps with Flutter, which is Google's framework for creating mobile and web applications from a single codebase. The central idea is that Flutter gives developers many different ways to organize and structure their code, and that freedom can be confusing. This project shows the same simple app built over a dozen different times, each time using a different approach to organizing state and logic.

The app being built in every example is a to-do list, intentionally kept simple so the focus stays on structure rather than features. The same screens, the same behavior, the same data storage code, but twelve different ways of wiring it all together. The approaches range from the most basic tools Flutter provides out of the box, to community packages like Redux, BLoC, MobX, and Signals. Each sample has a live web demo linked in the README so you can try it in a browser without installing anything.

The project also includes shared supporting code used by all the samples: a set of integration tests that run against every implementation to confirm they all behave the same way, and a data layer abstraction for loading and saving to-do items that can be backed by local storage, file storage, or a web browser's built-in storage.

The goal is to let developers compare approaches side by side. Rather than reading articles arguing for one pattern, you can look at the actual code differences between, say, the Redux version and the Provider version, and decide what fits your team or project. The README is clear that these are not meant to be canonical blueprints to copy directly, because priorities differ across projects.

The project was inspired by TodoMVC, a similar comparison site for JavaScript frameworks, and by Android Architecture Blueprints from Google. All code in the repository is MIT licensed.

Where it fits