SkillAgentSearch skills...

DTOnboarding

A macOS onboarding component

Install / Use

/learn @demianturner/DTOnboarding
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

DTOnboarding

<a href="https://developer.apple.com/swift"><img alt="Swift5" src="https://img.shields.io/badge/language-Swift5-orange.svg"/></a> <a href="https://swift.org/package-manager"><img alt="Swift Package Manager" src="https://img.shields.io/badge/SwiftPM-compatible-yellowgreen.svg"/></a> 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.

Related Skills

View on GitHub
GitHub Stars29
CategoryDevelopment
Updated21d ago
Forks3

Languages

Swift

Security Score

95/100

Audited on Mar 12, 2026

No findings