Files
harheimertc/ANDROID_ARCHITECTURE.md
Torsten Schulz (local) 8e318b0b52
Some checks failed
Code Analysis and Production Deploy / analyze (push) Failing after 3m13s
Code Analysis and Production Deploy / deploy-production (push) Has been skipped
Code Analysis and Production Deploy / deploy-test (push) Has been skipped
feat(android): initial project setup with Gradle, AndroidManifest, and MainActivity
2026-05-26 16:39:10 +02:00

1.6 KiB

Android Architektur (Kotlin + Jetpack Compose) — Vorschlag

Packages/Module Struktur:

  • app/ (Android-App module)
    • src/main/java/de/harheimertc/
      • ui/
        • navigation/ (NavGraph, Routes)
        • screens/ (HomeScreen, TermineScreen, SpielplanScreen, GalleryScreen, ContactScreen, AuthScreens, CMS Screens)
        • components/ (TopBar, BottomNav, Cards, Modals)
        • theme/ (Color.kt, Typography.kt, Theme.kt)
      • data/
        • api/ (Retrofit interfaces, DTOs)
        • repository/ (Repositories für Domain-Modelle)
        • local/ (Room DAOs, Entities)
      • di/ (Hilt Modules)
      • domain/ (UseCases, Business-Logic)
      • util/ (Extensions, DateUtils, ImageUtils)
      • auth/ (AuthManager, Passkeys helper)

Wichtige Dateien:

  • MainActivity.kt — Hosts Compose NavHost
  • AppTheme.kt — Compose Material3 Theme mit Token-Mapping
  • NetworkModule (Hilt) — Retrofit + OkHttp + Auth Interceptor
  • Repository Layer — entkoppelt UI von Netz
  • Room Entities — für Caching von Termine/News/Galerie

Auth-Strategie:

  • AuthRepository verwaltet Login/Logout, checkAuth() (mirroring /api/auth/status).
  • Token/Cookie-Speicherung: EncryptedSharedPreferences für Tokens oder CookieJar mit OKHttp-Client.
  • Passkeys: Fido2Client wrapper + Bridge zu Server-API (Formate prüfen).

Build / Module Tipps:

  • Start mit Single Module app/ und später evtl. :data, :domain Trennung.
  • Verwende Gradle Kotlin DSL (build.gradle.kts).

Diese Architekturdatei wurde generiert; ich kann nun ein initiales Gradle-Kotlin-Scaffold erzeugen. Soll ich das direkt in android-app/ ablegen? (Ja/Nein)