Flutter Votlin App
Flutter clone of Kotlin Multiplatform Votlin App -> https://github.com/sergiocasero/votlin-app
Kotlin multiplatform is great, but Flutter can be a fantastic alternative!
This is a small petshop with a master/detail structure. It lists the talks from Extremadura Digital Day event.
For help getting started with Flutter, view the online documentation.
If you want to find how amazing is Flutter, take a look at this repo -> https://github.com/Solido/awesome-flutter
There are some architectures and patterns that are followed by the great community of Flutter:
- Bloc pattern
- Scope Model
- Inherited Widget
- Model View Controller
- Model View Intent
A great resource related to flutter architectures -> https://github.com/brianegan/flutter_architecture_samples
Flutter community, for some reason, by the moment, is ignoring Clean Architecture… so, why not give a oportunity to clean architecture in flutter?
This project try to follow the clean architecture structure. Some related resources:
To experiment with project architecture, we are going to implement different approaches in different branches
|architecture/multiple_packages_mvp||Multiple packages, model view presenter|
|architecture/multiple_packages_scoped_model||Multiple packages, scoped model|
|architecture/multiple_packages_stream_builder||Multiple packages, stream builder|
- Single package architecture
- States Rebuilder package
Absolutely not. This is only a petshop project for experiment with Clean Architecture and with Flutter framework. We don’t know what is the best architecture for Flutter. The only way to find it is experimenting!
To experiment with animations, we are going to create different branches
|animations/animated_builder||Experiment with animated builder widget|
- Use your favorite IDE. Flutter supports different IDE
- If you don’t have Flutter installed, follow the official docs: https://flutter.io/docs/get-started/install
- If your IDE shows some errors, don’t forget to execute command
flutter packages getin domain and data modules
We have created some kind of flavors in flutter app, inspired by this post
Actually, we have added configuration for each flavor in data layer
Probably we can find better ways, but this is only the beginning.
To run the android app:
flutter run lib/<main_file>. For instance, to run mock flavor, execute
flutter run lib/main-mock.dart.
- If you execute
flutter run, mock flavor is executed
|MOCK||Offline version, mocked with a json file||main-mock.dart|
|LOCALHOST_EMULATOR||Online version, against localhost, running in the emulator. Json server required||main-localhost_emulator.dart|
Mock flavor does not backend, because we get the information from hardcoded json.
No backend required, we get the information from hardcoded json
- Thanks to @sergioch23 and @Dany4794, take a look to Votlin app -> https://github.com/sergiocasero/votlin-app
- Thanks to @GDGBarcelona and its organizers, Flutter meetups in Barcelona are really helpful
- Thanks to great people from Flutter Community:
Feel free to open issues or make a pull request. All contributions are welcome!