# 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.yml` mit Bundle-ID `ev.mana.cards`, ManaSwiftCore via `path: ../mana-swift-core` - `AppConfig` als `ManaAppConfig`-Provider: - Auth: `https://auth.mana.how` - API: `https://cardecky-api.mana.how` - Keychain-Service: `ev.mana.cards` - `CardsTheme.swift` mit forest-Werten (lokal nachgebaut aus `mana/packages/themes/src/variants/forest.css`) - `LoginView` (Email/PW gegen mana-auth) - `DashboardView` als β-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": 1. `Deck`-`Codable`-Struct nach Wire-Format aus `../cards/apps/api/src/routes/decks.ts` + `cards/packages/cards-domain/src/schemas/` 2. `CardsAPI.decks() -> [Deck]` mit `GET /api/v1/decks` 3. `DeckListView` mit Pull-to-Refresh, Card/Due-Counts 4. `CachedDeck` als SwiftData-Model mit `lastFetchedAt` 5. Offline-Display bei fehlendem Netz 6. 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-Konventionen - `CLAUDE.md` — Repo-Konventionen