
case-study
Flashcards App
Ein bewusst einfacher, nativer iOS-Vokabeltrainer auf Basis der Oxford 3000 — den wichtigsten englischen Wörtern, kein Anfänger-Basiswissen.
- Vokabeln
- Oxford 3000
- Deutsch ↔ Englisch
- Eigene App
- Swift
- SwiftUI
- iOS
das Problem
Warum ich es gebaut habe
Ich wollte meinen englischen Wortschatz gezielt erweitern, aber die Apps, die ich ausprobiert habe, haben nie richtig zu mir gepasst. Große Anbieter wie Duolingo sind stark gamifiziert und oft ziemlich umfangreich. Viele klassische Vokabeltrainer richten sich dagegen eher an Menschen, die eine Sprache ganz neu lernen. Für Leute, die schon eine gute Grundlage haben und einfach ihren Wortschatz ausbauen wollen, gibt es erstaunlich wenig.
Deshalb wollte ich einen bewusst einfachen Trainer bauen, der auf den Oxford 3000 basiert – also auf den 3.000 wichtigsten englischen Wörtern. Kein typisches Schulenglisch, sondern Wörter, die im Alltag wirklich nützlich sind und dabei helfen, sicherer zu sprechen und Texte besser zu verstehen.
Eine App, die genau das bietet, habe ich nicht gefunden. Also habe ich sie selbst gebaut.
Es gab aber noch einen zweiten Grund: Eigene Apps zu entwickeln, hat mich schon lange gereizt. Ich wollte wissen, wie weit ich allein komme – mit KI als Unterstützung, angefangen bei einem leeren Xcode-Projekt bis hin zu einer App, die ich selbst jeden Tag nutzen kann.
der Ansatz
Die Produktentscheidungen
Am Anfang habe ich die App nur für einen einzigen Nutzer gebaut: für mich selbst. Sie sollte lokal auf meinem iPhone laufen und genau das können, was ich zum Lernen brauche. Dadurch blieb der Umfang überschaubar: keine Accounts, kein Backend und keine Funktionen, die ich selbst nicht nutzen würde.
Im Mittelpunkt steht eine einfache Selbsteinschätzung. Man deckt die Lösung auf und bewertet anschließend, ob man das Wort wusste, unsicher war oder es nicht wusste. Ich habe mich bewusst gegen einen komplizierten Spaced-Repetition-Algorithmus entschieden. Da es meine erste App war, wollte ich die Lernlogik so einfach und nachvollziehbar wie möglich halten.
Als die App später weit genug war, dass ich über eine Veröffentlichung nachgedacht habe, war die bestehende Logik schon so tief eingebaut, dass eine nachträgliche Umstellung auf Spaced Repetition wenig sinnvoll gewesen wäre.
Die Karteikarten sind dabei nur der Anfang. Dieselben Oxford-3000-Wörter speisen insgesamt fünf Modi, die das Vokabular jeweils aus einem anderen Blickwinkel abfragen: die klassische Karteikarten-Selbsteinschätzung; ein Quiz mit vier Optionen und einer Lösung, das in kurzen Runden direktes Feedback gibt; einen Tipp-Modus, in dem man die Übersetzung selbst eintippt — der ehrlichste Test dafür, was wirklich sitzt; ein Memory, bei dem man zusammengehörige Wortpaare findet; und einen schnellen Drag-and-drop-Modus, um Begriffe einander zuzuordnen. Der Wechsel zwischen ihnen hält das tägliche Üben abwechslungsreich, und die XP zählen über alle Modi hinweg.
Als Grundlage dienen die Oxford 3000, die direkt als JSON-Datei in der App liegen. Die Lernrichtung kann jederzeit zwischen Deutsch und Englisch gewechselt werden.
Darüber liegt ein einfaches Level- und XP-System. Eigentlich sollte es die Basis für die Spielmodi werden. Die Idee war, dass Lernen auch über längere Zeit motivierend bleibt und diese Modi mit steigendem Level nach und nach freigeschaltet werden. Man startet mit den Karteikarten, nach denen die App benannt ist, und die übrigen Modi kommen mit der Zeit dazu.
Für das Design habe ich Apples transluzenten „Liquid Glass“-Stil gewählt. Zum einen ließ er sich in SwiftUI relativ einfach umsetzen, zum anderen gefällt mir dieser Look einfach sehr gut.
was ich gebaut habe
Das Produkt
Flashcards ist eine native iOS-App, die vollständig in SwiftUI entwickelt wurde und komplett auf dem Gerät läuft. Es gibt keine externe Datenbank. Alle Wörter, Einstellungen und Lernfortschritte werden direkt in der App gespeichert.
Mir war wichtig, die App wirklich nativ zu bauen. Ich nutze selbst lieber eine richtige App als einen Browser-Tab und wollte verstehen, wie sich die Entwicklung mit Swift, SwiftUI und Xcode anfühlt.
Die App enthält die Oxford 3000 mit frei wählbarer Lernrichtung und fünf Übungsmodi — den Karteikarten-Trainer sowie Quiz, Tipp-Modus, Memory und Drag-and-drop. Dazu kommen Favoriten, eigene Wortlisten, ein Fehler-Tracker und eine Statistikansicht mit Trefferquote, Wochenverlauf und Erfolgen. Verbunden wird alles durch das modusübergreifende Level- und XP-System und die einheitliche Liquid-Glass-Oberfläche.
Ich muss aber auch ehrlich sagen: Ich habe die App gebaut, bevor es Tools wie Claude Code und Codex gab. Ich habe damals hauptsächlich mit ChatGPT gearbeitet, Codeblöcke markiert, umschreiben lassen und mir gerade genug Swift beigebracht, um die Entwicklung steuern zu können.
Dadurch war der Prozess langsam und teilweise fehleranfällig. Auch die technische Architektur ist nicht so sauber, wie ich sie heute aufbauen würde. Die App funktioniert, aber man merkt, dass sie auf dem Fundament meines ersten größeren App-Projekts steht. Das ist auch einer der Hauptgründe, warum sie bisher nicht im App Store erschienen ist.
das Ergebnis
Warum die App aktuell inaktiv ist – und was ich daraus gelernt habe
Es gibt vor allem zwei Gründe, warum ich die App irgendwann pausiert habe.
Der erste Grund ist Apples Entwicklerprogramm. Ohne einen kostenpflichtigen Entwickleraccount muss eine selbst installierte App regelmäßig über Xcode neu signiert werden. Das wusste ich vorher nicht. Dadurch war die App nach einigen Tagen immer wieder nicht mehr nutzbar und musste neu installiert werden.
Genau diese kleine, aber regelmäßige Hürde war am Ende der Hauptgrund, warum ich sie nicht dauerhaft genutzt habe. Solange sie installiert war, habe ich tatsächlich jeden Tag damit gelernt. Das ständige Neuinstallieren hat aber irgendwann genervt.
Der zweite Grund ist das technische Fundament. Es war meine erste native App und entsprechend gibt es einige technische Schulden. Außerdem lag das Projekt zu diesem Zeitpunkt noch nicht einmal sauber in Git. Bevor ich daran weiterarbeite, möchte ich die Grundlage deshalb neu und deutlich strukturierter aufbauen.
Trotzdem war das Projekt für mich extrem wertvoll. Flashcards war meine erste vollständige native App. Ich habe alles selbst umgesetzt: das Datenmodell, die Lernlogik, die XP-Berechnung, die Statistiken, die Charts und das komplette SwiftUI-Interface.
Dadurch habe ich viel über native App-Entwicklung gelernt und meinen Blick über den Web-Stack hinaus erweitert, mit dem ich sonst meistens arbeite.
Das Projekt hat außerdem eine Überzeugung gefestigt, auf der auch Wunderplanning und mein aktuelles Projekt aufbauen: Mit den heutigen Tools muss man kein klassisch ausgebildeter Entwickler sein, um echte Software zu bauen. Man muss technisch neugierig sein, das Problem verstehen und eine klare Vorstellung davon haben, was entstehen soll.
Wenn ich Flashcards wiederbelebe – und das ist gut möglich –, würde ich die technische Grundlage neu aufsetzen, diesmal mit Claude Code und Codex. Danach würde ich die fehlenden Benachrichtigungen ergänzen und die App endlich in den App Store bringen.



















