Overview
App Courier uses a simple environment configuration system to manage different build modes and settings. This guide covers how to configure your environment for development and production.Environment Class
The main environment configuration is located inlib/core/config/environment.dart:
Configuration Options
Controls whether the app uses mock data instead of real API calls. Useful for testing and development.
Build Modes
Flutter supports three build modes that affect app performance and debugging:Debug Mode
Optimized for development with hot reload enabled:- Hot reload and hot restart enabled
- Assertions enabled
- Service extensions enabled
- Slower runtime performance
- Larger app size
Profile Mode
For performance testing and profiling:- Some debugging ability maintained
- Performance tracking enabled
- Service extensions enabled
- Optimized performance
- Medium app size
Release Mode
Optimized for production deployment:- Maximum optimization
- No debugging capabilities
- Smallest app size
- Best runtime performance
- Assertions disabled
Environment Variables
Recommended Environment Setup
For better configuration management, you can implement environment-specific settings:Configuration Best Practices
Version Control
Never commit sensitive configuration values to version control. Use environment variables or secure vaults.
Environment Separation
Maintain separate configurations for development, staging, and production environments.
Mock Data
Use mock data during development to avoid unnecessary API calls and speed up testing.
Build Variants
Consider using Flutter flavors for managing multiple app variants with different configurations.
Flutter Flavors (Advanced)
For complex apps requiring multiple variants, implement Flutter flavors:Android Configuration
Add toandroid/app/build.gradle:
iOS Configuration
Create schemes in Xcode for each flavor (dev, prod).Building with Flavors
Next Steps
API Setup
Configure backend API connection and authentication
Permissions
Set up required Android and iOS permissions