Files
FeelAloud/README.md
2026-07-22 22:18:33 +02:00

152 lines
5.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# FeelAloud
**FeelAloud** ist eine native, datensparsame iPhone-App für sprachbasierte
Stimmungseinträge und kurze emotionale Check-ins. Der Name steht für zwei
Gedanken: Gefühle laut aussprechen (*feel aloud*) und Gefühle haben dürfen
(*feel allowed*).
Die App besitzt kein Benutzerkonto und keinen eigenen Server. Tagebuchdaten,
Momentaufnahmen und Einstellungen verbleiben im App-Container auf dem iPhone.
Spracherkennung und strukturierte Auswertung sind ausdrücklich auf lokale
Apple-Technologien konfiguriert.
## Funktionsumfang
- Spracheinträge mit lokaler deutscher Spracherkennung
- Strukturierung des gesprochenen Texts mit Apples Foundation Models
- Manuelle Kontrolle und Korrektur vor dem Speichern
- Schneller Check-in mit fünf Stufen von **Sehr gut** bis **Sehr schlecht**
- Zwei oder drei frei einstellbare lokale Erinnerungen pro Tag
- Kontextfrage beim nächsten normalen Öffnen am selben Tag nach auffälligen
Check-ins (**Sehr gut**, **Schlecht** oder **Sehr schlecht**)
- Verlauf für 7 Tage, 30 Tage, alle Daten oder einen eigenen Zeitraum
- Liniendiagramm und Durchschnitt für den gewählten Zeitraum
- Echter Excel-Export (`.xlsx`) mit Übersicht, Check-ins und Tagebucheinträgen
- CSV-Export im bisherigen Numbers-kompatiblen Format
- App Intent **Eintrag aufnehmen** für Kurzbefehle und den Action Button
## Technische Voraussetzungen
- Apple-Intelligence-kompatibles iPhone
- iOS 26 oder neuer
- Apple Intelligence aktiviert und vollständig eingerichtet
- Lokale deutsche Spracherkennung auf dem Gerät verfügbar
- Mac mit Xcode 26 oder neuer
- Für TestFlight: aktive Mitgliedschaft im Apple Developer Program
Die App ist ausschließlich für das iPhone konfiguriert
(`TARGETED_DEVICE_FAMILY = 1`). Eine iPad-Oberfläche gehört derzeit nicht zum
Projektumfang.
## Projekt öffnen und starten
1. Repository auf einen Mac klonen.
2. `FeelAloud.xcodeproj` mit Xcode 26 oder neuer öffnen.
3. Projekt **FeelAloud** und Target **FeelAloud** auswählen.
4. Unter **Signing & Capabilities** das eigene Development Team wählen.
5. Prüfen, ob die Bundle-ID `de.feelaloud` im Team verfügbar ist;
andernfalls eine eigene eindeutige Reverse-DNS-ID eintragen.
6. Ein geeignetes iPhone auswählen und mit **Run** (`⌘R`) installieren.
Beim ersten Spracheintrag fragt iOS nach Mikrofon- und
Spracherkennungszugriff. Die Mitteilungsfreigabe wird erst angefragt, wenn die
täglichen Erinnerungen aktiviert werden.
## Build ohne Code Signing
Auf einem Mac kann ein Simulator-Build beispielsweise so geprüft werden:
```bash
xcodebuild \
-project FeelAloud.xcodeproj \
-scheme FeelAloud \
-sdk iphonesimulator \
-destination 'generic/platform=iOS Simulator' \
CODE_SIGNING_ALLOWED=NO \
build
```
Die lokale Foundation-Models-Funktion muss zusätzlich auf einem echten,
kompatiblen iPhone geprüft werden. Simulator-Ergebnisse ersetzen diesen Test
nicht.
## TestFlight
Der vollständige Ablauf einschließlich App Store Connect, Archivierung,
Build-Nummer und Testerfreigabe steht in
[docs/TESTFLIGHT.md](docs/TESTFLIGHT.md).
## Datenschutz und sensible Daten
FeelAloud verarbeitet persönliche Stimmungseinträge. Deshalb gelten im Projekt
folgende Grundsätze:
- kein Konto, kein eigenes Backend und kein API-Schlüssel;
- lokale SwiftData-Speicherung;
- lokale Spracherkennung durch `requiresOnDeviceRecognition = true`;
- lokale Auswertung durch `SystemLanguageModel`;
- lokale Mitteilungen statt eines Push-Servers;
- Export nur nach ausdrücklicher Aktion der Person über das iOS-Share-Sheet;
- keine Analyse-, Werbe- oder Tracking-SDKs.
Details, Grenzen und Hinweise für die App-Store-Datenschutzangaben sind in
[docs/PRIVACY.md](docs/PRIVACY.md) dokumentiert. Das Projekt enthält außerdem
ein `PrivacyInfo.xcprivacy`-Manifest.
## Architektur
| Bereich | Umsetzung |
| --- | --- |
| Oberfläche | SwiftUI |
| Persistenz | SwiftData |
| Spracheingabe | Speech + AVFoundation, Deutsch, lokal erzwungen |
| Lokale KI | Foundation Models mit typisierter `@Generable`-Antwort |
| Diagramm | Swift Charts |
| Erinnerungen | UserNotifications, täglich wiederholend |
| Export | Eigener XLSX/ZIP-Writer und CSV |
| Systemintegration | App Intents und UIKit Share Sheet |
Eine ausführliche Beschreibung der Komponenten und Datenflüsse befindet sich
in [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md).
## Qualitätssicherung
Die manuelle Abnahmecheckliste steht in
[docs/QA-CHECKLIST.md](docs/QA-CHECKLIST.md). Sie umfasst unter anderem:
- Erststart und Berechtigungen;
- lokale Spracheingabe und KI-Fallback;
- alle fünf Check-in-Stufen und Kontextfragen;
- Erinnerungen bei Vordergrund-, Hintergrund- und Kaltstart;
- Datumsfilter, Diagramm, XLSX- und CSV-Export;
- Action Button, Dynamic Type, VoiceOver und Dark Mode.
## Aktuelle Grenzen
- Die Oberfläche und Auswertungsanweisungen sind derzeit deutschsprachig.
- Foundation Models und lokale Spracherkennung hängen von Geräte-, Sprach- und
Apple-Intelligence-Verfügbarkeit ab; eine manuelle Eingabe bleibt möglich.
- Es existiert noch keine versionierte SwiftData-Migrationsstrategie.
- Automatisierte UI- und Unit-Tests sind noch nicht als eigenes Test-Target
eingerichtet.
- Eine Löschung aller gespeicherten Daten innerhalb der App ist noch nicht
vorhanden; bis dahin entfernt das Löschen der App den lokalen App-Container.
FeelAloud dient der persönlichen Dokumentation. Die App stellt keine
medizinische Diagnose, Therapie oder Krisenhilfe bereit.
## Repository-Struktur
```text
FeelAloud.xcodeproj/ Xcode-Projekt und Build-Konfiguration
FeelAloud/ Swift-Quellcode, Assets und Privacy Manifest
docs/ Architektur-, Datenschutz-, Test- und Release-Doku
AppIcon.svg Bearbeitbare Vektorquelle des App-Icons
CHANGELOG.md Versionshistorie
```
## Version
Aktueller Projektstand: **1.0 (Build 1)**. Änderungen werden in
[CHANGELOG.md](CHANGELOG.md) festgehalten.