Skip to content

Made with Clean architecture + TDD + GraphQL + flutter_bloc + CodeCov + GitHooks + GitHub Actions (CI/CD) and finally with ๐Ÿ’™

License

Notifications You must be signed in to change notification settings

vedartm/rick-and-morty-info

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

75 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

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

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.dart are 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.