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>
60 lines
2.3 KiB
Swift
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."
|
|
),
|
|
]
|
|
}
|