chore: Rebrand auf ev.mana.cardecky
Apple-Developer-Portal-App-ID lautet ev.mana.cardecky (analog zur Domain cardecky.mana.how). Alle Bundle-IDs, App-Group, Keychain- Group, OSLog-Subsysteme, URL-Schemes, Widget-Kind, App-Intent-Phrases, Marketing-Texte und Doku nachgezogen. Bundle-IDs neu: - Main: ev.mana.cardecky - Widget: ev.mana.cardecky.widget - Share: ev.mana.cardecky.share - Tests: ev.mana.cardecky.tests / .uitests App-Group: group.ev.mana.cardecky Keychain-Access-Group: $(AppIdentifierPrefix)ev.mana.cardecky OSLog-Subsystem: ev.mana.cardecky AASA gleichzeitig in cards-Repo angepasst (Commit 21ec535) und auf mana-server redeployed — Probe liefert appID "QP3GLU8PH3.ev.mana.cardecky". Plus: ShareExtension/Resources/Info.plist + entitlements werden jetzt analog zu Widget-Resources gitignored (sind XcodeGen-generated). 35 Unit-Tests + 1 UI-Test grün, alle drei Targets bauen. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
468ef291f5
commit
4dfb32ba25
17 changed files with 203 additions and 94 deletions
155
docs/MARKETING_COPY.md
Normal file
155
docs/MARKETING_COPY.md
Normal file
|
|
@ -0,0 +1,155 @@
|
|||
# MARKETING_COPY — cards-native
|
||||
|
||||
Vorschläge für App-Store-Description (de + en). Zum Eintragen in
|
||||
App-Store-Connect. **Nicht final** — vor Submission durch dich
|
||||
gegenlesen, Tonalität an Vereins-Stil schärfen (siehe `mana/docs/BRAND.md`,
|
||||
`mana/docs/MISSION.md`).
|
||||
|
||||
## Name + Subtitle
|
||||
|
||||
**App-Name:** `Cards`
|
||||
**Subtitle (max 30 Zeichen):** `Karteikarten — mana e.V.`
|
||||
|
||||
## Keywords (max 100 Zeichen, comma-separated)
|
||||
|
||||
```
|
||||
Karteikarten,Spaced Repetition,Lernen,Vokabeln,Anki,Flashcards,FSRS,mana,Verein,Open Source
|
||||
```
|
||||
|
||||
(95 Zeichen)
|
||||
|
||||
## Description — DE (max 4000 Zeichen)
|
||||
|
||||
```
|
||||
Cards ist die Karteikarten-App des Vereins mana e.V. — Spaced
|
||||
Repetition wie es sein soll: ohne Werbung, ohne Tracking, ohne
|
||||
Abo-Zwang.
|
||||
|
||||
KARTEN, WIE DU SIE BRAUCHST
|
||||
- Klassische Vorder-/Rückseite, beidseitig, Lückentext (Cloze),
|
||||
Eintippen, Multiple Choice
|
||||
- Bild-Verdeckung mit selbst gesetzten Masken — für Anatomie, Karten,
|
||||
Diagramme
|
||||
- Audio-Karten für Sprachen und Aussprache
|
||||
|
||||
MODERNER LERN-ALGORITHMUS
|
||||
Cards nutzt FSRS (Free Spaced Repetition Scheduler), den genauesten
|
||||
offenen Algorithmus für Karteikarten. Karten kommen wieder, wenn du
|
||||
sie wirklich brauchst — nicht nach willkürlichen Intervallen.
|
||||
|
||||
OFFLINE LERNEN
|
||||
Karten cachen lokal auf deinem Gerät. Im Flugzeug, in der U-Bahn,
|
||||
ohne WLAN — Cards funktioniert. Deine Bewertungen werden gequeued
|
||||
und beim nächsten Online-Moment automatisch hochgeladen.
|
||||
|
||||
WIDGETS UND NOTIFICATIONS
|
||||
Zeige dir die heute fälligen Karten direkt auf dem Home-Bildschirm
|
||||
oder Lock-Screen. Erinnerung zur Lieblings-Lern-Uhrzeit — lokal, ohne
|
||||
externe Push-Server.
|
||||
|
||||
CARDECKY — MARKETPLACE FÜR LERN-DECKS
|
||||
Stöbere durch öffentliche Decks aus der Cardecky-Community: Geografie,
|
||||
Sprachen, Wissenschaft. Abonnieren = Karten landen direkt in deiner
|
||||
Bibliothek, du kannst sie nach Belieben anpassen.
|
||||
|
||||
VEREIN, NICHT FIRMA
|
||||
Cards wird vom Verein mana e.V. (Schweiz, in Gründung) betrieben.
|
||||
Kein Tracking, kein Werbe-Anbieter, kein Crash-Reporter. Wenn du dem
|
||||
Verein etwas zurückgeben willst: mana-ev.ch/spende.
|
||||
|
||||
NATIV
|
||||
Geschrieben in SwiftUI, optimiert für iPhone, iPad und Mac. Apple-
|
||||
Pencil, Magic-Keyboard und Universal-Links sind voll unterstützt.
|
||||
Teile aus Safari oder Mail direkt eine neue Karte.
|
||||
|
||||
DSGVO-EHRLICH
|
||||
Deine Daten gehören dir. Export jederzeit als JSON, Lösch-Knopf
|
||||
löscht alles. Wir hosten in Europa, sprechen Deutsch, und antworten
|
||||
selbst.
|
||||
```
|
||||
|
||||
## Description — EN (max 4000 Zeichen)
|
||||
|
||||
```
|
||||
Cards is the flashcard app from mana e.V. — spaced repetition the
|
||||
way it should be: no ads, no tracking, no subscription pressure.
|
||||
|
||||
THE CARDS YOU NEED
|
||||
- Classic front/back, two-sided, cloze, type-in, multiple-choice
|
||||
- Image occlusion with hand-drawn masks — for anatomy, maps, diagrams
|
||||
- Audio cards for languages and pronunciation
|
||||
|
||||
MODERN SPACED-REPETITION
|
||||
Cards uses FSRS (Free Spaced Repetition Scheduler), the most accurate
|
||||
open algorithm available. Cards come back when you actually need them.
|
||||
|
||||
OFFLINE-FIRST
|
||||
Decks cache locally on your device. On a plane, in the subway, off
|
||||
the grid — Cards keeps working. Your reviews queue up and sync on
|
||||
the next online moment.
|
||||
|
||||
WIDGETS AND REMINDERS
|
||||
See today's due cards on your Home Screen or Lock Screen. Daily
|
||||
reminder at your preferred time — local, no push servers.
|
||||
|
||||
CARDECKY MARKETPLACE
|
||||
Browse public decks from the Cardecky community: geography, languages,
|
||||
science. Subscribe = decks land in your library, ready to be edited.
|
||||
|
||||
ASSOCIATION, NOT CORPORATION
|
||||
Cards is operated by mana e.V. (Switzerland, formation in progress).
|
||||
No tracking, no ad networks, no crash reporters. Want to give back?
|
||||
mana-ev.ch/donate.
|
||||
|
||||
NATIVE
|
||||
Built in SwiftUI for iPhone, iPad, and Mac. Apple Pencil,
|
||||
Magic Keyboard, and Universal Links are first-class. Share from
|
||||
Safari or Mail to create a card.
|
||||
|
||||
GDPR-HONEST
|
||||
Your data, your call. Full JSON export, single-button delete.
|
||||
Hosted in Europe, German-speaking support, replies from real humans.
|
||||
```
|
||||
|
||||
## Privacy-Declaration (App-Store-Connect)
|
||||
|
||||
| Datentyp | Gesammelt | Zweck | Verlinkt mit User | Tracking |
|
||||
|---|---|---|---|---|
|
||||
| Email | Ja | App-Functionality (Login) | Ja | Nein |
|
||||
| User Content (Cards, Decks) | Ja | App-Functionality | Ja | Nein |
|
||||
| Usage Data (FSRS Reviews) | Ja | App-Functionality | Ja | Nein |
|
||||
|
||||
Keine weiteren Kategorien. Insbesondere: keine `Identifiers`,
|
||||
keine `Diagnostics`, keine `Location`, keine `Contacts`.
|
||||
|
||||
## Privacy-Policy- + Support-URLs
|
||||
|
||||
Vor Submission setzen — vermutlich:
|
||||
- Privacy-Policy: `https://cardecky.mana.how/privacy` (existiert? prüfen)
|
||||
- Support: `https://cardecky.mana.how/help` oder `kontakt@mana-ev.ch`
|
||||
- Marketing: `https://cardecky.mana.how`
|
||||
|
||||
Falls die URLs noch nicht live sind, vor Submission in cards-web
|
||||
ergänzen (Routes `/privacy`, `/help`).
|
||||
|
||||
## Screenshot-Skizzen
|
||||
|
||||
Pro Locale (de, en) jeweils 3–5 Screenshots zeigen:
|
||||
|
||||
1. **DeckListView mit fälligen Karten** — Hauptbildschirm, "X Karten fällig" sichtbar
|
||||
2. **Study mit gefliptem Cloze** — Markierte Antwort, RatingBar unten
|
||||
3. **Image-Occlusion** — Bild mit aktiver Maske + Reveal-Hover
|
||||
4. **Marketplace Explore** — Featured-Carousel
|
||||
5. **Widget auf Home-Screen** (optional, via Simulator-Screenshot komponiert)
|
||||
|
||||
iPhone-Größen (mindestens):
|
||||
- 6.7" (iPhone 16 Pro Max)
|
||||
- 6.5" (iPhone XS Max / 11 Pro Max / 14 Plus)
|
||||
- 5.5" (iPhone 8 Plus — wenn ältere Support-Tier)
|
||||
|
||||
Plus iPad:
|
||||
- 12.9" (iPad Pro)
|
||||
|
||||
Apple skaliert die größere Auflösung auf kleinere Slots, wenn keine
|
||||
spezifischen Screenshots vorhanden — Mindest-Set ist daher Größe 6.7"
|
||||
für iPhone + 12.9" für iPad. Reicht zur Submission.
|
||||
|
|
@ -11,14 +11,14 @@ AASA) und über Xcode (für Build + Sign).
|
|||
|
||||
- [x] **Team-ID gesetzt** (`QP3GLU8PH3`, mana e.V.) — `DEVELOPMENT_TEAM`
|
||||
in `project.yml > settings > base`. Greift bei Archive automatisch.
|
||||
- [ ] **App-ID `ev.mana.cards`** im Developer-Portal anlegen, falls
|
||||
- [ ] **App-ID `ev.mana.cardecky`** im Developer-Portal anlegen, falls
|
||||
noch nicht da. Mit Capabilities: App Groups, Keychain Sharing,
|
||||
Associated Domains.
|
||||
- [ ] **App-ID `ev.mana.cards.share`** + **`ev.mana.cards.widget`** für
|
||||
- [ ] **App-ID `ev.mana.cardecky.share`** + **`ev.mana.cardecky.widget`** für
|
||||
die Extensions analog anlegen, ebenfalls mit App Groups.
|
||||
- [ ] **App-Group `group.ev.mana.cards`** im Portal anlegen und allen
|
||||
- [ ] **App-Group `group.ev.mana.cardecky`** im Portal anlegen und allen
|
||||
drei App-IDs zuweisen.
|
||||
- [ ] **Keychain-Access-Group**: heute `ev.mana.cards`. Wenn
|
||||
- [ ] **Keychain-Access-Group**: heute `ev.mana.cardecky`. Wenn
|
||||
Shared-Keychain mit `memoro-native` gewünscht (siehe
|
||||
`mana/docs/MANA_SWIFT.md` Phase γ), auf
|
||||
`$(AppIdentifierPrefix)ev.mana.shared` umstellen und
|
||||
|
|
@ -49,9 +49,11 @@ AASA) und über Xcode (für Build + Sign).
|
|||
`cards/infrastructure/docker-compose.production.yml` hinterlegt
|
||||
(Commit folgt). Wird zur Runtime von `$env/dynamic/public`
|
||||
aufgelöst und in den AASA-Response geschrieben.
|
||||
- [ ] **Production-Deploy von cards-web** mit dem neuen Compose-Stand:
|
||||
`cd ~/projects/cards/infrastructure && docker compose -f docker-compose.production.yml up -d cards-web` auf mana-server.
|
||||
Erst danach liefert die AASA die echte Team-ID statt Platzhalter.
|
||||
- [x] **Production-Deploy von cards-web** durchgeführt 2026-05-13.
|
||||
Probe von außen: `curl https://cardecky.mana.how/.well-known/apple-app-site-association`
|
||||
liefert `application/json` mit `"appID":"QP3GLU8PH3.ev.mana.cardecky"`.
|
||||
Cloudflare-Tunnel reicht den Endpoint sauber durch (kein
|
||||
HTML-Captive, kein Redirect).
|
||||
- [ ] **cardecky-api.mana.how** muss erreichbar bleiben — die App
|
||||
ist 100% Online-write. Health-Probe verifizieren.
|
||||
|
||||
|
|
@ -84,12 +86,13 @@ AASA) und über Xcode (für Build + Sign).
|
|||
### App-Store-Connect
|
||||
|
||||
- [ ] **App-Eintrag erstellen** unter https://appstoreconnect.apple.com
|
||||
mit Bundle-ID `ev.mana.cards`.
|
||||
mit Bundle-ID `ev.mana.cardecky`.
|
||||
- [ ] **App-Name** + **Subtitle** (max 30 Zeichen):
|
||||
- Name: "Cards"
|
||||
- Subtitle: "Karteikarten — Verein mana"
|
||||
- [ ] **Description** (de + en, max 4000 Zeichen). Vorschlag siehe
|
||||
`docs/MARKETING_COPY.md` (existiert noch nicht — TODO).
|
||||
- [ ] **Description** (de + en, max 4000 Zeichen). Vorschlag in
|
||||
[`docs/MARKETING_COPY.md`](MARKETING_COPY.md) — vor Submission
|
||||
gegenlesen und Vereins-Tonalität schärfen.
|
||||
- [ ] **Keywords** (max 100 Zeichen, comma-separated):
|
||||
"Karteikarten,Spaced Repetition,Lernen,Vokabeln,Anki,Flashcards,FSRS,mana,Verein,Open Source"
|
||||
- [ ] **Screenshots** für iPhone 16 Pro Max + iPhone SE-3 + iPad Pro.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue