hero8 ist eine Bildungsanwendung für iOS, die Lehrern hilft, ihre Klassen, Schüler und Bewertungen zu verwalten. Diese App ist eine Neuimplementierung von hero6, mit besonderem Fokus auf Thread-Sicherheit und modulare Architektur.
- App: Hauptapp-Dateien und Einstiegspunkt
- Core: Kernfunktionalitäten wie ThreadSafeAssetManager
- CoreDomain: Domänenmodelle und Repository-Protokolle
- CoreInfrastructure: Repository-Implementierungen
- Features: Feature-Module (UI, ViewModels)
- HeroCoreData: Core Data Modell und Entity-Klassen
- Dokumentation: Projektdokumentation
- Skripts: Hilfsskripte für Entwicklung und Wartung
hero8 verwendet einen ThreadSafeAssetManager, um CUICatalog-Fehler zu vermeiden, die in hero6 auftraten. Dieser Manager stellt sicher, dass alle Asset-Zugriffe (Bilder, Farben) thread-sicher erfolgen.
Beispiel für den sicheren Asset-Zugriff in SwiftUI:
// Sicherer Farb-Zugriff
Text("Beispiel")
.foregroundColor(Color.safe("accentColor"))
// Sicherer Bild-Zugriff
Image.safe("starIcon")Die App folgt einer klaren modularen Struktur mit separation of concerns:
app
├── CoreDomain (Domänenmodelle, Protokolle)
├── CoreInfrastructure (Repository-Implementierungen, abhängig von CoreDomain)
├── HeroCoreData (Core Data Entitäten, abhängig von CoreDomain)
└── Features (UI-Komponenten, abhängig von allen anderen Modulen)
Alle Datenzugriffe erfolgen über das Repository-Pattern, mit klaren Schnittstellen (Protokollen) in CoreDomain und Implementierungen in CoreInfrastructure.
Im Verzeichnis Skripts befinden sich hilfreiche Skripts für die Entwicklung:
update_docs.sh: Aktualisiert die Dokumentation mit dem aktuellen Migrationsstandprepare_ki_transition.sh: Erstellt eine Übergabedokumentation für KI-Wechselpush_changes.sh: Sichert Änderungen und erstellt Backupsmake_scripts_executable.sh: Setzt alle Skripts auf ausführbar
hero8 ist eine Neuimplementierung von hero6 mit folgenden Verbesserungen:
- Thread-sichere Asset-Verwaltung
- Klare modulare Struktur
- Vollständige Repository-Pattern Implementierung
- Präzise Fehlerverwaltung
Die vollständige Migrationsdokumentation findet sich in Dokumentation/MIGRATIONSSTAND.md.
- Alle Asset-Zugriffe müssen über den ThreadSafeAssetManager erfolgen
- Neue Features sollten in eigenen Feature-Modulen implementiert werden
- Datenzugriff ausschließlich über Repository-Pattern
- Regelmäßiges Testen nach größeren Änderungen
- Dokumentation aktualisieren mit update_docs.sh