Common:
- Docker + Docker Compose
- Go
- Flutter SDK
- Dart SDK (usually bundled with Flutter)
- GNU Make
Android phone targets additionally need:
adb- USB debugging enabled on the phone
Use GNU Make from one of these:
- Git Bash
- MSYS2
- WSL
- mingw32-make
From the repository root:
make bootstrap-devThat will:
- check the required tools
- create
backend/.envwith development defaults - install Go and Flutter dependencies
- start the backend Docker stack
- run the PostgreSQL migrations
- run Flutter code generation
Instead of defaults, run:
make backend-env
make deps
make backend-up
make backend-migrate
make frontend-codegenStart the backend stack:
make backend-upThen run Flutter:
make frontend-runIf you want the API process to run outside Docker, while PostgreSQL stays in Docker:
make backend-up
make backend-run-localIf the app still points to localhost:8080, a real phone cannot reach your laptop directly.
For development, use:
make phone-devThat runs:
adb reverse tcp:8080 tcp:8080flutter run
So the phone can talk to your local backend through USB.
make apk-debugmake apk-releaseOutput:
frontend/build/app/outputs/flutter-apk/app-release.apk
make apk-release-splitmake apk-install-debugmake apk-install-releaseA release APK only behaves like a normal end-user app if the frontend is configured to talk to a backend URL the phone can actually reach.
That means one of these must be true:
- the backend is deployed publicly, and
frontend/lib/core/config/api_config.dartpoints to that public host - the phone is on the same network and
api_config.dartpoints to your computer's LAN IP - or you are doing development over USB with
make phone-dev
If api_config.dart still uses localhost, only the USB/ADB dev flow will work on a real phone.
make backend-logs
make backend-psql
make backend-down
make backend-resetmake clean