# Final Migration Review (Android)

Stand: 2026-03-06 (nach Open-Gaps-Abarbeitung)

## Scope
Geprüft wurden:
- `docs/implementation_status.md` (alle 26 Views)
- `docs/mobile_spec.md`
- `docs/frontend_dependency_graph.md`
- Android-Code unter `android-app` (Navigation, Screens, ViewModels, Services/Repository, Network, Socket, Session/Auth)

## Direkt behobene Inkonsistenzen (klein/mittel)
1. Home-Navigation vervollständigt für bereits implementierte Screens:
- `training-stats`, `predefined-activities`, `mytischtennis-account`, `logs`, `personal-settings`, `impressum`, `datenschutz`

2. Selektive Feature-Deep-Links ergänzt:
- `home`, `showclub/{clubId}`, `members`, `diary`, `schedule`, `tournaments`, `training-stats`

3. Startup-Routing verbessert (club-basiert):
- `currentClub == "new"` -> `createclub`
- `currentClub` gesetzt -> `training-stats`
- sonst -> `home`

4. Socket/API-Basis-URLs zentralisiert:
- `BuildConfig.API_BASE_URL`
- `BuildConfig.SOCKET_BASE_URL`

## Systematische Prüfung

### 1) Views laut `implementation_status.md`
- Ergebnis: 26/26 Views als Android-Screens/Flows vorhanden.
- Quercheck Navigation: alle in `AppRoute` und `AppNavGraph` enthalten.
- Quercheck Architektur: pro Bereich ViewModel + Service/Repository vorhanden.

### 2) Navigation + Deep Links
- Interne Navigation: vollständig für dokumentierte Routen vorhanden.
- Auth-Deep-Links und selektive Feature-Deep-Links sind in `AppNavGraph` + Manifest hinterlegt.

### 3) API-Integration
- `ApiService` deckt die benötigten Endpunkte in den portierten Bereichen ab.
- Repository/Service-Schicht ist durchgängig angebunden.

### 4) Socket-Integration
- Zentrale Architektur vorhanden (`SocketManager` + Domain-Event-Mapping im Repository).
- Event-Subscriptions in den relevanten ViewModels (Diary/Schedule/Tournament) sind aktiv.
- Reconnect/Backoff + Foreground-Lifecycle-Verhalten sind implementiert.

### 5) Session/Auth-Flows
- Request-Auth global über `NetworkModule`-Interceptor (`authcode`, `userid`).
- 401/403-Handling inkl. API-Code-Prüfung vorhanden.
- Unauthorized -> Session-Clear + globales Login-Redirect über `AuthEventBus`/`AppNavGraph`.
- Socket Connect/Disconnect an Login/Logout gekoppelt.

### 6) Error/Loading/Retry
- In den Screens konsistent mit ErrorBanner/ErrorSnackbarHost, Loading-Indikatoren und Retry-Actions umgesetzt.

### 7) Abweichungen zu `mobile_spec.md` / `frontend_dependency_graph.md`
- Kernabhängigkeiten sind portiert.
- Verbleibende größere/strategische Punkte sind in `docs/open_gaps.md` dokumentiert.

## Ergebnis
- Migration ist funktional konsistent und vollständig nutzbar.
- Kleine/mittlere offene Punkte aus dem vorherigen Review wurden abgearbeitet.
- Verbleibende Themen sind bewusst priorisierte Restpunkte (siehe `docs/open_gaps.md`).
