The main objective behind the project is to learn Flutter by building a fully functional Android app from the very begging to its release to the Play Store. Thus, covering the whole product life-cycle.
Flutter using BLoC pattern, with null-safety. Only aiming Android platform.
I decided to go BaaS with Firebase
to build the whole stack using Google products.
It will be used for:
- Storing the information.
- Analytics/Crashlytics
Tensorflow Lite model. Only two files and a package are enough to implement a client-side classifier that will -impressively- work offline, which is good news for the application we are building.
labels.txt
contains the list of labels of our classifier.model_unquant.tflite
is the classifier itself.tflite
is the package used to load and handle the classifications.
The whole pipeline will be build using Github Actions, I aim to perform:
- Unit Test
- Widget Test
- E2E Test
- Deployments
Some of the tools used are Codecov, mockito and bloc_test.
As I have said, the application will be fully functional in offline mode. This is mainly achieved in two ways:
- Moving all the classifier logic to the client-side.
- Creating a backup file in the phone storage to use that information when we can not retrieve it from
Firebase
.