# Android Release Preparation

Stand: 2026-03-06

## Umgesetzte Punkte

1. App-Name
- `debug`: `Trainingstagebuch Debug`
- `release`: `Trainingstagebuch`
- Umsetzung über `resValue("string", "app_name", ...)` in `app/build.gradle.kts`.

2. Launcher Icon
- Manifest nutzt jetzt:
  - `@mipmap/ic_launcher`
  - `@mipmap/ic_launcher_round`
- Neue adaptive Icon-Ressourcen:
  - `app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml`
  - `app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml`
  - `app/src/main/res/drawable/ic_launcher_background.xml`
  - `app/src/main/res/drawable/ic_launcher_foreground.xml`

3. Release/Debug-Konfiguration
- `debug`:
  - `applicationIdSuffix = ".debug"`
  - `versionNameSuffix = "-debug"`
- `release`:
  - eigenes `app_name` ohne Debug-Suffix
  - bestehende ProGuard-Konfiguration bleibt aktiv

4. API-/Socket-Base-URL konfigurierbar
- BuildConfig-Felder pro BuildType:
  - `API_BASE_URL`
  - `SOCKET_BASE_URL`
- Auflösung per Gradle-Property oder Environment-Variable:
  - `API_BASE_URL_DEBUG`, `SOCKET_BASE_URL_DEBUG`
  - `API_BASE_URL_RELEASE`, `SOCKET_BASE_URL_RELEASE`
- Fallback aktuell (wenn nicht gesetzt): `http://10.0.2.2:3005/...`

## Interne Umgebung (gesetzt)

Die Werte sind für das Projekt aktuell in `android-app/gradle.properties` gesetzt:

```properties
API_BASE_URL_DEBUG=http://10.0.2.2:3005/api/
SOCKET_BASE_URL_DEBUG=http://10.0.2.2:3005
API_BASE_URL_RELEASE=https://tt-tagebuch.de/api/
SOCKET_BASE_URL_RELEASE=https://tt-tagebuch.de:3051
```

Reihenfolge der Auflösung in `app/build.gradle.kts` (`propOrEnv`):
1. Gradle-Property (z. B. `gradle.properties`)
2. Environment-Variable gleichen Namens
3. Defaultwert im Build-Script

5. Bereinigung offensichtlicher Debug-Artefakte
- HTTP-Logging nur noch in Debug:
  - `BuildConfig.DEBUG` -> `HttpLoggingInterceptor.Level.BASIC`
  - Release -> `HttpLoggingInterceptor.Level.NONE`

## Konfigurationsbeispiele

### Gradle-Properties (Override)
`~/.gradle/gradle.properties` oder Projekt-`gradle.properties`:

```properties
API_BASE_URL_RELEASE=https://your-internal-api.example.com/api/
SOCKET_BASE_URL_RELEASE=https://your-internal-api.example.com
```

### Environment-Variablen

```bash
export API_BASE_URL_RELEASE="https://your-internal-api.example.com/api/"
export SOCKET_BASE_URL_RELEASE="https://your-internal-api.example.com"
```

## Build-Validierung
- `cd android-app && ./gradlew assembleDebug`
- `cd android-app && ./gradlew assembleRelease`

## Hinweise für internen Test-Release
- Aktiv in `debug`:
  - `API_BASE_URL=http://10.0.2.2:3005/api/`
  - `SOCKET_BASE_URL=http://10.0.2.2:3005`
- Aktiv in `release`:
  - `API_BASE_URL=https://tt-tagebuch.de/api/`
  - `SOCKET_BASE_URL=https://tt-tagebuch.de:3051`
- `assembleRelease` erzeugt ein Release-Artefakt; Signing/Distribution (z. B. Play Internal Testing) erfolgt im nächsten Schritt.
