Die iOS-Version soll sich in der Spiellogik wie die Android-Version verhalten (funktionale Parität), darf aber eine eigene UI/Navigation haben.
- iOS hat eine solide Basis für den Level-Mode.
- Android hat deutlich mehr vollständige Produktbausteine (u.a. JustPlay-System mit Zeit/Score, zusätzliche Flows/Szenen).
- iOS ist derzeit nicht release-ready als vollwertiges Pendant.
Ziel: Gleiches Gameplay-Verhalten wie Android in JustPlay.
Fehlt auf iOS aktuell:
- Countdown-Timer pro Runde
- Difficulty-/Levelsetting-Kurven über Fortschritt
- Score-Berechnung und Zeitbonus-Mechanik
- Game-Over- und Score-Screens
- JustPlay-Highscore-Persistenz
Umsetzung:
-
JustPlayService(+ Implementierung) in iOS ergänzen - Zeitbasierten Game-Service ergänzen (analog Android-Verhalten)
- JustPlay-Flow in
StoryServiceerweitern (Score/Lost/Next) - Neue Szenen für Score/GameOver hinzufügen
- CoreData-Entity
JustPlayResultsaktiv nutzen
Abnahmekriterium:
- Bei identischer Eingabe ergibt sich gleiches Zeit-/Score-Verhalten wie auf Android.
Ziel: Identische Levelbasis wie Android.
Aktuell: iOS enthält nur 75 .lv-Level, Android 100.
Umsetzung:
- Fehlende Level 76–100 nach iOS übernehmen
- Reihenfolge/IDs und Freischaltlogik validieren
Abnahmekriterium:
- iOS hat 100 Levels und korrektes sequentielles Unlocking.
Ziel: Kein Crash am Ende des letzten Levels.
Risiko aktuell:
levelId + 1wird ohne Bounds-Check geladen/entsperrt.
Umsetzung:
- Bounds-Prüfung beim Unlock und beim Laden des nächsten Levels
- Letztes Level führt zu sauberem Abschlusszustand (z.B. Completion Scene)
Abnahmekriterium:
- Letztes Level ist stabil lösbar, kein Force-Unwrap-Crash.
Ziel: Funktionsgleichwertige App-Flows wie Android.
Android-seitig vorhanden, iOS-seitig unvollständig/fehlend:
- Hauptmenü
- Credits
- Tutorial/Onboarding
- Levelmode-Completion
- Optional Loading-Übergang
Umsetzung:
- Story-/Navigation auf iOS erweitern
- Flows als eigene Szenen oder äquivalente iOS-Navigation umsetzen
Abnahmekriterium:
- Alle wesentlichen Modi/Zustände sind für Nutzer erreichbar und vollständig rücknavigierbar.
Ziel: Produktionsreife Laufzeitkonfiguration.
Umsetzung:
DEVELOPER_MODEstandardmäßig deaktivieren- Debug-Ausgaben/temporäre Buttons entfernen
- Auskommentierte Steuer-Elemente finalisieren
Abnahmekriterium:
- Kein Dev-only Verhalten in Release-Builds.
Ziel: Robustes Fehlerverhalten statt App-Abbruch.
Umsetzung:
- Kritische
fatalError()in Datenzugriff/State-Handling durch kontrollierte Fehlerpfade ersetzen - Fehler protokollieren und Nutzerfluss erhalten, wo möglich
Abnahmekriterium:
- Typische Daten-/State-Fehler führen nicht zum sofortigen Crash.
Ziel: Nachweisbare Gleichheit der Spiellogik Android vs iOS.
Umsetzung:
- Bestehende iOS-Tests aktualisieren (inkl. korrekter Level-Anzahl)
- Golden-Tests einführen für:
- Shift-/Move-Verhalten
- Solve-Check
- Star-Berechnung
- JustPlay-Zeit-/Score-Logik
- Optional: Vergleichsfixtures zwischen Android und iOS nutzen
Abnahmekriterium:
- Kritische Kernlogik ist automatisiert getestet und stabil reproduzierbar.
Ziel: Zeitgemäße iOS-Build-/Release-Basis.
Umsetzung:
- Deployment-Target und Build-Einstellungen aktualisieren
-
Info.plistauf aktuelle Anforderungen prüfen/aufräumen - Signierung/Versionierung finalisieren
Abnahmekriterium:
- Sauberer Release-Build mit aktueller Toolchain und plausiblen Store-Metadaten.
- Crash-Fixes + 100-Level-Parität
- JustPlay vollständig (Timer/Score/Lost/Score/Highscore)
- Fehlende Flows (Menü/Tutorial/Credits/Completion)
- Release-Härtung + Testausbau
- Build-/Store-Modernisierung und finaler Release-Check
- iOS-Gameplay entspricht Android in der Spiellogik (Levelmode + JustPlay).
- 100 Level vollständig, Unlocking stabil.
- Keine bekannten Crashes in Standard-Flows.
- Alle relevanten Nutzerflüsse vollständig bedienbar.
- Testabdeckung für Kernlogik vorhanden und grün.
- Release-Build erfolgreich, produktionsreif.