vedartm/rick-and-morty-info
使用 Clean 架构 + TDD + GraphQL + flutter_bloc + CodeCov + GitHooks + GitHub Actions (CI/CD),最终以 💙 完成
- Stars
- 524
- Forks
- 91
- 最近推送(UTC)
- 2021年9月23日
- 项目状态
- 未归档
技术话题
使用的依赖
依赖清单 24 项
- flutter
{"sdk":"flutter"} - pagination_view
^2.0.0 - ant_icons
^2.0.0-nullsafety.0 - cached_network_image
^3.0.0 - graphql_flutter
^5.0.0 - internet_connection_checker
^0.0.1+1 - json_serializable
^4.1.3 - freezed_annotation
^0.14.2 - functional_enum_annotation
^1.2.1 - get_it
^7.1.3 - injectable
^1.0.4 - flutter_bloc
^7.0.1 - hive
^2.0.4 - dartz
^0.10.0-nullsafety.2 - rxdart
^0.26.0 - path_provider
^2.0.2 - flutter_test开发依赖
{"sdk":"flutter"} - freezed开发依赖
^0.14.2 - functional_enum开发依赖
^1.1.3 - injectable_generator开发依赖
^1.4.1 - build_runner开发依赖
^2.0.4 - effective_dart开发依赖
^1.3.1 - bloc_test开发依赖
^8.0.2 - mocktail开发依赖
^0.1.4
所在榜单
原始 README
以下为英文项目原文快照,最新内容请访问 GitHub。
展开 / 收起项目 README
Rick and Morty Info
Actions Status Actions Status codecov Flutter version style: effective dart License: MIT
A simple app to demonstrate Clean Architecture with GraphQL and flutter_bloc
Motivation
In Martin Fowler's words,
“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” (Refactoring: Improving the Design of Existing Code, 1999, p. 22)
With this idea in mind, I wanted to demonstrate how we can make a simple app in production grade (and I hope I made my case).
"Production level" implementations
- CI/CD with GitHub Actions
- Githooks to ensure clean commit and push
- Pre commit formats with
flutter format - Pre push checks the code with
flutter analyzeandflutter test
- Pre commit formats with
- Linting style with Effective Dart
- Test coverage with Codecov
- Dependency Injection with injectable and get_it
- Testing with mockito and bloc_test
Screenshots
Screen 1 Screen 2 Screen 3
Installation
- Check if you are in the beta channel of flutter SDK and the version v2.0.1 or higher. Instruction to change flutter channel.
- Clone the repo
git clone https://github.com/excogitatr/rick-and-morty-info.git - And then we can use the normal build and run procedure
flutter pub get flutter run - Some files like
*.freezed.dart,*.g.dart,*.iconfig.dartare auto generated. If there is any issue from these files just run this command to regenerate them.flutter pub run build_runner watch --delete-conflicting-outputs
Thanks to
- unclebob (For the infamous Clean Architecture)
- resocoder (Followed his style in Clean architecture)
- felangel (For his amazing state management solution)
- Axel Fuhrmann (For the Rick and Morty GraphQL API)
- Authors of all the packages I have used, who made our lives easier.
Getting Started
For help getting started with Flutter, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.