Symi ist ein lokal-first Migräne Tagebuch für mehr gute Tage. Die App kombiniert einen schnellen, ruhigen Eintrag mit persönlichem Tagebuch, Wetterkontext, Medikamentendokumentation und Export.
Der aktuelle Stand der App deckt diese Bereiche ab:
- Tagebuch für Schmerzereignisse mit den Typen
Migräne,KopfschmerzundUnklar - schneller neuer Eintrag mit Intensität, Zeitpunkt und optionalen Zusatzangaben
- Symptome, Trigger, Notizen, Schmerzlokalisation, Schmerzcharakter und funktionelle Einschränkung
- Medikamentendokumentation inklusive eigener Vorlagen
- Wetter-Snapshots über
Apple WeathermitWeatherKit - Tagebuchansicht mit Kalender, Tagesauswahl, Detailansicht, Bearbeiten und Papierkorb
- PDF-Bericht und JSON5-Backup für frei wählbare Zeiträume
- optionale iCloud-Synchronisation mit Konfliktanzeige, Cloud-Datenverwaltung und Sync-Protokoll
Die App bleibt klar migränefokussiert, fühlt sich aber bewusst nicht wie ein medizinisches Formular an. Das Produktversprechen ist ein ruhiger, hochwertiger und alltagstauglicher Gesundheitsbegleiter:
- Beschwerden schnell dokumentieren, ohne von langen Formularen ausgebremst zu werden
- Muster, Trigger und Medikamentenwirkung nachvollziehbarer machen
- eigene Einträge mit belastbaren, exportierbaren Daten auswerten
- sensible Gesundheitsdaten standardmäßig lokal halten
- Typ wählen
- Intensität festhalten
- Zeitpunkt bestätigen oder anpassen
- optional Symptome, Trigger, Notiz, Wetter und Medikamente ergänzen
- lokal speichern
- Einträge im Kalender und pro Tag ansehen
- Details öffnen
- Einträge bearbeiten oder in den Papierkorb verschieben
- PDF-Bericht für einen Zeitraum erzeugen und teilen
- JSON5-Backup erzeugen oder importieren; enthalten sind Einträge, Medikamente, Wetter-Snapshots und gespeicherter Apple-Health-Kontext
- iCloud-Sync aktivieren oder deaktivieren
- Sync-Vertrag: halbautomatisch beim Aktivieren, danach bewusst manuell über
Jetzt synchronisieren; beim App-Start wird der gespeicherte Sync-Status geladen und der Provider vorbereitet, CloudKit-Subscriptions werden derzeit nicht angelegt - letzter Upload/Download, ungesyncte Records, stale Hinweise und offene Konflikte prüfen
- Konflikte einsehen und auflösen
- Cloud-Daten und Sync-Protokoll prüfen
- UI mit
SwiftUI - lokale Persistenz mit
SwiftData - Architektur
lokal-first - Zielplattform primär
iPhone - Mindestversion
iOS 17.6 - Wetterdaten über
Apple WeathermitWeatherKit - optionale Apple-Health-Integration mit versionsabhängigen HealthKit-Datentypen
- PDF-Erzeugung lokal auf dem Gerät
- optionale, manuell ausgelöste iCloud-Synchronisation getrennt von der lokalen Kernnutzung
Interne Apple-Developer-Identifier wie Bundle ID und iCloud-Container bestehen aus Migrations- und Release-Gründen weiterhin unter MigraineTracker, obwohl die sichtbare Produktmarke auf Symi umgestellt ist. Diese historischen Kennungen sind in docs/Historische-Identifier.md dokumentiert.
- Gesundheitsdaten bleiben ohne aktivierten Sync lokal auf dem Gerät
- der PDF-Export entsteht nur auf ausdrücklichen Befehl
- die App ist eine Dokumentationshilfe, keine Diagnose- oder Therapieempfehlung
- Apple Health ist optional; nicht auf allen iOS-Versionen verfügbare HealthKit-Daten werden nicht erzwungen
Die App setzt mindestens iOS 17.6 voraus. Diese Grenze erhält die aktuellen Swift-, SwiftUI- und SwiftData-Architekturentscheidungen ohne Backport- oder UI-Kompromisse. HealthKit-Datentypen, die erst in neueren iOS-Versionen verfügbar sind, werden separat per Availability behandelt und reduzieren auf älteren unterstützten Systemen nur den verfügbaren Health-Kontext.
Aus Release- und Migrationsgründen bleiben App-Identifier, Provisioning Profile und iCloud-Container technisch auf eu.mpwg.MigraineTracker beziehungsweise iCloud.eu.mpwg.MigraineTracker. Die sichtbare Produktmarke, Projektstruktur und Schemes heißen Symi.
Dieses Projekt verwendet GitHub Actions und fastlane für CI/CD.
CI:
- Workflow
iOS CIbeipull_requestundpushaufmain - Build und Tests für das Shared Scheme
Symi - Upload des
xcresultals Artifact - keine automatische Screenshot-Erstellung bei Pull Requests
CD:
- Workflow
TestFlightwird manuell aufrelease/*Branches gestartet - Workflow
App Store Releasewird manuell aufrelease/*Branches gestartet - App-Store-Screenshots und Metadaten sind versionierte Release-Artefakte unter
fastlane/ fastlane match,build_app,pilotunddeliverfür Signing und Distribution; die App-Store-Einreichung bleibt manuell in App Store Connect- keine Release-Automatik durch Pushes, Merges oder Tags
Der manuelle Release-Prozess ist in docs/Release-Prozess.md dokumentiert. Die projektspezifische Release-Einrichtung ist zusätzlich in docs/Xcode-Cloud.md dokumentiert.
Voraussetzungen:
- Xcode mit iPhone-Simulator
- lokales Secrets-File auf Basis von LocalSecrets.example.xcconfig
Einrichtung:
Symi/Configs/LocalSecrets.example.xcconfignachSymi/Configs/LocalSecrets.xcconfigkopieren.- Mindestens
APPLE_DEVELOPER_TEAM_IDsetzen. - Optional
SENTRY_DSNund weitere Release-Secrets ergänzen.
Typische lokale Prüfung:
xcodebuild test -scheme Symi -destination 'platform=iOS Simulator,name=iPhone 16'