Skip to content
TodoMVC for Flutter
Dart Ruby HTML Shell Swift Kotlin Other
Branch: master
Clone or download
mmcc007 Fix build on cirrus (#157)
* Upgraded from anka image mojave-xcode-10.3-flutter to mojave-xcode-11.2.1-flutter
with corresponding upgrade of iOS simulator from iOS-12-2 to iOS-13-2
Latest commit cac5aff Nov 12, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets Make the logos more distinctive Nov 30, 2017
bloc_flutter Fix build (#156) Nov 10, 2019
bloc_library Fix build (#156) Nov 10, 2019
blocs moved todos_repository to todos_repository_core Feb 18, 2019
built_redux Fix build (#156) Nov 10, 2019
firebase_flutter_repository Fix build (#156) Nov 10, 2019
firebase_rtdb_flutter_repository moved todos_repository to todos_repository_core Feb 18, 2019
firestore_redux Fix build (#156) Nov 10, 2019
frideos_library Fix build (#156) Nov 10, 2019
inherited_widget Fix build (#156) Nov 10, 2019
integration_tests timeoutMultiplier has been removed. (#121) Mar 7, 2019
ios Fix build (#156) Nov 10, 2019
mvc Fix build (#156) Nov 10, 2019
mvi_base moved todos_repository to todos_repository_core Feb 18, 2019
mvi_flutter Fix build (#156) Nov 10, 2019
mvu Fix build (#156) Nov 10, 2019
redurx Fix build (#156) Nov 10, 2019
redux Fix build (#156) Nov 10, 2019
scoped_model Fix build (#156) Nov 10, 2019
scripts Update to Bloc Library v2.0.0 (#155) Nov 9, 2019
simple_bloc_flutter Fix build (#156) Nov 10, 2019
simple_blocs moved todos_repository to todos_repository_core Feb 18, 2019
todos_app_core updated the README in todos_app_core to reflect the name change Feb 1, 2019
todos_repository_core renamed todos_repository_flutter to todos_repository_simple Feb 18, 2019
todos_repository_simple Add bloc_library example Mar 1, 2019
vanilla Fix build (#156) Nov 10, 2019
.cirrus.yml Fix build on cirrus (#157) Nov 11, 2019
.flutter-plugins Fix build (#156) Nov 10, 2019
.gitignore Workaround for built_redux build problem (#68) Sep 25, 2018
.travis.yml Fix build (#156) Nov 10, 2019 Initial version with a rough vanilla implementation Jul 29, 2017
CNAME Create CNAME Dec 2, 2017 Change links over to relative links that work with Github Nov 25, 2017
LICENSE Update LICENSE and README Mar 2, 2018
Makefile Fix deferred localizations. Fixes #29 Mar 13, 2018 Fixed broken link in README per #128 [skip-ci] Apr 8, 2019
analysis_options.yaml Update all projects to support latest beta (0.8.2) Sep 20, 2018 Fixing the link to vanilla Apr 8, 2019 Getting some of the basics in place Oct 12, 2017
index.html Update Bloc Library Sample Apr 12, 2019
pubspec.yaml Update all projects to support latest beta (0.6.0) Aug 30, 2018


Build Status Build Status codecov

List of Todos Screen

TodoMVC for Flutter!

Flutter provides a lot of flexibility in deciding how to organize and architect your apps. While this freedom is very valuable, it can also lead to apps with large classes, inconsistent naming schemes, as well as mismatching or missing architectures. These types of issues can make testing, maintaining and extending your apps difficult.

The Flutter Architecture Samples project demonstrates strategies to help solve or avoid these common problems. This project implements the same app using different architectural concepts and tools.

You can use the samples in this project as a learning reference, or as a starting point for creating your own apps. The focus of this project is on demonstrating how to structure your code, design your architecture, and the eventual impact of adopting these patterns on testing and maintaining your app. You can use the techniques demonstrated here in many different ways to build apps. Your own particular priorities will impact how you implement the concepts in these projects, so you should not consider these samples to be canonical examples. To ensure the focus is kept on the aims described above, the app uses a simple UI.

Current Samples

Examples have been updated to Dart 2.

Supporting Code

  • integration_tests - Demonstrates how to write selenium-style integration (aka end to end) tests using the Page Object Model. This test suite is run against all samples.
  • todos_repository_core - Demonstrates the repository pattern and testing strategies for working with the filesystem. Used to provide local storage and mock web storage to samples.

Why a todo app?

The app in this project aims to be simple enough that you can understand it quickly, but complex enough to showcase difficult design decisions and testing scenarios. For more information, see the app's specification.

Be excellent to each other

This Repo is meant as a discussion platform for various architectures. Let us debate these ideas vigorously, but let us be excellent to each other in the process!

While healthy debate and contributions are very welcome, trolls are not. Read the code of conduct for detailed information.


Feel free to join in the discussion, file issues, and we'd love to have more samples added! Please read the CONTRIBUTING file for guidance :)


All code in this repo is MIT licensed.


All of these ideas and even some of the language are directly influenced by two projects:


I'd like to thank all of the folks who have helped write new samples, improve the current implementations, and added documentation! You're amazing! :)

You can’t perform that action at this time.