Complete Flutter Course Bundle - Documentation
Note: This site is a work-in-progress. More pages will be added as I make progress with the course.
This is the documentation website for the Flutter eCommerce app that we will build as part of my Complete Flutter Course Bundle.
This section contains answers to common issues regarding:
- Getting the starter project to run
- Android emulator and gradle issues
- Cocoapods and running on iOS/macOS
Head over to sidebar to read all the FAQs.
I often publish in-depth articles that are a great complement to the course lessons.
You can find links to them in the sidebar.
A Flutter web build of the completed app is available at this link:
This is intended as a reference eCommerce app for viewing and purchasing products, and includes the following features:
- Products List
- Product Page
- Product Reviews
- Shopping Cart
- Checkout using Stripe
- Orders List
- Sign in & sign out flows
- Admin pages (manage products and orders)
The demo includes a Flutter app that runs on iOS, Android and web.
The primary packages in use by the reference app are:
freezedfor state management
go_routerfor navigation and routing
sembast_webfor local data persistence
flutter_layout_gridfor layouts based on CSS-grid
cached_network_imageto show images from the Internet and keep them in the cache directory
The client app uses the controller-service-repository pattern and defines four layers:
- Data layer using repositories to access to the outside world (Firebase) and expose data classes to the rest of the app via Futures and Streams
- Domain layer containing all the models/entities needed by the app, along with the business logic to manipulate them
- Application layer using service classes to mediate between the repositories and the levels below
- Presentation layer containing the widgets along with the controllers that manipulate their state and call APIs from the layers above