Programming Ebook Collections Application (Bloc Pattern)
Are You looking for production level or large project or bloc pattern sample code? Now, you can learn this project source code. Hey friend Dont worry to learn flutter language. This language is easy to learn any developer background. You need to know one quote. This is (Every thing is widget). Sure , this is best practice source code for flutter beginner. (Project structure is simply and easy to maintain) I suggest for you . You need to learn Bloc pattern. Sorry My english is not good.Let me say this project is not complete . I always add new code , new feature by daily to complete project.
* lib
* models ( for collection of data)
* constraints ( for common data values)
* services ( for network or local database repositories)
* widgets ( for common widget eg. validators, customwidget..)
* utils (for other logic functions)
* screens ( Each Page)
* home > blocs, local_widget, home_screen.dart (like that)
* assets ( Resource folder for image, svg, logo )
* resources ( Resource file for language eg. eng.json, my.json, ch.json)
* app.dart ( root widget is MaterialApp or CapitinoApp , theme, locate,..)
* main.dart ( App Launch main widget)
* routes.dart ( Navigtion Page management System)
** Basic Logic
If you know android knowledge , we define Activity is Page and Fragment is Screen.
eg. Our app have two page. Login Page and Home Page. So. Navigator route system pass form LoginPage to HomePage.
HomePage have four Screen .(like fragment HomeFragment,NotificationFragment...and so on)
## Note that this rule only for my project structure. I dont know other people how to define for it.
------
** Bloc Pattern (Bussicness Logic Componment) Reference Link https://blog.usejournal.com/flutter-http-requests-with-dio-rxdart-and-bloc-da325ca5fe33
*** Features
- Themes change (Dark Mode, Light Mode) <=> ( Using Provider )
- Multiple Languge Support (Myanmar,English) <=> ( Using Localization with json file)
- Data Source from (Post man mock, JsonServer, Github page) api <=> ( Using Flutter Bloc, rxdrt, dio )
- Shipping Address and Payment Card list(db) <=> ( Using Sqflite - local database)
- Eidt Profile (choose image, and then crop with compress imagesize) <=> (Using imagepicker , image cropper, image compresser)
- AboutDialog (with phone call, visit website) <=> ( Using url launcher)