Mimi
Eine iOS-App, die den Zyklus dokumentiert und ehrlich sagt, was die Daten hergeben: Zeiträume und Sicherheit statt scheinbar exakter Termine. Alles bleibt lokal auf dem Gerät, ohne Konto, in Deutsch und Englisch.



- Plattform
- iOS 18+, SwiftUI, SwiftData
- Sprache
- Swift 6.2, strikte Nebenläufigkeit
- Architektur
- Swift-Package aus 13 Modulen, Schichtgrenzen vom Compiler erzwungen
- Datenschutz
- Local-first: kein Konto, kein Netzwerk, kein Tracking
- Tests
- 503, die Kern-Suite läuft in Sekunden
- Sprachen
- Deutsch und Englisch
Stand: September 2026. Die Zahlen für Tests und Module liest ein Skript aus dem Xcode-Projekt aus, sie sind nicht getippt.
Ausgangslage
Zyklus-Apps sind die Kategorie, in der Unehrlichkeit am leichtesten fällt: drei Zyklen mitteln, ein Datum anzeigen, fertig. Das Datum wirkt verbindlich, trägt seine Unsicherheit nicht mit und liegt oft genug daneben, um zu schaden. Dazu kommen die sensibelsten Daten, die ein Mensch hat, und zwei Sprachen, in denen jeder Satz über den eigenen Körper stimmen muss. Gefragt war ein Produkt, dessen Versprechen nicht von Disziplin abhängen, sondern vom Code.
Mein Ansatz
Die gesamte Logik liegt in einem reinen Swift-Package aus 13 Modulen, und der Abhängigkeitsgraph ist die Architektur: Die Auswertung kann keinen Gesundheitsdatentyp benennen, ein Export kann keine Schätzung enthalten, und Logging, Einstellungen und Datenbankabfragen sind auf je eine Datei begrenzt. Jeder Satz über den Zyklus stammt aus einem versionierten, zweisprachigen Katalog und erreicht den Bildschirm nur als Typ, den ausschließlich das Sicherheitsmodul erzeugen kann – ein roher Text kompiliert an dieser Stelle nicht. Eine deterministische Berechnung liefert Zeitraum, Sicherheit und Datenqualität und verweigert die Schätzung, wenn die Grundlage zu dünn ist. Der KI-Teil darf ausschließlich erklären, was vorher berechnet wurde.
Ergebnis
Ein Zyklus-Tracker, der vollständig offline funktioniert, ohne Konto, in Deutsch und Englisch. 503 Tests laufen in Sekunden und prüfen unter anderem, dass ein Sommerzeittag in jeder Zeitzone genau ein Tag ist und dass jede Farbe in vier Erscheinungsbildern WCAG AA erfüllt. Auf dem Bildschirm ist ein Fakt erhaben und eine Schätzung zurückgenommen: durchgezogen heißt gemessen, gestrichelt heißt geschätzt. Was die App über einen Körper sagen darf, steht an einer Stelle und lässt sich in einer Sitzung vollständig prüfen.