A Flutter mobile application for business application scaffolding, built on the DartWing open-source framework. This app provides enterprise-grade mobile solutions with Keycloak authentication, multi-tenant architecture, and comprehensive business workflows.
DartWing is an open-source Flutter framework designed for mobile business application scaffolding. The project consists of:
- Flutter Mobile App (this repository) - Main mobile application
- Gatekeeper Service - .NET backend API service
- Shared Flutter Library - Core functionality, networking, and UI components
- π Keycloak Authentication - Enterprise-grade security
- π’ Multi-tenant Architecture - Site-based data isolation
- π Multi-backend Support - DartWing API and Healthcare (Frappe) integration
- π Business Workflows - Organization management, document repository, barcode scanning
- π Internationalization - English and German language support
- π± Cross-platform - iOS and Android support
# Navigate to app directory (you're already here!)
cd /home/brett/projects/dartwingers/dartwing/app
# Check container status
beam-me-up status
# Start the development environment
beam-me-up start
# Connect to containerized environment
beam-me-up connect- Docker - Container runtime for development environment
- VS Code with "Dev Containers" extension
- Node.js (LTS version) - Required for DevContainer CLI
- DevContainer CLI -
npm install -g @devcontainers/cli - Git with SSH keys configured for Azure DevOps
- Warp Terminal (recommended) - Enhanced development workflow
- Windows Users: See Windows Setup Guide
- WSL Users: This project is optimized for WSL/Linux environments
This project uses a fully containerized development environment with:
- Flutter SDK 3.24.0 - Latest stable Flutter version
- Android SDK with emulator support
- Dart SDK ^3.9.0 - Modern Dart language features
- Warpified environment with Flutter shortcuts and productivity tools
- Shared ADB server - Streamlined Android device debugging
- Hot reload on port 8080
- DevTools on port 9100
- Memory: 4GB allocated
- CPU: 2 cores allocated
- Network: Connected to
dartnetshared infrastructure - Project Stack:
dartwingers(groups with gatekeeper service)
app/
βββ lib/
β βββ dart_wing/ # Symlinked shared library
β β βββ core/ # Core utilities and data models
β β βββ network/ # Network layer and API clients
β β βββ gui/ # Shared UI components
β β βββ localization/ # i18n support
β βββ main.dart # App entry point
βββ .devcontainer/ # Development container configuration
βββ android/ # Android-specific files
βββ ios/ # iOS-specific files
βββ test/ # Unit and widget tests
- Framework: Flutter 3.24.0
- Language: Dart ^3.9.0
- State Management: Stateful widgets with global singletons
- Authentication: Keycloak via
keycloak_wrapper - Networking: HTTP with retry logic and comprehensive logging
- Localization:
easy_localization(EN/DE support) - Barcode Scanning:
mobile_scanner - Image Processing: TensorFlow Lite integration
- Start containers:
beam-me-up start - Connect to environment:
beam-me-up connect - Install dependencies:
flutter pub get - Run the app:
flutter run
# Install dependencies
flutter pub get
# Run the app with hot reload
flutter run --hot
# Run tests
flutter test
# Generate code (JSON serialization)
flutter packages pub run build_runner build
# Analyze code quality
flutter analyze
# Format code
flutter format lib/This app works alongside the DartWing gatekeeper service:
- Flutter App:
dartwing-app(port 8080) - Gatekeeper API:
dartwing-gatekeeper(port 5000) - Both services run in the
dartwingersDocker stack
# Run all tests
flutter test
# Run tests with coverage
flutter test --coverage
# Run specific test file
flutter test test/widget_test.dart# Debug APK
flutter build apk --debug
# Release APK
flutter build apk --release
# App Bundle for Play Store
flutter build appbundle --release# Debug build
flutter build ios --debug
# Release build
flutter build ios --release- QA Environment:
https://*-qa.tech-corps.com - Production Environment:
https://*.opensoft.one - Debug Mode: Automatic QA mode detection
- Container Config:
.devcontainer/.env - Flutter Config:
pubspec.yaml - Docker Compose:
docker-compose.yml,docker-compose.override.yml
- Windows Setup Guide - Complete Windows development setup
- Project Architecture - Detailed architecture documentation
- Main Project README - Orchestrator setup and multi-repository workflow
- Flutter Documentation - Official Flutter documentation
- Flutter Cookbook - Code examples and patterns
- Keycloak Documentation - Authentication setup
Container won't start:
# Check Docker status
docker ps -a
# Rebuild container
beam-me-up rebuildFlutter dependencies issues:
# Clean and reinstall
flutter clean
flutter pub getADB connection problems:
# Check shared ADB server
docker ps | grep shared-adb-server
# Restart ADB
adb kill-server
adb start-serverHot reload not working:
- Ensure you're running
flutter runfrom inside the container - Check that port 8080 is accessible
- Verify VS Code is connected to the container
- Work in feature branches - Never commit directly to
mainordevelop - Follow Flutter conventions - Use
flutter formatandflutter analyze - Write tests - Maintain test coverage for new features
- Update documentation - Keep README and code comments current
- Follow Flutter style guide
- Use meaningful commit messages
- Maintain backwards compatibility where possible
- Document public APIs
- Version: 1.0.2
- Flutter SDK: 3.24.0
- Dart SDK: ^3.9.0
- Platform Support: Android β , iOS β , Linux β
- Development Status: Active development
- DartWing Gatekeeper - .NET backend API service
- DartWing Flutter Library - Shared Flutter components
- Project Orchestrator - Multi-repository setup and coordination
π Enhanced with Warp Terminal integration for the ultimate Flutter development experience!