managarten/apps/chat/apps/mobile/VEREINFACHUNG.md
Wuesteon d36b321d9d style: auto-format codebase with Prettier
Applied formatting to 1487+ files using pnpm format:write
  - TypeScript/JavaScript files
  - Svelte components
  - Astro pages
  - JSON configs
  - Markdown docs

  13 files still need manual review (Astro JSX comments)
2025-11-27 18:33:16 +01:00

2 KiB

Vereinfachungsplan für Chat App

Basierend auf der Codeanalyse schlage ich folgende Maßnahmen zur Vereinfachung des Projekts vor:

1. Komponenten-Konsolidierung

  • Chat-Eingabefelder: MessageInput.tsx und ChatPromptInput.tsx zu einer Komponente zusammenführen
  • Modell-Auswahl: Die Logik aus ModelDropdown.tsx und model-selection.tsx in einen gemeinsamen Service extrahieren
  • Nachrichten-Darstellung: Eine wiederverwendbare MessageRenderer-Komponente für alle Nachrichten-Displaytypen erstellen

2. Code-Reduktion

  • Redundante Modell-Definitionen: Gemeinsame Typendefinitionen in types/index.ts zentralisieren
  • API-Wrapper: XHR durch einfachen Fetch-API-Wrapper in utils/api.ts ersetzen
  • Error Handling: Zentrales Fehlerbehandlungssystem statt wiederholter try/catch-Blöcke
  • Styling: Vollständig auf NativeWind umstellen und StyleSheet.create entfernen

3. Architektur-Optimierung

  • State Management:

    • Auth-Zustand über einen zentralen Store verwalten
    • Modell- und Konversationszustand aus UI-Komponenten in Services verlagern
  • Typ-System:

    • Gemeinsame Schnittstellen für Modelle, Nachrichten und Konversationen
    • Striktere Typprüfung für alle API-Antworten
  • Service-Layer:

    • Klare Trennung zwischen UI, Datenmodell und API-Logik
    • Einheitliche Fehlerrückgabe mit Typisierung

4. Dateistruktur

/app             - Screens & Routing
/components      - UI-Komponenten
/hooks           - Gemeinsame React Hooks
/services        - Business-Logik
/types           - Typendefinitionen
/utils           - Hilfsfunktionen

5. Performance-Optimierungen

  • Virtualisierte Listen für große Nachrichtenthreads
  • Optimistische UI-Updates für bessere UX
  • Caching von Modellantworten zur Reduzierung von API-Aufrufen

Implementierungsreihenfolge

  1. Typensystem konsolidieren
  2. API-Wrapper erstellen
  3. State Management umstellen
  4. UI-Komponenten vereinheitlichen
  5. Styling standardisieren