flutter_starter_brick
A brick for bootstrapping a new Flutter project with useful features.
Includes multiple environments, API support, and Bloc for state management.
Features
- [✓] Multiple Environments Configuration: Easily set up development, staging, and production environments.
- [✓] API Integration: Seamlessly integrate RESTful APIs into your project.
- [✓] Bloc State Management: Manage your application's state efficiently using the Bloc pattern.
- [✓] Internet Connectivity Handling: Automatically detect and handle changes in internet connectivity.
- [✓] Customizable UI Components: Utilize pre-built widgets like buttons, forms, and more, ready for customization.
- [✓] Theming and Styling: Implement consistent theming across your application with predefined color schemes.
- [✓] Internationalization (i18n): Support multiple languages effortlessly.
- [✓] Form Validation: Built-in validation utilities to ensure data integrity in forms.
- [✓] Script to create APK for all platforms.
- [✓] Script to upload IPA to TestFlight.
- [✗] Github actions (Coming Soon): Release to github releases, google play internal track, and testflight.
Project Structure
Here is the project structure of the starter brick using mermaid. You can view it at https://mermaid.live/.
graph TD
lib --> app
lib --> common
lib --> error_screen
lib --> home_screen
lib --> splash_screen
lib --> main_files[main files]
app --> app_src[src]
app_src --> |files| app_files[global_scaffold_key.dart<br/>root_app_widget.dart<br/>root_blocs_provider.dart]
common --> basic_types
common --> blocs
common --> dependency_injection
common --> environments
common --> l10n
common --> logging
common --> networking
common --> router
common --> ui
common --> validators
blocs --> app_meta_data_cubit
blocs --> bloc_utils
networking --> dio_client[dio_http_client_adapter]
networking --> http_client[http_client_adapter]
ui --> animations
ui --> core_widgets
ui --> images
ui --> theme
theme --> theme_src[src]
theme_src --> theme_cubit
theme_src --> theme_data
main_files --> |files| main_list[main_common.dart<br/>main_development.dart<br/>main_production.dart<br/>main_staging.dart]
classDef default fill:#f9f,stroke:#333,stroke-width:2px;
classDef folder fill:#bbf,stroke:#333,stroke-width:2px;
Support Me
It is really hard and time-consuming to maintain and update open-source projects, so if you like my work and would like to support me, consider buying me a coffee, it will be a GREAT MOTIVATION for me to keep doing this work.