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
Find a file
Till JS 3b861af3fb v0.3.0 — Phase β-2 Study-Loop
Voller Lern-Flow mit Web-Parität: fällige Karten via /reviews/due
laden, flip + rate (4 Buttons + Haptic), Grades via Offline-Queue
ans Server-FSRS schicken.

- Card/Review/DueReview DTOs mit snake_case + camelCase-deckId-
  Sonderfall im embedded card-Subobjekt
- CardType-Enum (alle 7 Typen), Rating-Enum mit deutschen Labels
- Cloze-Helper 1:1-Port aus cards-domain (extractClusterIds,
  subIndexCount, clusterId, renderPrompt/Answer, hint)
- CardsAPI.dueReviews(deckId:) + gradeReview(cardId,subIndex,rating,reviewedAt)
- PendingGrade SwiftData-Model + GradeQueue (FIFO-Drain, originaler
  Timestamp bleibt, bei Netzfehler in Queue, Retry beim nächsten Drain)
- StudySession @Observable State-Machine
- CardRenderer für basic, basic-reverse, cloze; Placeholder für
  image-occlusion/audio-front/typing/multiple-choice (β-3/β-4)
- RatingBar mit UIImpactFeedbackGenerator (medium/heavy)
- StudySessionView per NavigationLink aus DeckListView
- 9 neue Tests (Cloze: 8, Review-Decoding: 3), insgesamt 17 grün

Server-authoritative FSRS bleibt — kein ts-fsrs-Port.
Endurance-Test auf realem Gerät steht aus (siehe PLAN.md).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 00:16:11 +02:00
Sources v0.3.0 — Phase β-2 Study-Loop 2026-05-13 00:16:11 +02:00
Tests v0.3.0 — Phase β-2 Study-Loop 2026-05-13 00:16:11 +02:00
.gitignore v0.1.0 — Phase β-0 Setup 2026-05-12 19:29:45 +02:00
.swiftformat v0.1.0 — Phase β-0 Setup 2026-05-12 19:29:45 +02:00
.swiftlint.yml v0.1.0 — Phase β-0 Setup 2026-05-12 19:29:45 +02:00
CLAUDE.md v0.1.0 — Phase β-0 Setup 2026-05-12 19:29:45 +02:00
PLAN.md v0.3.0 — Phase β-2 Study-Loop 2026-05-13 00:16:11 +02:00
project.yml v0.2.0 — Phase β-1 Decks lesen 2026-05-13 00:06:28 +02:00
README.md v0.1.0 — Phase β-0 Setup 2026-05-12 19:29:45 +02:00

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.how ist 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.cards    │  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.