Autumn Sale50% offCOMPOT
Onboarding & Welcome ScreensFree ComponentiOS 16.0+Xcode 15+

Basic Welcome Screen

Classic Apple-style welcome screen with hero icon, 3 feature bullet rows, and bottom CTA button.

SwiftUI Implementation

Pure Vanilla Swift • No Dependencies
basicWelcomeScreen.swift
import SwiftUI

struct BasicWelcomeScreen: View {
    
    var body: some View {
        NavigationStack {
            VStack {
                Image(uiImage: UIImage(named: AppIconProvider.appIcon()) ?? UIImage())
                    .resizable()
                    .scaledToFit()
                    .frame(width: 120, height: 120)
                    .clipShape(.rect(cornerRadius: 22))
                    .shadow(color: .gray.opacity(0.6), radius: 1)
                    .padding(.bottom)
                VStack(alignment: .center, spacing: 8) {
                    Text("Welcome to Compot")
                        .font(.title)
                        .fontWeight(.semibold)
                        .foregroundStyle(.primary)
                        .frame(maxWidth: 350)
                    Text("The sweetest app for busy SwiftUI developers.")
                        .font(.title3)
                        .fontWeight(.regular)
                        .foregroundStyle(.primary)
                        .multilineTextAlignment(.center)
                        .frame(maxWidth: 250)
                }
            }
            .padding()
        }
        .safeAreaInset(edge: .bottom) {
            Button {
                print("get started")
            } label: {
                HStack(spacing: 8) {
                    Text("Get Started")
                    Image(systemName: "arrow.right")
                }
                .padding()
                .font(.headline)
                .foregroundStyle(.white)
                .frame(alignment: .center)
            }
            .frame(maxWidth: 450)
            .background(.tint)
            .clipShape(Capsule())
            .padding()
            .help("Accessibility hint, eg. Button to start to use the app.")
        }
    }
}

#Preview {
    BasicWelcomeScreen()
}

enum AppIconProvider {
    static func appIcon(in bundle: Bundle = .main) -> String {
        guard let icons = bundle.object(forInfoDictionaryKey: "CFBundleIcons") as? [String: Any],
              let primaryIcon = icons["CFBundlePrimaryIcon"] as? [String: Any],
              let iconFiles = primaryIcon["CFBundleIconFiles"] as? [String],
              let iconFileName = iconFiles.last else {
            fatalError("Couldn't find icon in the bundle.")
        }
        return iconFileName
    }
}

Ready to copy and paste directly into any Xcode project running iOS 16.0+.

Recommended Use Cases

  • First-run onboarding flows and feature introductions

Component Details

iOS Compatibility
iOS 16.0+
Xcode Version
Xcode 15+
Platform
iOS
License Tier
Free
Themes & Contexts
onboarding
Keywords
onboardingwelcome
C

Compot for iOS

Native SwiftUI playground app

Preview all 130+ components interactively on your device and copy code straight to Xcode with 1 tap.

Get Compot on the App Store