SwiftUI Onboarding Template — 3 Production Styles
Carousel, Highlights, or Minimal — switch styles via feature flag. Permission prompt sequencing, paywall integration, analytics. Drop-in ready.
The Swift Kit ships three production onboarding styles for SwiftUI iOS apps — Carousel (horizontal pagination like Instagram), Highlights (vertical feature list like Notion), and Minimal (single hero screen like Linear). Switch between them by flipping a feature flag. All three integrate with paywall conversion via RevenueCat, sequence permission prompts (Notifications → Photos → ATT) correctly, and track each step in TelemetryDeck automatically.
The Three Styles
Each style fits a different app personality. The Swift Kit lets you switch between them without rewriting code.
- Carousel — best for consumer apps with multiple distinct value props (4-6 screens)
- Highlights — best for productivity / utility apps with many small features
- Minimal — best for B2B / professional tools (1 screen, one CTA)
- Switch by changing FeatureFlags.onboardingStyle in one file
Data-Driven Configuration
Onboarding screens are configured, not coded. Add a screen by appending to the array — no view code to write.
enum OnboardingConfig {
static let screens: [OnboardingScreen] = [
.init(
title: "Welcome to AppName",
description: "Track your habits with privacy-first storage",
symbol: "checkmark.circle.fill",
tint: .accent
),
.init(
title: "Build streaks",
description: "Visual progress, no notifications spam",
symbol: "flame.fill",
tint: .orange
),
.init(
title: "Ready to start?",
description: "Your data stays on your device",
symbol: "sparkles",
tint: .primary,
ctaLabel: "Get Started"
),
]
}Permission Prompt Sequencing
The Swift Kit sequences permission prompts after onboarding — never during. Apple's App Store guidelines reward delayed, contextual permission requests. Conversion data confirms it.
- Onboarding screens (carousel or highlights)
- Sign in with Apple (optional, can skip)
- Notifications permission (with rationale screen)
- Photos permission (only if app uses photos)
- ATT prompt (only if app does tracking)
- Optional paywall (gated by RevenueCat eligibility)
- Home screen
Switching to Liquid Glass on iOS 26
Set DesignSystem.surfaceStyle = .liquidGlass and onboarding adopts Apple's new Liquid Glass material automatically — frosted depth, refraction, motion-aware blur. Falls back to .glass on iOS 17–25.
enum DesignSystem {
static let surfaceStyle: SurfaceStyle = .liquidGlass
// .flat | .bordered | .elevated | .glass | .liquidGlass
}Skip the onboarding design work.
Three pre-built styles, data-driven configuration, paywall + analytics wired in.
Frequently Asked Questions
What onboarding styles are included?
How does the onboarding integrate with paywall + analytics?
Can I add my own onboarding screens?
When should I show permission prompts during onboarding?
Does it persist completion state?
Is it accessible?
Keep exploring
Ship your iOS app 10× faster
The Swift Kit gives you a production-ready SwiftUI boilerplate — design system, paywall, auth, AI, all pre-wired. $99 one-time.
Get The Swift Kit — $99One-time purchase · Lifetime updates · 14-day refund