Swift-Package-Plattform für alle nativen mana-e.V.-Apps. ManaCore (Auth, Transport) + ManaTokens (Vereins-Design). SOT: mana/docs/MANA_SWIFT.md
Acht Web-Themes aus @mana/themes (mana, forest, paper, neutral, lume, twilight, skylight, monochrome) sind jetzt als Swift verfuegbar. Generiert aus den CSS-Quellen via `pnpm --filter @mana/themes gen:swift`, hand-geschriebene API-Schicht oben drauf. Hintergrund: Cards, Viadocu, Nutriphi hatten je ~90 LOC forest-HSL- Apparat lokal nachgebaut. Mit v1.6.0 sind diese App-lokalen Files durch `ManaTheme.<variant>` ersetzbar (Audit 2026-05-17 V1). Neu: - `ManaTheme` (public enum) — 8 Cases, CaseIterable, Sendable - `ManaThemeColors` (public struct, Sendable) — 12 Tokens als Color - `ManaTheme.colors` + Convenience-Accessoren (`.background` etc.) - `View.manaTheme(_:)` + `@Environment(\.manaTheme)` (Default `.mana`) - Generator: `mana/packages/themes/scripts/gen-swift-themes.mjs` Geaendert: nichts breaking. `ManaColor.*` und `ManaBrand.*` unveraendert. Tests: 7 neue Tests in ThemeTests.swift; 12/12 ManaTokens grün, 76/76 gesamt grün auf macOS. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| devlog | ||
| Sources | ||
| Tests | ||
| .gitignore | ||
| .swiftformat | ||
| .swiftlint.yml | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| Package.swift | ||
| README.md | ||
mana-swift-core
Swift-Package-Plattform für alle nativen mana-e.V.-Apps.
Geteilter Code zwischen memoro-native, cards-native, nutriphi-native
und allen weiteren ev.mana.*-Apps. Analog zu @mana/* aus Verdaccio
für die Web-Plattform.
Products
- ManaCore — Auth (mana-auth-Login, JWT-Refresh, Keychain), Transport (URLSession-Wrapper mit 401-Retry).
- ManaTokens — Verein-Designwerte: Farben, Spacings, Typography,
Radius, SF-Symbol-Aliases. Spiegelt
mana/docs/THEMING.md.
Verwendung
Im project.yml einer nativen App:
packages:
ManaSwiftCore:
url: https://git.mana.how/till/mana-swift-core
from: 1.0.0
targets:
YourApp:
dependencies:
- package: ManaSwiftCore
product: ManaCore
- package: ManaSwiftCore
product: ManaTokens
Während Entwicklung lokal:
packages:
ManaSwiftCore:
path: ../mana-swift-core
Konventionen
Siehe CLAUDE.md für die vollständigen Regeln.
Übergeordneter Plan: mana/docs/MANA_SWIFT.md.
Lokal entwickeln
swift build
swift test
iOS + macOS-Targets, Swift 6 strict concurrency, keine externen Dependencies.