These instructions will give you heads up on how to get started, architecture flow, implementations using in this project.
I decide to adopt Clean Architecture
for our development because it allow decoupling different units of your code in an organized manner. That way the code gets easier to understand, modify and test. Read more about this here
-
MVVM architectural approaches for the Presentation layer
-
Network operations with Dio
-
json_serializable for JSON serialization and deserialization .
-
get_it For simple Service Locator
-
hooks_riverpod A state-management library that:
- catches programming errors at compile time rather than at runtime
- removes nesting for listening/combining objects
- ensures that the code is testable
We use docs blocks to write description documentation and comment for classess and methods. This should clearly describe it functionality and logic executions.
- Clone this project from Github to your machine
- Import project to Android Studio preferring from Android Studio Bumblebee | 2021.1.1 Patch 1 and above
- To install the app on your device, you can get the apk from this directory: build/app/outputs/flutter-apk/app-release.apk
- Writing Unit Tests
- Branch out from the master branch to your feature branch
- Create Model classes for the feature if needed.
- Add the use case to the neccessary repository interface.
- Create Usecases for the feature in the
interactors
- If the Usecase needs any data to carry out any operation provide a nested param class.
- Add remote and cache operations to the
Cache
andRemote
interface. - Add the cache or remote interface implementation to its correct data source classes.
- Add the implmentation of the domain interface repository in the data
- Update use case implementaion in the ViewModel classes
- Add your UI Implementation as specified in the design
- Use viewmodel to interact with the other layers of the application.