Onboarding Screen
OnboardingScreen — the first-run intro. Ships as a swipeable 3-page pager built on
KitOnboardingPager + KitPageIndicator. Shown once, then gated by a DataStore flag.
/docs/screens/onboarding-light.png/docs/screens/onboarding-dark.pngfeature/onboarding/OnboardingScreen.kt
How it's wired
KitNavHost shows it on first launch only — once finished, onboardingDone is written to
DataStore and it never shows again. The copy lives in strings.xml:
<string name="onboarding_page1_title">Track your water</string>
<string name="onboarding_page1_desc">Log every glass and build a hydration streak.</string>
<!-- …page2, page3 -->
/kit-start-setup writes these for you from one sentence about your app.
Two onboarding modes
| Mode | When | Command |
|---|---|---|
| Simple 3-page intro | Default — quick value pitch | written by /kit-start-setup |
| Personalised questionnaire | Calm / Headspace-style quiz that tailors the app | /kit-design-onboarding |
The questionnaire mode replaces the pager with a 10–14 screen flow (welcome → value-prop → 3–5 question screens → permission priming → social proof → personalised plan → ready). Its answers persist so the app feels personalised from first launch.
Features
- Swipeable pager with a dot indicator
- Per-page icon, title, description (all localizable)
- Shown once, DataStore-gated (
onboardingDone) - Upgradeable to a full questionnaire with one command
Configure with
/kit-start-setup(simple) or/kit-design-onboarding(questionnaire).