A simple MVP quiz app to test the capabilities of Cardoteka.
You can launch the application simply by following the link and enjoy the web version — Quiz Prize Web 🎉🎉🎉! Also visit the releases tab and check the available platforms.
In any other cases, clone this repository locally and run it with the flutter run
command.
Made with Trivia API and Dart 3.0. Available under Apache-2.0 license.
- ✅ realization of unidirectional data flow between layers
- ✅ reactively update state of notifiers using
Watcher
from thecardoteka
package - ✅ implementation of presenters and notifiers using the
riverpod
package - ✅ convenient "ui->domain->data" style folder architecture
- ✅ communication between layers using sealed states
- ✅ analyze different approaches to interacting with local storage: reactive interaction, standard
get
|set
, synchronous initialization - ✅ creating adaptive interface for different platforms (web|android|windows)
- ✅ verifying that the cardoteka package is ready for public release and for use in production
- Flutter – framework for creating applications. Love;
- Dart – a language that is a pleasure to write code in (thanks!)
- Riverpod – application state manager, dependency management (including injection). Personal thanks to Remi Rousselet;
- Cardoteka – typed wrapper over SharedPreferences for convenient storage of local data (own research);
- freezed – creation of immutable objects and their simple change;
- json_serializable – working with json;
- weather_animation – lovely background animation;
- confetti – without him there would be no holiday!;
- lint – set of strict rules for development;
and others in pubspec.yaml...❤
- structure our project — layer-first — 3 layers (ui, domain, data)
- unidirectional reactive data flow
- each layer has its own models as needed
- updating states based on immutable data
- using sealed classes as exhaustive states
- clear separation of layers and responsibilities
Note that not all elements are involved. The emphasis is on interaction:
GamePage
->GamePagePresentor
->QuizGameNotifier
->Notifiers
->Repo&Cardoteka
- Приложение викторины: внедрение Cardoteka и основные паттерны проектирования с Riverpod / Хабр
- Я сделал Cardoteka и вот как её использовать [кто любит черпать] / Хабр
You can contact me or check out my activities on the following platforms: