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 505aa9db19 feat(study): Typing-Karten + Levenshtein-Match-Logik
CardRenderer für typing ist nicht mehr Placeholder. Web-Vorbild:
TypingView.svelte + cards-domain/typing.ts.

Typing.swift (Sources/Core/Domain/):
- check(input:answer:aliases:) → TypingMatch (correct/close/wrong)
- Normalisierung: trim + lowercase + NFD-Decomp + Combining-Marks
  strippen (Diakritika: ä → a)
- Aliases-Support (Komma-getrennt aus card.fields["aliases"])
- Levenshtein-Threshold max(1, floor(len * 0.2)) → "close"

TypingCardView (Features/Study/):
- TextField mit Auto-Focus 0.15s nach onAppear, Return = Submit
- Submit-Button mit Return-Symbol + primary background
- Nach Submit: Badge (✓ Richtig / ≈ Fast / ✗ Falsch) + User-
  Eingabe in „…" Quotes + Divider + erwartete Antwort
- Haptic-Feedback: heavy bei correct, light bei close/wrong
- Reset on card.id change

TypingTests: 8 Tests für check() — exact, case+whitespace,
NFD-Umlauts, aliases, Levenshtein-close (Berln → Berlin),
empty-input, sowie Levenshtein-Helper-Sanity.

Build 8 → 9. 43 Tests grün (war 35).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 17:39:39 +02:00
docs fix: User-facing Strings Cards → Cardecky komplett, Build 3 2026-05-13 15:11:11 +02:00
scripts v0.8.0 — Phase β-7 App-Store-Vorbereitung 2026-05-13 01:13:27 +02:00
ShareExtension fix: User-facing Strings Cards → Cardecky komplett, Build 3 2026-05-13 15:11:11 +02:00
Sources feat(study): Typing-Karten + Levenshtein-Match-Logik 2026-05-13 17:39:39 +02:00
Tests feat(study): Typing-Karten + Levenshtein-Match-Logik 2026-05-13 17:39:39 +02:00
Widgets/CardsWidget chore: Rebrand auf ev.mana.cardecky 2026-05-13 13:29:04 +02:00
.gitignore chore: Rebrand auf ev.mana.cardecky 2026-05-13 13:29:04 +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 chore: Rebrand auf ev.mana.cardecky 2026-05-13 13:29:04 +02:00
PLAN.md chore: Rebrand auf ev.mana.cardecky 2026-05-13 13:29:04 +02:00
project.yml feat(study): Typing-Karten + Levenshtein-Match-Logik 2026-05-13 17:39:39 +02:00
README.md chore: Rebrand auf ev.mana.cardecky 2026-05-13 13:29:04 +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.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.