moodlit-native/Sources/Features/Onboarding/MoodlitOnboarding.swift
till 50202ed34d feat: geteilten ManaOnboardingUI-Einstiegsflow einbauen
Zwei Seiten (Werte, dann Features) im geteilten Apple-Stil-Onboarding, themed via manaTheme. Keine Berechtigungs-Abfrage; Konto nur als Fussnote. Einmalig beim ersten Start via @AppStorage-Gate.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 21:44:17 +02:00

60 lines
2.3 KiB
Swift

import ManaOnboardingUI
/// Die zwei Einstiegs-Seiten für Moodlit geliefert an den geteilten
/// ``ManaOnboardingUI``-Flow. Seite 1 erklärt die Haltung (warum es die
/// App gibt), Seite 2 zeigt, was sie konkret kann. Farben kommen aus dem
/// `manaTheme`, das die App ohnehin setzt.
///
/// Doktrin: genau zwei Seiten, keine Berechtigungs-Abfrage (HomeKit /
/// lokales Netz werden erst beim Verbinden einer Lampe erfragt), Konto
/// nur als dezente Fußnote auf Seite 2.
enum MoodlitOnboarding {
/// Versionierter Schlüssel `v1` erlaubt es, den Flow später bei
/// größeren Inhaltsänderungen erneut zu zeigen.
static let storageKey = "ev.mana.moodlit.onboarding.v1"
@MainActor static let pages: [ManaOnboardingPage] = [
ManaOnboardingPage(
title: "Willkommen bei Moodlit",
intro: "Stimmungslicht für deinen Raum — gemacht vom Verein mana e.V.",
rows: [
ManaOnboardingPage.Row(
symbol: "lock.shield",
title: "Läuft ohne Konto",
text: "Die mitgelieferten Moods kannst du sofort abspielen — ohne Anmeldung, ohne Cloud."
),
ManaOnboardingPage.Row(
symbol: "heart",
title: "Kein Geschäft mit dir",
text: "Keine Werbung, kein Tracking, keine versteckten Käufe. Moodlit gehört einem gemeinnützigen Verein."
),
ManaOnboardingPage.Row(
symbol: "moon.stars",
title: "Zur Ruhe kommen",
text: "Sanfte Übergänge statt greller Reize — Licht, das dich begleitet statt ablenkt."
),
]
),
ManaOnboardingPage(
title: "Was Moodlit kann",
rows: [
ManaOnboardingPage.Row(
symbol: "sparkles",
title: "Moods abspielen",
text: "Fertige Stimmungen oder eigene Moods — im Vollbild, ganz ohne dass der Bildschirm einschläft."
),
ManaOnboardingPage.Row(
symbol: "list.triangle",
title: "Sequenzen aneinanderreihen",
text: "Mehrere Moods nacheinander, mit weichen Crossfade-Übergängen — etwa als Einschlaf-Abfolge."
),
ManaOnboardingPage.Row(
symbol: "lightbulb",
title: "Echte Lampen mitfärben",
text: "Optional steuert Moodlit deine Philips-Hue-, LIFX- oder HomeKit-Lampen passend zum Mood."
),
],
footnote: "Mit einem kostenlosen mana-Konto synchronisierst du deine eigenen Moods und Sequenzen über deine Geräte. Ohne Konto bleibt alles lokal auf diesem Gerät."
),
]
}