- Package: de.krisenvorrat.* -> de.bollwerk.* - Klassen: KrisenvorratApp/Database/Theme -> Bollwerk* - ApplicationId: de.bollwerk.app - Server: BOLLWERK_* Env-Vars, bollwerk HOCON-Config - Docker: bollwerk-server/db/backup Container-Namen - Room DB: bollwerk.db, SharedPrefs: bollwerk_secure_prefs - Export-Dateien: bollwerk_export/inventar - UI-Strings, HTML, Admin-UI: alle auf Bollwerk - Docs, Skills, README angepasst - Alle Tests gruen, Build erfolgreich
117 lines
3.7 KiB
Markdown
117 lines
3.7 KiB
Markdown
# Technology Requirements – UI/Design-Entscheidungen
|
||
|
||
Date: 2026-05-13
|
||
Issue: #3
|
||
Author: Tech-Decision Workflow
|
||
|
||
---
|
||
|
||
## Kontext
|
||
|
||
Vor der Implementierung der ersten UI-Screens müssen vier visuelle Designentscheidungen getroffen werden, die direkt in die Compose-Theme-Datei einfließen. Die App ist eine native Android-App (Kotlin + Jetpack Compose + Material 3).
|
||
|
||
Übergeordnetes Design-Ziel laut Anforderungen (anforderungen-v1.md, Abschnitt 6):
|
||
|
||
- **Stil:** Klar, funktional, industriell
|
||
- **UI-Framework:** Material 3 Komponenten
|
||
- **Farbschema:** Dark Theme, Dunkelgrün / Anthrazit – "Bollwerk-Ästhetik", gut lesbar
|
||
|
||
---
|
||
|
||
## Entscheidung A – Konkrete Farbwerte (Seed Color für Dark Theme)
|
||
|
||
### Must-Have (Eliminatoren)
|
||
|
||
- Dark Theme als primäres Theme (nicht optional)
|
||
- Farbe vermittelt Seriosität und Funktionalität (kein grelles Grün, kein Hellblau)
|
||
- Kontrastverhältnis ≥ 4.5:1 auf dunklen Hintergründen (WCAG AA)
|
||
- Material 3 kompatibel (Seed-Color-basiertes Color Scheme)
|
||
|
||
### Should-Have
|
||
|
||
- "Waldgrün / Olivgrün / Militärgrün"-Anmutung (passt zum Thema Bollwerk)
|
||
- Anthrazit-Töne für Oberflächen (nicht reines Schwarz, nicht Hellgrau)
|
||
- Erkennbarer visueller Charakter – App soll eigenständig aussehen
|
||
|
||
### Nice-to-Have
|
||
|
||
- Leichte grüne Tönung der neutralen Flächen (M3 erzeugt das automatisch aus dem Seed)
|
||
- Guter Look auch im Light Theme (falls später aktiviert)
|
||
|
||
### Constraints
|
||
|
||
- Platform: Android, Jetpack Compose, Material 3
|
||
- Tooling: Material Theme Builder (https://m3.material.io/theme-builder)
|
||
- Keine externen Design-Bibliotheken – nur Compose-eigene Theme-Mechanismen
|
||
|
||
---
|
||
|
||
## Entscheidung B – Material 3 Dynamic Color (Wallpaper-basiert) oder feste Palette?
|
||
|
||
### Must-Have
|
||
|
||
- Theme muss zuverlässig auf Android 8+ funktionieren (Projekt-minSdk ist noch nicht festgelegt, aber breite Kompatibilität erwünscht)
|
||
- Grün/Anthrazit-Ästhetik muss erkennbar bleiben – nicht durch Wallpaper überschrieben
|
||
|
||
### Should-Have
|
||
|
||
- Kein Mehraufwand in der Wartung / Pflege
|
||
|
||
### Nice-to-Have
|
||
|
||
- Optionales Dynamic Color auf Android 12+ als "Bonus"
|
||
|
||
### Constraints
|
||
|
||
- Dynamic Color (Monet) erfordert API 31 (Android 12+) – schließt Android 8–11 aus, wenn nicht separat gehandhabt
|
||
|
||
---
|
||
|
||
## Entscheidung C – Typography-Stil
|
||
|
||
### Must-Have
|
||
|
||
- Exzellente Lesbarkeit auf kleinen Smartphone-Displays
|
||
- Gut geeignet für zahlenreiche Daten (Lagermengen, Preise, Datumsangaben)
|
||
- Material 3 TypeScale kompatibel (Display / Headline / Title / Body / Label)
|
||
|
||
### Should-Have
|
||
|
||
- Klare, sachliche Anmutung (nicht verspielt oder gerundet)
|
||
- Kein separates Google-Fonts-Netzwerkaufruf beim ersten Start (oder Fallback)
|
||
|
||
### Nice-to-Have
|
||
|
||
- Leichte typografische Eigenständigkeit gegenüber Standard-Android-Apps
|
||
- Variable-Font-Unterstützung (Roboto Flex o.ä.)
|
||
|
||
### Constraints
|
||
|
||
- Jetpack Compose / Material 3 TypeScale
|
||
- Kein unnötiger APK-Overhead durch komplexe Schriftarten
|
||
- Offline-First (Font darf nicht ausschließlich per Netzwerk geladen werden)
|
||
|
||
---
|
||
|
||
## Entscheidung D – Icon-Set
|
||
|
||
### Must-Have
|
||
|
||
- Native Jetpack Compose Integration (kein SVG-Wrapping-Overhead)
|
||
- Alle benötigten Icons vorhanden: Inventar (Kiste/Box), Kategorie, Lagerort, Warnung, Ablaufdatum, Bearbeiten, Löschen, Import, Export, Einstellungen, Suche, Navigation
|
||
- Frei / Open Source (kein kommerzielles Lizenz-Risiko)
|
||
|
||
### Should-Have
|
||
|
||
- Konsistent mit Material 3 visueller Sprache
|
||
- Breite Icon-Auswahl (>500 Icons) für spätere Erweiterungen
|
||
|
||
### Nice-to-Have
|
||
|
||
- Mehrere Icon-Styles (Outlined, Filled, Rounded) für Variationsmöglichkeit
|
||
- Minimalistische, "industrielle" Icon-Ästhetik
|
||
|
||
### Constraints
|
||
|
||
- APK-Größe: bei Sideloading kein hartes Limit, aber ProGuard sollte unbenutzte Icons entfernen können
|
||
- Keine Abhängigkeit von externer Netzwerkressource zur Laufzeit
|