Status:
A new Flutter app for reading ePub books, built for android and iOS.
This project uses riverpod state management with MVC+S architecture.
Domain Logic (rules around data storage, manipulation, and validation) and Application Logic (what your application actually does. How it behaves.) You also find that:
Domain Logic naturally belongs in the Model tier.
Application Logic naturally belongs in the Controller tier.
Model – Holds the state of the application and provides an API to access/filter/manipulate that data. Its concern is data encapsulation and management. It contains logic to structure, validate or compare different pieces of data that we call Domain Logic. It also notifies the view of any changes in the data.
View – Views are all the Widgets and Pages within the Flutter Application. These views may contain a “view controller” themselves, but that is still considered part of the view application tier.
ViewController - A controller that handles UI state changes due to user interaction. ViewController makes calls on other controllers, it does not touch the model directly. If the view needs to handle UI state changes due to user interaction, use a view controller to manage and hold the state.
Controller – Contains the applications logic. They are used to complete any significant action within the app. Controllers managing UI state should be separated as a ViewController
Services – Services fetch data from the outside world, and return it to the app. Controllers call on services and inject the results into the model. Services do not touch the model directly.
Source: gskinner
Email/Password
login in the Firebase console “Authentication” tabflutter pub get
in terminal or press the button when prompted by VSCodeflutter run
, or with the play button in Android Studio with the emulator selected in the dropdown menuRun the following command
flutter test
Launch an emulator, then run the following command
flutter drive --target=test_driver/app.dart
Code coverage is generated automatically when GitHub Actions are run, and uploaded to codecov.io
If you run into this error
Umbrella header for module 'GoogleUtilities' does not include header 'GULSwizzler.h'
This error is caused by improperly removing the GoogleServices-info.plist file. Readd the file with XCode and then remove the file again through XCode instead of using the file manager.
This project is a starting point for a Flutter application.
A few resources to get you started if this is your first Flutter project:
For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.