
case-study
Flashcards App
Ein nativer iOS-Vokabeltrainer auf Basis der Oxford 3000 – sechs Übungsmodi, Spaced Repetition und eine Spielebene, komplett offline auf dem Gerät.
- Vokabeln
- Oxford 3000
- Spaced Repetition
- Deutsch ↔ Englisch
- Eigene App
- Swift
- SwiftUI
- iOS 26
- Swift Testing
das Problem
Warum ich es gebaut habe
Ich wollte meinen englischen Wortschatz ernsthaft erweitern. Die Apps, die ich ausprobiert habe, lagen für mich aber alle am falschen Ende: Die großen wie Duolingo sind stark gamifiziert und komplex, die meisten anderen Trainer richten sich an Menschen, die eine Sprache von null lernen.
Für alle, die bereits eine solide Basis haben und einfach weiterkommen wollen, gab es kaum etwas. Also habe ich die Messlatte anders gelegt: ein Trainer auf Basis der Oxford 3000 – den 3.000 wichtigsten englischen Wörtern.
Kein standardisiertes Grundschulvokabular, sondern die pragmatischen Wörter mit echtem Hebel. Genau diese App gab es nicht, also habe ich sie gebaut.
Dahinter stand noch ein zweiter Antrieb. Eigene Apps zu bauen fasziniert mich seit Jahren, und ich wollte herausfinden, was ich allein tatsächlich fertigstellen kann – mit KI als Partner, vom leeren Xcode-Projekt bis zu etwas, das ich täglich benutze.
der Ansatz
Die Produktentscheidungen
Zuerst gab es genau einen Nutzer: mich. Die App lebt auf dem Telefon und sonst nirgends – kein Konto, kein Backend, keine Synchronisation. Jedes Wort, jede Antwort und jeder Punkt liegen im Speicher des Geräts, nichts wird irgendwohin geschickt.
Dieser Rahmen hat die erste Version ehrlich gehalten, und er gilt bis heute unverändert.
Die wichtigste Entscheidung war der Datensatz. Die offizielle Oxford 3000 – 2.999 Wörter – liegt als JSON in der App, die Abfragerichtung Deutsch ↔ Englisch lässt sich umdrehen.
Dazu sind sechs weitere Listen gekommen: unregelmäßige Verben, Business English, Redewendungen, Phrasal Verbs, ein C1-Aufbau und eine eigene Liste – mit der Oxford 3000 zusammen rund 3.600 Wörter. Nichts davon kostet Geld; jede Liste öffnet sich stattdessen ab einem bestimmten Level.
Ein Wortschatz, viele Blickwinkel: Dieselben Wörter speisen sechs Übungsmodi. Dadurch wird das tägliche Üben nicht zur immergleichen Abfrage – und XP, Wortstatus und Wiederholungsplan gelten modusübergreifend, egal wo die Antwort gefallen ist.
Statt eines Menüs gibt es Fortschritt. Man startet mit den Karteikarten, nach denen die App benannt ist; Memory kommt ab Level 2 dazu, das Quiz ab 3, der Tipp-Modus ab 5, Drag & Drop ab 7 und das Wisch-Quiz ab 9. Vokabellisten schalten sich genauso frei. Das ist bewusst langsam aufgebaut: Die erste Sitzung zeigt eine Übung und eine Liste, keine Wand aus Optionen.
Für die Oberfläche habe ich Apples transluzenten Liquid-Glass-Look gewählt. Im Rebuild ist die selbstgebaute Navigation zugunsten der nativen iOS-26-Tableiste rausgeflogen – einerseits, weil sich das direkt in Xcode gut umsetzen ließ, andererseits, weil ich diesen Stil schlicht schön finde.
die Praxis
Sechs Wege durch denselben Wortschatz
Die Karteikarten sind der Kern: Karte aufdecken, dann sich selbst einschätzen – nochmal, schwer, gut oder einfach. Das ist die einzige Stelle, an der man die eigene Antwort selbst benotet; in allen anderen Modi bewertet die App.
Memory macht aus einer Runde Kartenpaare zum Aufdecken. Das Quiz gibt vier Optionen und eine Antwort, mit sofortiger Rückmeldung. Der Tipp-Modus verlangt, die Übersetzung selbst zu schreiben – die ehrlichste Prüfung dessen, was wirklich hängengeblieben ist, mit einer Tippfehler-Toleranz, die Groß- und Kleinschreibung und kleine Vertipper akzeptiert, statt einen fehlenden Buchstaben zu bestrafen.
Drag & Drop ordnet Begriffe und Übersetzungen auf Zeit zu. Und das im Rebuild ergänzte Wisch-Quiz zeigt ein Wort mit einem Übersetzungsvorschlag: nach rechts wischen, wenn er passt, nach links, wenn nicht.
Jeder Modus startet aus derselben zweistufigen Auswahl: welche Liste, welcher Status – alle, ungelernt, richtig, falsch, unsicher, gelernt oder Favoriten. Nur die Wörter zu üben, die letzte Woche falsch waren, kostet zwei Taps und ist kein eigenes Feature.
Die Einstellungen formen dabei die Abfrage, nicht die App: Eine Runde umfasst 10, 20, 30, 50 Wörter oder ist unbegrenzt, die Richtung lässt sich umkehren, „Automatisch weiter“ springt nach einer richtigen Antwort selbst zum nächsten Wort. Und ein Tippen auf das Lautsprecher-Symbol liest das Wort vor – offline, im gewählten Sprechtempo und mit amerikanischem oder britischem Akzent.
cleveres Lernen
Was die App für dich entscheidet
Die erste Version hatte überhaupt keine Wiederholungslogik – sie zeigte Wörter, und was damit passiert, entschied man selbst. Das nachzurüsten ist die größte Veränderung, die die App durchlaufen hat.
Darunter liegt jetzt Spaced Repetition: eine Leitner-Leiter mit Intervallen von 1, 2, 4, 8, 16, 32 und 60 Tagen, dazu pro Wort ein SM-2-Ease-Faktor zwischen 1,3 und 3,0. Eine richtige Antwort vergrößert den Abstand, eine falsche setzt ihn zurück.
In den Karteikarten fließt die eigene Einschätzung in den Zeitplan, in den geprüften Modi benotet die App – dieselbe Antwort zählt also gleich, egal wo sie gefallen ist.
Zur Wahl stehen zwei Methoden, die sich nur darin unterscheiden, wie eng wiederholt wird: Wiederholung nach Plan behält die Standardintervalle, erwünschte Schwierigkeiten verkürzt sie bewusst, sodass Erinnern mehr Anstrengung kostet – kurzfristig härter, langfristig nachweislich besser.
Erreicht ein Wort die fünfte Box, ist es reif genug, um von allein aufzusteigen: Es wandert mit etwas Konfetti auf „gelernt“, statt auf einen Knopfdruck zu warten. Die Übersicht zählt, was heute fällig ist, und eine Kachel bietet die schwierigsten Wörter – die, bei denen man tatsächlich immer wieder danebenliegt – als fertige Runde an.
Für größere Ziele gibt es Lernpläne: eine Liste und 30, 60 oder 90 Tage wählen, und die App teilt das Ziel in Tagesportionen – für die komplette Oxford 3000 in einem Monat sind das rund 100 Wörter am Tag. Damit man nicht bei null anfängt, wenn man schon Englisch kann, bietet das Onboarding außerdem einen Einstufungstest mit acht Fragen, der das Startlevel setzt.
Ein Detail ist still datengetrieben: der Lerntipp auf der Übersicht. Regeln schauen auf den echten Stand – offene Fehler, Fortschritt zum Tagesziel, Serie, Trefferquote, Favoriten, Tageszeit – und wählen einen Tipp, der konkrete Zahlen nennt. Erst wenn keine Regel greift, kommt ein allgemeiner aus dem Bestand von 115 Tipps.
Motivation
Die Spielebene
Vokabeln sind weniger ein Verständnis- als ein Gewohnheitsproblem. Deshalb ist im Rebuild eine ganze Ebene entstanden, deren einziger Zweck es ist, mich an einem Dienstagabend dazu zu bringen, die App zu öffnen.
Die Basis sind Punkte: +4 für eine richtige Antwort, −2 für eine falsche, +8, wenn ein Wort auf „gelernt“ aufsteigt – und mehr, wenn man einen Fehler repariert: +10 für Fehler → richtig, +15 für Fehler → gelernt. Die Level laufen von 0 bis 100 auf einer Kurve, die stetig teurer wird, und jeder Abschnitt trägt einen Rang, vom Neuling bis zum Sprachhelden.
- Drei tägliche Quests, deren Ziele mit dem Level wachsen, plus eine Bonustruhe, wenn alle drei erledigt sind
- Eine Wochen-Challenge, eine Login-Belohnung über sieben Tage und eine Booster-Truhe mit 15 Minuten doppelter XP
- Eine Serie, geschützt durch Schneeflocken – eine gibt es alle fünf Level, eine friert einen Tag ein, zwei reparieren eine Lücke
- Zwanzig Abzeichen, ein selbst gesetztes Tagesziel und eine Statistik-Karte, die sich als Bild teilen lässt
Am zufriedensten bin ich mit der Leitplanke: Ein Wort zahlt nur einmal pro Tag aus. Dieselben einfachen Karten immer wieder anzutippen bringt danach nichts mehr, während das eigentliche Lernen – Zeitplan, Status, Verlauf – unabhängig davon weiterläuft. Eine Spielebene, die sich farmen lässt, ist eine Spielebene, die nichts mehr bedeutet.
Erinnerungen runden das ab, und sie werden alle auf dem Gerät geplant: ein täglicher Anstoß, der sich an die gewohnte Lernzeit anpassen kann, eine Warnung, wenn die Serie in Gefahr ist, ein Wochenrückblick am Sonntag und ein Hinweis nach zwei stillen Tagen. Dafür verlässt nichts das Telefon.
was ich gebaut habe
Das Produkt
Flashcards ist eine native iOS-App – durchgehend SwiftUI, rund 12.800 Zeilen in 70 Swift-Dateien, gebaut gegen iOS 26 und vollständig auf dem Gerät laufend. Nativ zu bauen war für mich der eigentliche Punkt: Ich bin ein App-Mensch und nehme eine native App jederzeit vor einem Browser-Tab – und ich wollte aus erster Hand wissen, wie sich Swift und Xcode anfühlen.
Die App hat vier Tabs. Die Übersicht trägt den Level-Ring, die Zähler für offen, heute, Woche und fällig, die Kachel mit den schwierigsten Wörtern und die Statistiken dahinter – Trefferquote im Verlauf, eine Serien-Heatmap, Erfolge. Im Lernen-Tab liegen Auswahl und die sechs Modi, im Challenge-Tab die Quests und Belohnungen, in der Sammlung die Vokabellisten, ein A–Z-Glossar mit Suche, Favoriten, Statusfilter und ein Quick-Add für eigene Wörter.
Die Einstellungen sind zu einem eigenen kleinen Produkt geworden: Abfrage, Audio, Haptik, Tagesziel, Lernmethode, vier Arten von Erinnerung, Wochenbeginn, Erscheinungsbild, ein In-App-Umschalter für die komplette Oberfläche auf Deutsch oder Englisch, Feedback direkt in einen Mail-Entwurf und ein Backup, das sich als Datei exportieren und auf einem anderen Gerät wieder importieren lässt.
Unter der Haube bleibt es bewusst schlicht. Alles liegt in UserDefaults hinter einer Cache-Schicht, Views aktualisieren sich über Notifications, und die zweisprachige Oberfläche läuft über einen winzigen L(de, en)-Helfer statt über eine Lokalisierungs-Pipeline. Der Lernkern – Spaced Repetition, XP, Backup, Gamification – ist von 23 Swift-Testing-Fällen abgedeckt; genau der Teil, den ich früher für überflüssig gehalten hätte und heute nicht mehr hergeben würde.
der Rebuild
Der Rebuild mit Claude Code
Die erste Version ist ein Jahr zuvor im Wechselspiel mit ChatGPT entstanden: Code-Blöcke markieren, umschreiben lassen und mich gerade so weit in Swift einlesen, dass ich steuern konnte. Das war langsam und fehleranfällig, die Architektur darunter wackeliger, als mir lieb war – und das Projekt lag nicht einmal in Git. Es funktionierte, aber es war ein Erste-App-Fundament.
Der Rebuild hat die Methode verändert, nicht nur den Code. Mit Claude Code liegt das Projekt in einem Repository, Änderungen kommen als Commits, die ich lese, und die Architektur ist etwas, das ich entscheide, statt etwas, das entsteht: eine App-Schicht, Models, Services und nach Bereichen getrennte Views. Fünfzig Commits später ist es eine andere App.
Konkret gebracht hat das: echte Spaced Repetition statt der alten, rein zählenden Aufstiegsregeln; einen sechsten Modus; den kompletten Challenge-Tab; lokale Benachrichtigungen; ein Onboarding mit Einstufungstest; Backup und Wiederherstellung; das Abzeichensystem; die native Tableiste – und ein Test-Target, mit dem ich die Lernlogik ändern kann, ohne die Luft anzuhalten.
Die Lehre daraus reicht über diese App hinaus. Der erste Anlauf war KI, die Code schreibt, den ich einfüge; der zweite war KI, die in meinem Repository arbeitet, auf meiner Struktur, gegen meine Tests. Der Unterschied in dem, was danach wartbar bleibt, ist enorm – und genau deshalb sind Wunderplanning und Lawn Slide so entstanden, wie sie entstanden sind.
das Ergebnis
Pausiert – nicht aufgegeben
Beide alten Gründe sind weg. Das Fundament ist keine Hypothek mehr: Es liegt in Git, es ist strukturiert, es ist getestet. Und den Entwickleraccount gibt es inzwischen – das Neusignieren alle sieben Tage, durch das die App still vom Telefon verschwand, ist damit schlicht kein Thema mehr.
Übrig ist eine Liste bis zum Release, und sie ist kurz:
- CloudKit, damit der Fortschritt geräteübergreifend mitwandert statt auf einem Telefon zu liegen
- StoreKit 2 samt Shop hinter den Wortlisten, die heute über Level freigeschaltet werden
- Ein vollständiger Durchgang durch die App – jeder Modus, jede Kante, am Stück
- App Store Connect: Eintrag, Review, Veröffentlichung
Nichts davon ist unklare Arbeit, es ist nur Arbeit, die gerade nicht passiert. Ein Spielprojekt hat sich davorgeschoben, es hat bereits erste Nutzer und erste Käufe – und das verdient Priorität: Mir ist lieber, ein Projekt fertig zu machen, als vier auf achtzig Prozent zu halten.
Flashcards ist deshalb bewusst geparkt, mit einer Notiz, wo es weitergeht. Es wird fertig gebaut, nur eben nicht in diesem Monat.
Der größere Gewinn ist ohnehin längst in meine Arbeit geflossen. Flashcards war meine erste vollständige native App, und sie von vorn bis hinten zu bauen – Datenmodell, Lernlogik, XP-Mathematik, Charts, das komplette SwiftUI-Interface – hat mich weit über den Web-Stack hinausgebracht, zu dem ich sonst greife.
Sie hat außerdem eine Überzeugung gefestigt, auf der auch Wunderplanning und Lawn Slide aufbauen: Mit den heutigen Werkzeugen muss man kein ausgebildeter Entwickler sein, um echte Software zu bauen. Man muss technisch neugierig sein und wissen, was man will.





























