Dux icon indicating copy to clipboard operation
Dux copied to clipboard

Guide users through your SwiftUI app with coach marks

trafficstars

Dux

Build Status

Guide users through your SwiftUI app with coach marks.

Pre-release note

Dux has not hit 1.0.0 yet and is undergoing active development which means APIs are unstable and may change.

Installation

In Package.swift:

dependencies: [
    .package(url: "https://github.com/jakeheis/Dux", .upToNextMajor(from: "0.0.1"))
]

Usage

@main
struct MyApp: App {
    var body: some Scene {
        WindowGroup {
            DuxContainerView {
                MyView()
            }
        }
    }
}

struct MyView: View {
    enum Tags: DuxTags {
        case hello
        
        func makeCallout() -> Callout {
            .text("This is a message saying hello")
        }
    }
    
    var body: some View {
        VStack {
            Text("Hello world")
                .duxTag(Tags.hello)
        }
        .dux(isActive: true, tags: Tags.self)
    }
}

See the Examples directory for more examples of how to use Dux.

Attributions

Inspired by https://github.com/ephread/Instructions