pageta-native/README.md
Till JS 90a59d517f README: Bibliotheken sind offen — Bauweg aus git.mana.how/offen
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-30 16:08:42 +02:00

108 lines
4.6 KiB
Markdown

# pageta-native
Native SwiftUI Universal-App (iOS + iPadOS + macOS) für **Pageta**,
die Reader-App des Vereins mana
Bundle: `ev.mana.pageta` · Team: `QP3GLU8PH3` · Backend:
`api.pageta.com` · Auth: `auth.mana.how`.
- Lizenz: [AGPL-3.0-or-later](LICENSE) — siehe [`COPYRIGHT`](COPYRIGHT)
- Web-App und Server: [git.mana.how/offen/pageta](https://git.mana.how/offen/pageta)
- Android: [git.mana.how/offen/pageta-android](https://git.mana.how/offen/pageta-android)
Bauen braucht die vier mana-Swift-Bibliotheken — offen unter
[git.mana.how/offen](https://git.mana.how/offen), Apache-2.0 — so abgelegt,
wie `project.yml` sie erwartet (`../../../libs/mana-swift-*` relativ zu diesem
Ordner), dazu XcodeGen und für Geräte ein Apple-Developer-Konto:
```bash
mkdir -p libs && for r in mana-swift-core mana-swift-llm mana-swift-event-sync mana-swift-ui; do
git clone https://git.mana.how/offen/$r.git libs/$r
done
mkdir -p apps/pageta && git clone https://git.mana.how/offen/pageta-native.git apps/pageta/ios
```
Zur Laufzeit braucht die App die mana-Plattform (Anmeldung, Sync).
## Status
**Feature-komplett (π-0..π-9 + π-11), TestFlight offen.** Voll
ausgebaute Universal-App: Feed, Lese-Liste, nativer Reader mit
Highlights/Notizen, Markierungen-Tab, Recherche, Konto (inkl. In-App-
Account-Löschung), ShareExtension + Widget. Local-first über
Event-Sourcing (`sync2.mana.how`), Feed/Extract-Preview HTTP-only.
**Build-Stand (2026-05-29, Xcode 26.3):** macOS ✅, iOS Device/Archive
✅ — **TestFlight nicht blockiert**. Nur der iOS-**Simulator**-Build ist
gebrochen (simulator-spezifische MLX-Macro-Arch-Kollision auf Apple
Silicon → auf Device/„My Mac" entwickeln). Details in
[`STATUS.md`](STATUS.md). Offen bleibt π-10 (ASC + TestFlight-Upload).
Vollständiger Plan + Phasen-Historie: [`STATUS.md`](STATUS.md) ·
[`mana/docs/playbooks/PAGETA_NATIVE_GREENFIELD.md`](../mana/docs/playbooks/PAGETA_NATIVE_GREENFIELD.md).
## Lokal entwickeln
Voraussetzungen:
- Xcode 16+
- `mana-swift-core` + `mana-swift-ui` als Schwester-Repos
ausgecheckt unter `../mana-swift-core` und `../mana-swift-ui`
- Apple-Developer-Account mit Team `QP3GLU8PH3`-Mitgliedschaft
- XcodeGen (`brew install xcodegen`)
```bash
./scripts/xcodegen # → PagetaNative.xcodeproj (mit macOS-Share-Patch)
./scripts/build-icon.sh # → AppIcon-PNGs (1024+512) aus SVG
open PagetaNative.xcodeproj
# Cmd+R im Simulator (iOS oder macOS)
```
Der `scripts/xcodegen`-Wrapper umgeht einen XcodeGen-Bug, durch den
`platformFilter: macOS` fälschlich als `maccatalyst` in die pbxproj
geschrieben wird. Ohne den Patch wird die macOS-Share-Extension nicht
ins App-Bundle embeddet.
Icon-Regeneration ist nur nötig wenn sich das SVG in
`../pageta/apps/web/static/icon-512.svg` ändert. Das Script nimmt
`rsvg-convert` (Homebrew librsvg) wenn vorhanden, sonst `qlmanage`
(macOS built-in Fallback).
## Apple-Dev-Portal-Pre-Conditions
Vor erstem TestFlight-Build registrieren:
- Bundle-IDs:
- `ev.mana.pageta` (Main App)
- `ev.mana.pageta.widget` (kommt mit π-7)
- `ev.mana.pageta.share` (kommt mit π-6)
- App-Group `group.ev.mana.pageta`
- Capabilities: Associated Domains, App Groups, Keychain Sharing
## Cross-Repo-Doks
- [`../mana/docs/playbooks/PAGETA_NATIVE_GREENFIELD.md`](../mana/docs/playbooks/PAGETA_NATIVE_GREENFIELD.md) — Plan + Phasen π-0…π-10
- [`../mana/docs/MANA_SWIFT.md`](../mana/docs/MANA_SWIFT.md) — Native-Koordination
- [`../mana-swift-core/CLAUDE.md`](../mana-swift-core/CLAUDE.md) — ManaCore + ManaTokens
- [`../mana-swift-ui/CLAUDE.md`](../mana-swift-ui/CLAUDE.md) — ManaAuthUI
- [`../pageta/CLAUDE.md`](../pageta/CLAUDE.md) — Web-App + API
- [`../pageta/STATUS.md`](../pageta/STATUS.md) — Web-Stand
## Für Mitlesende
Dieses Repo gehört zum Ökosystem von [mana](https://mana.how) und liegt
offen, damit andere es lesen, einordnen und als Grundlage nutzen können —
das spart Arbeit, egal ob ein Mensch oder ein Modell davorsitzt.
**Was du erwarten darfst:** den Code so, wie er tatsächlich in Gebrauch ist,
unter AGPL-3.0-or-later. Keine Attrappe, kein zurechtgeschnittener Auszug —
samt seiner Geschichte. Die Querverweise auf `../mana/…` zeigen
auf das Plattform-Repo, das geschlossen bleibt.
**Was du nicht erwarten darfst:** Support, Antwortzeiten, Zusagen zur
Abwärtskompatibilität oder die Übernahme von Änderungswünschen. Fehlermeldungen
sind willkommen (am schnellsten über den Feedback-Knopf auf pageta.com), eine
Antwort ist nicht zugesagt.
**Fork ist ausdrücklich erlaubt** und oft der schnellere Weg als zu warten.
Wer die App verändert und als Dienst anbietet, legt seine Änderungen offen —
das verlangt die AGPL (§13).