Files
FEDEO/mobile/README.md

46 lines
2.3 KiB
Markdown

# FEDEO Mobile
Expo/React-Native-App für FEDEO. Der iOS-TestFlight-Build wird als Store-Build erstellt und enthält das JavaScript-Bundle. Metro wird dafür nicht benötigt.
## Voraussetzungen
- Node.js `22.22.3` verwenden, siehe `.nvmrc`.
- EAS CLI installieren oder über `npx eas-cli` ausführen.
- Apple Developer Zugriff für `software.federspiel.fedeo`.
- Produktions-API ist im EAS-Profil `testflight` auf `https://app.fedeo.de/backend` gesetzt.
## Entwicklung im Simulator
Wenn Port `8081` lokal belegt ist, Metro auf einem freien Port starten und den Simulator auf diesen Port setzen:
```bash
npx --yes -p node@22 node ./node_modules/expo/bin/cli start --dev-client --localhost --port 8082 --clear
xcrun simctl spawn booted defaults write software.federspiel.fedeo RCT_jsLocation '127.0.0.1:8082'
xcrun simctl spawn booted defaults write software.federspiel.fedeo RCT_packager_scheme 'http'
xcrun simctl terminate booted software.federspiel.fedeo
xcrun simctl launch booted software.federspiel.fedeo
```
## TestFlight vorbereiten
Der Preflight prüft Lint, die mobilen Chat-Regressionstests und Expo Doctor. Für eine separate Typprüfung: `npx tsc --noEmit`.
```bash
npm run preflight:testflight
npm run build:ios:testflight
```
Nach erfolgreichem EAS-Build:
```bash
npm run submit:ios:testflight
```
Der TestFlight-Build nutzt das EAS-Profil `testflight` aus `eas.json` mit Store-Distribution und automatischer Buildnummer-Erhöhung.
## Mobile Chats
Die Kommunikation zeigt interne Gruppen-, Projekt- und Direktchats sowie lokale und föderierte Unterräume mit bestehender Mitgliedschaft. Einladungen können angenommen oder abgelehnt werden. Leserechte, freigegebene Projektinformationen und wartende beziehungsweise fehlgeschlagene Zustellungen werden berücksichtigt. Bilder werden vor dem Senden verkleinert; Reaktionen funktionieren in beiden Chatarten.
Ausgeblendete Chats verwenden dieselben benutzer- und mandantenbezogenen Einstellungen wie das Web. Die App lädt sie beim Öffnen, beim Zurückkehren in den Vordergrund und während der Nutzung regelmäßig neu. Ausgeblendete Räume zählen nicht zum Chat-Badge und können über das Augensymbol wieder eingeblendet werden. Nachrichtenentwürfe bleiben beim Raumwechsel innerhalb derselben Sitzung erhalten und werden bei einem Sitzungswechsel verworfen.