Flutter & Firebase Masterclass - Documentation
This is the documentation website for the Flutter eCommerce app that we will build as part of my Flutter & Firebase Masterclass.
It contains FAQs and additional resources you may find useful.
Articles & Reference Guides
I often publish in-depth articles that are a great complement to the course lessons.
Here's a complete list:
FAQ
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.
Flutter Web Demo
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)
Flutter Client
The demo includes a Flutter app that runs on iOS, Android and web.
The primary packages in use by the reference app are:
flutter_riverpod
andriverpod_generator
for state managementgo_router
for navigation and routingflutter_stripe
,flutter_stripe_web
andpay
for paymentssembast
andsembast_web
for local data persistencefirebase_auth
cloud_firestore
cloud_functions
flutter_staggered_grid_view
for enhanced grid layoutscached_network_image
to show images from the Internet and keep them in the cache directorymocktail
for testing
Architecture
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
Learn more in the articles & reference guides.