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 --> dependency_injection[dependency_injection_impl]
lib --> features
lib --> infrastructure
lib --> resources
lib --> router
lib --> main_files[main files]
features --> common
features --> error_screen
features --> home
features --> splash_screen
common --> variables
common --> widgets
home --> home_screen
infrastructure --> basic_types
infrastructure --> blocs
infrastructure --> dependency_injection
infrastructure --> environments
infrastructure --> l10n
infrastructure --> logging
infrastructure --> networking
infrastructure --> ui
infrastructure --> 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 --> theme
ui --> widgets
theme --> theme_src[src]
theme_src --> theme_cubit
theme_src --> theme_data
resources --> src
src --> arb
src --> fonts.dart
src --> images.dart
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.