Repo-Skelett für cards-native, native SwiftUI-Universal-App für Cardecky (mana e.V.). Web-Parität zu cardecky.mana.how. - project.yml mit Bundle ev.mana.cards, ManaSwiftCore-Dep via path - AppConfig: auth.mana.how + cardecky-api.mana.how, Keychain ev.mana.cards - CardsTheme: forest-Werte aus mana/packages/themes/.../forest.css - LoginView (Email/PW gegen mana-auth via ManaCore.AuthClient) - DashboardView als β-1-Placeholder mit cardecky-api-Reachability-Probe - Log unter Subsystem ev.mana.cards - 3 AppConfig-Tests - iOS-Simulator-Build grün Phasen-Plan: mana/docs/playbooks/CARDS_NATIVE_GREENFIELD.md Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.4 KiB
2.4 KiB
Plan — cards-native (SwiftUI Universal)
Stand: 2026-05-12 — Phase β-0 abgeschlossen. Repo lebt lokal, ManaCore + ManaTokens als Package-Dependency, Login funktioniert, Cardecky-API-Reachability-Probe.
SOT:
../mana/docs/playbooks/CARDS_NATIVE_GREENFIELD.md. Dieses File ist die App-lokale Status-Spur, das Greenfield-Doc hat die ganze Architektur-Begründung.
Aktueller Stand
✅ β-0 — Setup
- Repo-Skelett unter
git.mana.how/till/cards-native project.ymlmit Bundle-IDev.mana.cards, ManaSwiftCore viapath: ../mana-swift-coreAppConfigalsManaAppConfig-Provider:- Auth:
https://auth.mana.how - API:
https://cardecky-api.mana.how - Keychain-Service:
ev.mana.cards
- Auth:
CardsTheme.swiftmit forest-Werten (lokal nachgebaut ausmana/packages/themes/src/variants/forest.css)LoginView(Email/PW gegen mana-auth)DashboardViewals β-1-Placeholder mit API-Reachability-Indikator- 3 Unit-Tests (AppConfig)
- iOS-Simulator-Build grün
Phasen (Detail in Greenfield-Plan)
| Phase | Status | Inhalt |
|---|---|---|
| β-0 | ✅ 2026-05-12 | Setup, Login, API-Probe |
| β-1 | ⏳ | Decks lesen, SwiftData-Cache |
| β-2 | — | Study-Loop, Offline-Grade-Queue, Endurance-Test |
| β-3 | — | Card-/Deck-Editor (basic, cloze, typing, multiple-choice) |
| β-4 | — | Media, image-occlusion (PencilKit), audio-front |
| β-5 | — | Marketplace, Universal-Links |
| β-6 | — | Native-Polish (Widgets, Notifications, Share-Extension) |
| β-7 | — | App-Store-Submission |
Nächste Schritte für β-1
Aus Greenfield-Plan-Sektion "Phase β-1 — Decks lesen":
Deck-Codable-Struct nach Wire-Format aus../cards/apps/api/src/routes/decks.ts+cards/packages/cards-domain/src/schemas/CardsAPI.decks() -> [Deck]mitGET /api/v1/decksDeckListViewmit Pull-to-Refresh, Card/Due-CountsCachedDeckals SwiftData-Model mitlastFetchedAt- Offline-Display bei fehlendem Netz
- Inbox-Banner aus
?forked_from_marketplace=true-Query
Erfolgskriterium: Web-Account-Decks vollständig in identischer Reihenfolge sichtbar, Pull-to-Refresh aktualisiert Counts.
Cross-Refs
../mana/docs/playbooks/CARDS_NATIVE_GREENFIELD.md— Greenfield-Plan SOT../mana/docs/MANA_SWIFT.md— Plattform-SOT../cards/CLAUDE.md— Cards-Repo../cards/STATUS.md— Web-Phasenstand (Referenz)../mana-swift-core/CLAUDE.md— ManaCore-KonventionenCLAUDE.md— Repo-Konventionen