A comprehensive Flutter development environment with DevContainer templates and project creation tools.
FlutterBench provides two ways to create Flutter projects with DevContainer support:
- 🤖 Automated Setup - Use 
new-flutter-project.shfor quick, standardized project creation - 🔧 Manual Setup - Copy templates manually for maximum customization control
 
flutterBench/
├── scripts/
│   ├── new-flutter-project.sh        # Automated project creation
│   ├── new-dartwing-project.sh       # DartWing project creation  
│   ├── update-flutter-project.sh     # Update existing projects
│   ├── launch-devbench.sh           # Launch development container
│   └── start-monster.sh             # Container startup script
├── templates/
│   └── flutter-devcontainer-template/  # DevContainer template
│       ├── .devcontainer/            # VS Code DevContainer config
│       ├── .vscode/                  # VS Code settings & tasks
│       ├── scripts/
│       │   ├── manual-setup-project.sh  # Manual setup validation
│       │   └── README.md             # Script usage guide
│       ├── docker-compose.yml        # Container orchestration
│       ├── Dockerfile               # Container definition
│       ├── .env.example            # Environment template
│       └── README.md               # Template documentation
└── docs/                           # Additional documentation
Best for: New projects, standardized setup, quick start
# Navigate to flutterBench scripts
cd /path/to/workBenches/devBenches/flutterBench/scripts
# Create new Flutter project with DevContainer
./new-flutter-project.sh my-flutter-app
# Or specify custom target directory  
./new-flutter-project.sh my-flutter-app ~/projects/special-projectsWhat it does automatically:
- ✅ Creates Flutter project using 
flutter create - ✅ Copies and configures DevContainer template
 - ✅ Sets up environment variables (
.env) - ✅ Configures user UID/GID for proper permissions
 - ✅ Sets up infrastructure paths
 - ✅ Includes specKit for spec-driven development
 - ✅ Ready to open in VS Code
 
Best for: Existing projects, template customization, learning/understanding
# 1. Create or navigate to your Flutter project
flutter create my-flutter-app  # or use existing project
cd my-flutter-app
# 2. Copy template files
TEMPLATE_PATH="/path/to/workBenches/devBenches/flutterBench/templates/flutter-devcontainer-template"
cp -r "$TEMPLATE_PATH/.devcontainer" .
cp -r "$TEMPLATE_PATH/.vscode" .
cp -r "$TEMPLATE_PATH/scripts" .
cp "$TEMPLATE_PATH/docker-compose.yml" .
cp "$TEMPLATE_PATH/Dockerfile" .
cp "$TEMPLATE_PATH/.env.example" .
# 3. Set up environment configuration
cp .env.example .env
# Edit .env file with your project settings...
# 4. Validate setup (IMPORTANT!)
./scripts/manual-setup-project.shWhen to use manual setup:
- ✅ Adding DevContainer to existing Flutter project
 - ✅ Need to customize template before applying
 - ✅ Working with non-standard directory structure
 - ✅ Want to understand how the template works
 - ✅ Debugging container configuration issues
 
| Feature | Automated Setup | Manual Setup | 
|---|---|---|
| Speed | ⚡ Fast (single command) | 🐢 Multiple steps required | 
| Control | 🎯 Standardized | 🔧 Full customization | 
| Validation | ✅ Built-in | 📋 Manual validation required | 
| Learning | 📦 Black box | 🎓 Educational | 
| Best For | New projects | Existing projects, customization | 
| Difficulty | 🟢 Easy | 🟡 Intermediate | 
./scripts/manual-setup-project.shThis script:
- 🔍 Creates 
.envfrom.env.exampleif missing - ✅ Validates all required environment variables
 - 🔧 Checks variable formats and values
 - 🐳 Verifies Docker environment
 - 📋 Tests container configuration
 - 🏗️ Validates infrastructure paths
 
📖 For detailed manual setup guidance, see templates/flutter-devcontainer-template/scripts/README.md
- ✅ Creating a new Flutter project from scratch
 - ✅ You want standard workBenches project structure
 - ✅ You need to get started quickly
 - ✅ You trust the default configuration
 - ✅ You're new to DevContainers
 
- ✅ Adding DevContainer to existing Flutter project
 - ✅ You need custom template modifications
 - ✅ Working with unique directory structures
 - ✅ You want to learn how DevContainers work
 - ✅ Debugging container issues
 - ✅ You need maximum control over the setup process
 
Key Principle: The .env file is the single source of truth for ALL project and user-specific configuration.
- ✅ Template files remain untouched - 
devcontainer.json,docker-compose.yml, etc. are never modified - ✅ All customization via environment variables - container names, user settings, versions, ports
 - ✅ Project-specific settings isolated - each project has its own 
.envfile - ✅ Easy template updates - template improvements don't conflict with your settings
 
# .env file controls everything:
PROJECT_NAME=dartwing
APP_CONTAINER_SUFFIX=app           # Results in: dartwing-app
SERVICE_CONTAINER_SUFFIX=gateway   # Results in: dartwing-gateway  
USER_UID=1000
FLUTTER_VERSION=3.24.0
COMPOSE_PROJECT_NAME=dartwingersResult: Template files use ${PROJECT_NAME}-${APP_CONTAINER_SUFFIX} → resolves to dartwing-app
Regardless of which setup method you used:
- Open in VS Code: 
code . - Reopen in Container: Click prompt or Ctrl+Shift+P → "Dev Containers: Reopen in Container"
 - Wait for build: First time takes 2-5 minutes
 - Start coding: Container includes Flutter SDK, Android tools, and VS Code extensions
 
scripts/new-flutter-project.sh- Create new Flutter project with DevContainerscripts/new-dartwing-project.sh- Create new DartWing project variant
scripts/update-flutter-project.sh- Update existing project to latest templatetemplates/.../scripts/manual-setup-project.sh- Validate manual setup
scripts/launch-devbench.sh- Launch development containerscripts/start-monster.sh- Start container infrastructure
templates/flutter-devcontainer-template/README.md- Template detailstemplates/flutter-devcontainer-template/scripts/README.md- Manual setup guidedocs/env-file-docker-compose-guide.md- Environment configuration guide
The DevContainer template includes:
- 🐳 Lightweight container (~500MB vs 2GB+ FlutterBench)
 - 🔧 Centralized configuration - ALL project and user settings in 
.envfile only - 📝 No template file modification - template files remain untouched, use environment variables
 - 🏷️ Configurable container naming - customize app and service container names via 
.env - 📱 Shared ADB infrastructure (connects to external ADB server)
 - ⚙️ VS Code integration (tasks, launch configs, extensions)
 - 🏗️ Proper user permissions (UID/GID matching)
 - 🔄 Hot reload support (port forwarding configured)
 - 🧪 Testing support (launch configurations)
 - 📋 Spec-driven development (includes specKit)
 
- FlutterBench = Heavy development workbench (~2GB, all tools)
 - Project Containers = Lightweight project-specific environment (~500MB)
 
Use FlutterBench for heavy development, project containers for debugging and light development.