What is FlutterBoilerplate
FlutterBoilerplate is a production grade, scalable, highly modular boilerplate/starting template for Flutter to help you build quality apps. It is designed to be a complete starting point for Flutter projects. It is a collection of best practices, tools, and utilities that help you build Flutter apps faster and more efficiently.
Features
- Authentication: Google & Apple Sign-In (Native + OAuth), provider linking/unlinking, session management
- Profile Management: Update display name, link & unlink account, change profile avatar
- Subscriptions: RevenueCat integration, paywall UI
- Ads: Banner, interstitial, rewarded, rewarded interstitial ads
- Local Notifications: Immediate & scheduled notifications, permission handling
- File Uploads: Progress tracking, cancellable uploads, folder organization
- Settings: Theme selection, color themes, language, haptic feedback
- Onboarding: Customizable first-time user experience
- Analytics: PostHog & Firebase Analytics integration, navigation observer
- Crash Reporting: Sentry & Firebase Crashlytics integration, source map uploads
- Localization: Multi-language support (EN, BN, DE, FR, AR, ES included as examples)
- Notes (CRUD Example): Create, read, update, delete with real-time sync
- Logger Service: Structured logging
- Timezone Service: Timezone-aware scheduling
- URL Launcher: Open URLs, emails, phone numbers
- File & Image Picker: Pick files and images from device
- Haptic Feedback: Configurable haptic feedback
- Auto Update Checker: Automatic app version checking with update prompts
- Force Update: Mandatory update enforcement for critical releases
- OTA Code Push: Over-the-air updates via Shorebird
- CI/CD: GitHub Actions workflows along with blacksmith for fast testing, building, and deployment
- Strict Lint Rules: Opinionated lint rules for consistent code quality
- Accessibility: Screen reader support, semantic labels, and a11y best practices
- AI Editor Support: Rules, agents, and skills for AI-assisted development
- Modular: The project is divided into multiple modules to keep the codebase clean and maintainable
- Scalable: The project is designed to scale with your app. It is easy to add new features and modules