GitHunt

DTOnboarding

Swift5
Swift Package Manager
GitHub release (latest SemVer)
GitHub
macOS

A macOS onboarding component.

  • creates a window containing a configurable number of screens
  • use buttons or gestures to navigate
  • component size, layout and content easily are configurable

Installation

Install using Swift Package Manager. Use master branch.

Dependencies

Requirements

  • OS X 10.14+
  • Xcode 11.0 or above

Demo/Example

Either compile and run the example in the Demo folder or see the component used in Crypto Tools.

Usage

Use the following code in your AppDelegate.swift or similar.

class AppDelegate: NSObject, NSApplicationDelegate {
    private var onboardingWindowController: NSWindowController?

    func applicationDidFinishLaunching(_ aNotification: Notification) {
        let config = OnboardingConfig(
            windowWidth: 350,
            windowHeight: 430,
            windowTitle: "my sample title",
            pageCount: 3,
            pageControlWidth: 200,
            pageControlHeight: 20,
            pageControlVerticalDistanceFromBottom: 20, 
            pageTransitionStyle: .stackBook
        )

        let pages = [
            DTPageController(controllerId: "1"),
            DTPageController(controllerId: "2"),
            DTPageController(controllerId: "3")
        ]

        let onboardingController = DTOnboardingController(config: config, pages: pages)
        let frame = onboardingController.view.bounds
        let myWindow = NSWindow(
            contentRect: .init(origin: .zero, size: frame.size),
            styleMask: [.closable, .miniaturizable, .resizable, .titled],
            backing: .buffered,
            defer: false
        )
        myWindow.title = config.windowTitle
        myWindow.center()

        onboardingWindowController = NSWindowController(window: myWindow)
        onboardingWindowController?.contentViewController = onboardingController
        onboardingWindowController?.showWindow(self)
    }
}

License

This software is Open Source under the MIT license, see LICENSE for details.

Languages

Swift100.0%

Contributors

MIT License
Created May 4, 2020
Updated October 4, 2025
demianturner/DTOnboarding | GitHunt