NewThe Flutter Kit — Flutter boilerplate$149$69
Template · 3 Styles · Production Code

SwiftUI Onboarding Template — 3 Production Styles

Carousel, Highlights, or Minimal — switch styles via feature flag. Permission prompt sequencing, paywall integration, analytics. Drop-in ready.

Last updated: 2026-05-16 6 min read By Ahmed Gagan, iOS Engineer
Quick Answer

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.

Styles included
3 (Carousel, Highlights, Minimal)
Configuration
Data-driven, no view code
Theming
DesignSystem.swift token-driven
Analytics
TelemetryDeck pre-wired

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.

OnboardingConfig.swift
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.

DesignSystem.swift
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.

Get The Swift Kit — $99

Frequently Asked Questions

What onboarding styles are included?
Three production styles: (1) Carousel — classic horizontal pagination with bullet indicators, used by Instagram / TikTok / Spotify; (2) Highlights — vertical scrolling list of features with icons, used by Calm / Notion; (3) Minimal — single hero screen with one CTA, used by Stripe / Linear. Switch between them by changing a feature flag.
How does the onboarding integrate with paywall + analytics?
Onboarding flow tracks each step view in TelemetryDeck (or PostHog) automatically. Final screen offers paywall conversion via RevenueCat — pre-wired. Permission prompts (notifications, ATT, photos) are sequenced after onboarding completion, not interrupting it.
Can I add my own onboarding screens?
Yes — onboarding is data-driven. Define your screens in OnboardingConfig.swift (title, description, image/SF Symbol, animation). The renderer reads the config and builds the flow. No view code to write for adding/removing/reordering screens.
When should I show permission prompts during onboarding?
Never on the first screen. After the user has seen value and trusts your app — typically after the carousel or after a "preview the feature" step. Sequence: onboarding screens → permission prompts (Notifications, then Photos, then ATT) → optional paywall → home.
Does it persist completion state?
Yes — completion state stored in @AppStorage. Onboarding shows once on first launch (or after app update if you bump the version). Users who quit mid-onboarding resume from where they left off.
Is it accessible?
Yes — full VoiceOver support, Dynamic Type, reduced-motion respect for animations, and keyboard navigation on iPad / external keyboard.

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 — $99

One-time purchase · Lifetime updates · 14-day refund