๐ฅ This template is a highly simplified version of our pro starter kit.
- firebase firestore
- Riverpod for state management
- Simplified architecture
- Basic github CI
Wanna use standard backend?
The pro version is for you.
You must have flutter properly installed on your computer. If not, please follow the official documentation.
Then launch VSCode and run the 'Development' configuration.
(Left pane > Run and Debug > Development > Start Debugging)
You must first configure your iOS environment.
Please follow the guide here.
Then launch VSCode and run the 'Development' configuration.
(Left pane > Run and Debug > Development > Start Debugging)
As this project is setup for demo you must follow the installation guide to setup your own backend and firebase project.
Features | Included | Pro version |
---|---|---|
๐งช Multiple environments (dev,staging,prod...) | โ | โ |
๐ฆ Modular architecture example | โ | โ |
๐ฒ Repository pattern example | โ | โ |
โณ App initializer | โ | โ |
๐จโ๐ป Authentication state | โ | โ |
๐ Guards example | โ | โ |
๐ญ Email signup page | โ | โ |
๐ฑ Easy bottom bar setup (+ adaptive with OS) | โ | โ |
๐ฉ Basic Unit tests examples | โ | โ |
๐ฅ๏ธ Basic CI setup | โ | โ |
๐จ Enhanced theme manager | โ | โ |
๐ CLI commands | โ | โ |
๐ Switch between firebase / standard backend (CLI command) | โ | โ |
๐ Password recovery page | โ | โ |
๐ฅ๏ธ Advanced CI setup | โ | โ |
๐ฉ Advanced Unit tests examples | โ | โ |
๐ผ Regular dependencies versions check | โ | โ |
๐ Handle notifications | โ | โ |
๐ฐ In app subscription (optionnal) | โ | โ |
๐คฉ Google Ad mobs ready (optionnal) | โ | โ |
๐ Social authentications (CLI command) | โ | โ |
๐ Storage api + download / upload example | โ | โ |
๐ Complete documentation | โ | โ |
... and many more |
Need more features? ๐ฅ Check the pro version
Setup guides
- How to install
- Adding social authentications (not available in the free version)
- Subscription module (not available in the free version)
Development guides
- App architecture (not available in the free version)
- Used Plugins and packages
- Writing a module
- Codes practices (not available in the free version)
- Routes and navigation
- Api and Http requests (not available in the free version)
- Setup notifications (not available in the free version)
- Localisation (not available in the free version)
- Testing: how to write effective tests (not available in the free version)
- Handling errors and monitoring (not available in the free version)
Deployment guides
- Customize splashscreen and App icon
- How to create a flavor on iOS / Android
- Prepare for deployment
- Deploy your app on the Apple Store
- Deploy your app on the Google Play Store
- Setup Gitlab CI (not available in the free version)
- Setup Github CI (not available in the free version)
- Setup with codemagic CI (Easier and faster than Gitlab / Github) (not available in the free version)
Going further
- Show ads with AdMob (not available in the free version)
- Deep links (not available in the free version)
As we use code generation in the whole project. You must run this command to regenerate all the generated code from @freezed or other like json. For more info refer to the freezed package documentation.
dart pub run build_runner build --delete-conflicting-outputs
As an app grow and can include more and more people, we prefer to make modular architecture as it prevent code conflicts.
Depending on the complexity of your project you can add another layer between object returned by firestore as Entities. So it will look like this.
Firestore collection > entities > repository > model
TODO
- core // shared code
- modules // all modules codes environments // environments configurations main.dart // main app entry
![](./docs/img/using.png)
![](https://raw.githubusercontent.com/Apparence-io/camera_awesome/master/docs/img/apparence.png)