brianegan/flutter_architecture_samples — 8.9k★ trên GitHub (Dart). TodoMVC for Flutter
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
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, as a roughly
apples-to-apples comparison of different approaches, 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
Vanilla Lifting State Up Example (Web Demo) - Uses the tools Flutter provides out of the box to manage app state.
InheritedWidget Example (Web Demo) - Uses an InheritedWidget to pass app state down the widget hierarchy.
Change Notifier + Provider Example (Web Demo) - Uses the ChangeNotifier class from Flutter with provider package now recommended by the Flutter team.
Freezed + Provider + Value Notifier (Web Demo) - Uses the ValueNotifier class from Flutter with provider package.
BLoC Example (Web Demo) - An implementation of the original BLoC pattern described by Paolo Soares at DartConf 2018, which uses Sinks for Inputs and Streams for Outputs
Bloc Library Example (Web Demo) - Uses the bloc and flutter_bloc libraries to manage app state and update Widgets.
MobX Example (Web Demo) - Uses the MobX library to manage app state and update widgets using Observables, Actions and Reactions.
Redux Example (Web Demo) - Uses the Redux library to manage app state and update Widgets
"Simple" BLoC Example (Web Demo) - Similar to the BLoC pattern, but uses Functions for Inputs and Streams for Outputs. Results in far less code compared to original BLoC pattern if code sharing with AngularDart apps isn't an important use case for your app.
Signals Example (Web Demo) - Uses the Signals package by Rody Davis.
MVI Example (Web Demo) - Uses the concepts from Cycle.JS and applies them to Flutter.
scoped_model Example (Web Demo) - Uses the scoped_model library to hold app state and notify Widgets of Updates
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 - Defines the core abstract
classes for loading and saving data so that storage can be implemented in
various ways, such as file storage or firebase for mobile projects, or
window.localStorage for web projects.
todos_repository_local_storage - Implements
the todos repository using the file system, window.localStorage, and
SharedPreferences as the data source.
Running the samples
cd <sample_directory>
flutter run
Why a todo app?
The app in this project aims to be as simple as possible while still showcasing
different 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.
Contributing
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
:)
License
All code in this repo is MIT licensed.
Attribution
All of these ideas and even some of the language are directly influenced by two
projects:
TodoMVC - A Todo App implemented in various JS frameworks
Android Architecture Blueprints - A similar concept, but for Android! The UI and app spec was highly inspired by their example.
Contributors
Brian Egan
Maurice McCabe
David Marne
Pascal Welsch
Larry King
Frank Harper
Pavel Shilyagov
Leo Cavalcante
Greg Perry
Felix Angelov
Francesco Mineo
Pavan Podila
Kushagra Saxena
Shakib Hossain
Mellati Fatah
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! :)
brianegan/flutter_architecture_samples có bao nhiêu sao?
brianegan/flutter_architecture_samples có 8.9k sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/brianegan/flutter_architecture_samples. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
brianegan/flutter_architecture_samples có phải mã nguồn mở không?
Có — brianegan/flutter_architecture_samples phát hành theo license BSD-3-Clause, nghĩa là mã nguồn mở để đọc, fork và (tùy license) tái sử dụng. Mã: github.com/brianegan/flutter_architecture_samples.
brianegan/flutter_architecture_samples có trang demo không?
Dự án có trang chủ ở http://fluttersamples.com/. Tab "Readme" ở trang này thường có ảnh chụp và hướng dẫn bắt đầu nhanh.
brianegan/flutter_architecture_samples là gì?
brianegan/flutter_architecture_samples (brianegan/flutter_architecture_samples) là dự án Dart trên GitHub. Theo mô tả gốc: TodoMVC for Flutter
brianegan/flutter_architecture_samples so với các dự án Mobile khác thế nào?
brianegan/flutter_architecture_samples được TopGit xếp vào nhóm Mobile, với 8.9k sao GitHub và viết bằng Dart. Xem trang chủ đề Mobile trên TopGit để so sánh với các dự án tương tự theo số sao và mức độ hoạt động.
Cùng nhóm Mobile còn repo nào?
brianegan/flutter_architecture_samples thuộc nhóm Mobile trên TopGit, cùng 3 topic GitHub. Trang Trending và Topics liệt kê các repo cùng số sao và cùng ngôn ngữ để so sánh.
Đọc thêm về brianegan/flutter_architecture_samples ở đâu?
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/brianegan/flutter_architecture_samples là nguồn chính thức.
Đọc đầy đủ README ở tab phía trên.
Chưa chắc flutter_architecture_samples có hợp với bạn?
Để ChatGPT, Claude hoặc Perplexity tìm hiểu giúp — bấm bên dưới và xem AI nói gì về flutter_architecture_samples.