Native SwiftUI-Universal-App für Cardecky (mana e.V.). Web-Parität zu cardecky.mana.how. SOT: mana/docs/playbooks/CARDS_NATIVE_GREENFIELD.md
Bisher zeigte DeckDetailView nur 4 Action-Buttons (Lernen, Hinzufügen, Bearbeiten, Löschen) — Karten waren nur via Study-Loop sichtbar. User-Feedback: "ich sehe keine Karten im Deck". Geändert: - CardsAPI.listCards(deckId:) → [Card] (war nur cardCount via /total) - CardListResponse: nimmt cards-Array zusätzlich zu total - DeckDetailView: ScrollView statt VStack, neue Sektion "Karten" unter den Action-Buttons mit CardPreviewRow pro Karte - CardPreviewRow: Type-Icon + Front-Preview (basic/cloze/audio/ image-occlusion adaptiv) + Type-Label - task(id:) + refreshable triggern loadCards() - Nach CardEditor-Save reloaded die Liste Build 4 → 5. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| docs | ||
| scripts | ||
| ShareExtension | ||
| Sources | ||
| Tests | ||
| Widgets/CardsWidget | ||
| .gitignore | ||
| .swiftformat | ||
| .swiftlint.yml | ||
| CLAUDE.md | ||
| PLAN.md | ||
| project.yml | ||
| README.md | ||
cards-native
Native SwiftUI-Universal-App (iOS / iPadOS / macOS) für Cardecky — die Spaced-Repetition-Karten-App des Vereins mana e.V.
Web-App-Parität. Die existierende Web-App auf
cardecky.mana.howist Funktions- und Verhaltens-Referenz. Native bringt kein neues Produkt, sondern die App in einer Form, die iOS-Hardware besser nutzt.
Status
Phase β-0 — Setup. Leerer Build, Login funktioniert, Cardecky-API-
Reachability-Check. Vollständiger Phasen-Plan in
../mana/docs/playbooks/CARDS_NATIVE_GREENFIELD.md.
HTTPS/JWT ┌──────────────────┐
cards-api ◄───────────── │ cards-native │ SwiftUI
cardecky-api.mana.how │ ev.mana.cardecky │ WidgetKit (β-6)
└──────────────────┘
│
┌─────────────────────────────────────────┐
▼ ▼
ManaCore (Auth, Transport) ManaTokens (Designwerte)
git.mana.how/till/mana-swift-core v1.0.0+
Lokal entwickeln
xcodegen generate
open CardsNative.xcodeproj # iPhone-17-Simulator
Konventionen, Invarianten, Phasen-Disziplin: CLAUDE.md.