# CargoRadar Android

This is the first driver-app skeleton. It uses a foreground service, Android's
native `LocationManager`, and `HttpURLConnection` so the MVP has no runtime
library dependencies beyond the Android Gradle/Kotlin plugins.

## Build

Open `apps/android` in Android Studio, sync Gradle, then run the `app` module.
For command-line debug builds:

```powershell
$env:JAVA_HOME="C:\Program Files\Android\Android Studio\jbr"
$env:ANDROID_HOME="$env:LOCALAPPDATA\Android\Sdk"
.\gradlew.bat :app:assembleDebug
```

The debug APK is created at:

```text
apps/android/app/build/outputs/apk/debug/app-debug.apk
```

Current Gradle plugin choices:

- Android Gradle Plugin: `9.2.0`
- Kotlin: built into Android Gradle Plugin 9.x
- Gradle wrapper: `9.4.1`
- compile/target SDK: `36`

## MVP behavior

- The app asks for foreground location and notification permissions.
- Press `운행 시작` to start a location foreground service.
- The service uploads location JSON to `/api/v1/locations`.
- Failed uploads are queued locally and retried after the next successful send.
- Press `운행 종료` to stop location updates.

For emulator testing, keep the default server URL `http://10.0.2.2:8080`.
For a real phone, use the NAS or PC LAN URL, for example
`http://192.168.200.129:18081`.

The current public reverse-proxy URL is
`https://cargoradar.comtropy.synology.me`.

Production builds should use HTTPS and disable cleartext traffic.
