From 0e90f4b1c1533d0c5447ab5bf9a84946430641ba Mon Sep 17 00:00:00 2001 From: Till JS Date: Wed, 13 May 2026 18:15:22 +0200 Subject: [PATCH] chore: PLAN.md auf v0.9.4-Stand + Localizable.xcstrings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PLAN.md hatte noch Tag v0.8.0 als letzten Eintrag. Jetzt Post-β-7-Polish-Sektion mit der vollen Reihe v0.8.1 → v0.9.4 + Cards-Repo-Hinweis auf 0002_decks_archived_at. Localizable.xcstrings hat Xcode bei den letzten Builds automatisch um neue Source-Strings ergänzt (Multiple-Choice, Typing, CardListSection, etc.) — alle Keys ohne Translations, EN-Fill ist eine spätere Polish-Aufgabe. Co-Authored-By: Claude Opus 4.7 (1M context) --- PLAN.md | 53 ++++++++++++++++++++++--- Sources/Resources/Localizable.xcstrings | 22 +++++++++- 2 files changed, 67 insertions(+), 8 deletions(-) diff --git a/PLAN.md b/PLAN.md index b1dbd35..b538fe4 100644 --- a/PLAN.md +++ b/PLAN.md @@ -1,13 +1,20 @@ # Plan — cards-native (SwiftUI Universal) -**Stand: 2026-05-13 — Phasen β-0 bis β-7 abgeschlossen.** -Feature-komplett für TestFlight. Alle 7 Card-Types + Marketplace -+ Keyboard/Daily-Reminder/Widget + Siri-Shortcut + Share-Extension -+ App-Icon-Platzhalter + Release-Checklist. 35 Unit-Tests + 1 UI-Test -grün, alle drei Targets (Haupt-App + Widget + Share) bauen. +**Stand: 2026-05-13 — TestFlight Build 11 (v0.9.4).** Alle Phasen +β-0 bis β-7 + Polish-Iterationen. 43 Unit-Tests + 1 UI-Test grün. + +**Cardecky-Web-Look übernommen** (v0.9.0 ff.): Fan-Stack-Tiles +(5:7 Aspect, 3 rotierte Background-Layer), CardSurface in +md/lg/hero, RatingBar mit Good-Emphasis. Tap auf Tile = Study- +Mode, Pencil-Icon unten rechts = Deck-Detail. Identische Tile- +Optik in Decks- und Entdecken-Tab. + +**App-Store-Connect:** Cardecky, App-ID 6769019526, Bundle +`ev.mana.cardecky`, Team `QP3GLU8PH3`. AASA + /privacy + /help +live unter `cardecky.mana.how`. Pflicht-Check für β-2: Endurance-Test auf realem Gerät (200+ Karten -mit Flugmodus zwischendurch) steht aus — Aufgabe für Till. +mit Flugmodus zwischendurch) steht aus. > **SOT:** `../mana/docs/playbooks/CARDS_NATIVE_GREENFIELD.md`. > Dieses File ist die App-lokale Status-Spur, das Greenfield-Doc @@ -28,6 +35,40 @@ mit Flugmodus zwischendurch) steht aus — Aufgabe für Till. - `LoginView` (Email/PW gegen mana-auth) - 3 Unit-Tests (AppConfig) +✅ **Post-β-7-Polish (2026-05-13, Tags v0.8.1 → v0.9.4)** + +Live-Fixes nach Apple-Submission und Real-Device-Tests: +- `v0.8.1` Cardecky-Rebrand (Bundle `ev.mana.cards` → `ev.mana.cardecky`, + AASA + Docker-Compose-Env nachgezogen) +- `v0.8.2` Archive-Polish — Versions-Sync zwischen Targets, iPad- + Orientations +- `v0.8.3` Sendable + AppIcon-Asset-Cleanup, /privacy + /help Stubs +- `v0.8.4` PhotosPicker Sendable-Warning via Sub-View-Struct +- `v0.8.5` ITMS-90129-Fix: DisplayName Cards → Cardecky, Build 2 +- `v0.8.6` Cardecky-Rebrand User-facing Strings durchgängig +- `v0.8.7` PublicDeckOwner.pseudonym Bool statt String? (Decoder-Crash + bei Marketplace-Deck-Open) +- `v0.8.8` Card-Liste in DeckDetailView + CardsAPI.listCards +- `v0.8.9` URL-Query-Bug-Fix in ManaCore.AuthenticatedTransport + (URL.appending(path:) encoded `?` → 404; gefixt via String-Concat, + ManaCore v1.0.1). Behob alle "0-Karten"-Phänomene und das stille + Schlucken von Query-Endpoints. +- `v0.9.0` Cardecky-Web-Design: Fan-Stack-Tiles, CardSurface in + 3 Sizes, RatingBar mit Good-Emphasis, horizontale Scroll-Sections +- `v0.9.1` Multiple-Choice-Karten gerendert (Distractors via Server, + Tap-Selektion, Reveal mit Korrekt/Falsch-Highlight) +- `v0.9.2` Typing-Karten gerendert (Levenshtein-Match 1:1 aus + cards-domain portiert: correct/close/wrong, Aliases-Support, + Diakritika-Normalisierung) +- `v0.9.3` DEBUG-Auto-Login analog memoro-native (`ensureSignedIn()` + in #if DEBUG) — auch in manaspur-native nachgezogen +- `v0.9.4` Tile-Tap = Study-Mode direkt, Pencil-Edit-Icon unten + rechts → DeckDetail, ExploreView mit gleichem Tile-Layout + (5:7 Aspect, Kategorie-Icon oben rechts in primary) + +**Schema-Fix:** cards-Repo Commit `4d905bb` (0002_decks_archived_at) +gleicht Schema-Drift in der Production-DB aus. + ✅ **β-7 — App-Store-Vorbereitung (2026-05-13, Tag `v0.8.0`)** - App-Icon-Platzhalter: `scripts/make-appicon.swift` generiert 1024×1024 PNG aus CoreGraphics (forest-green + "C"-Letter). Asset-Catalog auf diff --git a/Sources/Resources/Localizable.xcstrings b/Sources/Resources/Localizable.xcstrings index 9f45a6f..44b775c 100644 --- a/Sources/Resources/Localizable.xcstrings +++ b/Sources/Resources/Localizable.xcstrings @@ -1,8 +1,14 @@ { "sourceLanguage" : "de", "strings" : { + "„%@“" : { + + }, "%@" : { + }, + "%@ fällig" : { + }, "%@ fällige Karten aus abonnierten Decks" : { @@ -40,10 +46,10 @@ "Distractor-Optionen werden zur Lernzeit automatisch aus anderen Karten desselben Decks gezogen." : { }, - "Erst ein Deck erstellen." : { + "Distractors konnten nicht geladen werden." : { }, - "Erstelle dein erstes Deck auf cardecky.mana.how oder ziehe nach unten zum Aktualisieren." : { + "Erst ein Deck erstellen." : { }, "Inbox" : { @@ -51,6 +57,9 @@ }, "Karteikarten des Vereins mana e.V." : { + }, + "Karten" : { + }, "Karten konnten nicht geladen werden" : { @@ -63,6 +72,12 @@ }, "Mit Hint: `{{c1::Berlin::Hauptstadt von DE}}`" : { + }, + "Nicht genug andere Karten im Deck für Multiple-Choice — tippe auf »Antwort anzeigen«." : { + + }, + "Noch keine Karten. Tippe auf »Karte hinzufügen«." : { + }, "Noch keine Maske" : { @@ -75,6 +90,9 @@ }, "Space" : { + }, + "Tippe oben auf »+«, um dein erstes Deck zu erstellen, oder browse den Marketplace im Entdecken-Tab." : { + }, "Tippe und ziehe auf das Bild, um eine Maske zu erstellen." : {