A full-stack monorepo template for building Flutter + Python (FastAPI) + Edge IoT applications.
This template is designed for rapid prototyping and educational use cases involving:
- A mobile app (Flutter)
- A backend API (FastAPI)
- An edge device client (e.g. Jetson Nano, Raspberry Pi)
flutter-iot-template/
├── flutter/ # Locally installed Flutter SDK (excluded from git)
├── flutter_app/ # Flutter mobile app source
├── backend/ # FastAPI backend server
├── edge_client/ # Python edge client (Jetson Nano / Raspberry Pi)
├── docker-compose.yml
├── Makefile
├── README.md
└── .github/workflows/ # Optional CI/CD setup
git clone https://github.com/yeongseon/flutter-iot-template.git
cd flutter-iot-templateDepending on your OS:
- Linux/macOS:
docker compose up --build- macOS (Podman):
# Make sure Podman is installed and socket is linked with Docker CLI
alias docker=podman
podman compose up --build- Windows x86_64 (with Docker Desktop):
docker compose up --build- Windows ARM (e.g., Surface Pro X):
# Use WSL2 Ubuntu and run from inside it:
cd /mnt/c/Users/<username>/GitHub/flutter-iot-template
docker-compose up --buildbackend: FastAPI server at http://localhost:8000edge_client: SendsPOST /dataevery 5 seconds with simulated sensor data
Follow instructions in flutter_app/README.md
flutter_app: Flutter UI that interacts with backend via HTTPbackend: FastAPI app with/helloand/dataendpointsedge_client: Python script simulating sensor data sent to backend
- Docker + Docker Compose
- Python 3.9+ (optional, for local backend testing)
- Flutter SDK 3.0+ (see below)
If you are using Windows (especially ARM-based), follow these steps:
1. Install Flutter SDK
Extract to flutter/ and add to PATH:
set PATH=%PATH%;C:\path\to\flutter\bin2. Install Android Studio
Check these during install:
- Android SDK
- SDK Platform Tools
- Android Emulator
flutter config --android-sdk "C:\Program Files\Android\Android Studio\Sdk"3. Install Visual Studio Community
- Select the "Desktop development with C++" workload
set CHROME_EXECUTABLE="C:\Program Files\Google\Chrome\Application\chrome.exe"flutter doctorIf you're on macOS (Intel or Apple Silicon):
You can install Flutter using Homebrew:
brew install flutterAlternatively, you can manually install it:
# Example: download and extract to ~/flutter
git clone https://github.com/flutter/flutter.git -b stable ~/flutter
echo 'export PATH="$PATH:$HOME/flutter/bin"' >> ~/.zshrc
source ~/.zshrc# Install from App Store or developer.apple.com
xcode-select --install
sudo xcodebuild -license
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -runFirstLaunch- Android SDK
- SDK Platform Tools
- Android Emulator
After installation, if the Android SDK cannot be located automatically, configure it manually:
flutter config --android-sdk /Users/<your-username>/Library/Android/sdkbrew install --cask google-chromeflutter doctor -vIf you see issues related to Android SDK, Xcode, or CocoaPods:
- Install missing tools via the official links provided in the output
- For CocoaPods (required for iOS/macOS):
sudo gem install cocoapodsMIT License