OnboardingKit

OnboardingKit 是一个 SwiftUI 包,它可以帮助您为您的应用创建引导体验。它提供了一组视图,您可以使用它们来创建欢迎屏幕、新功能介绍屏幕和一组引导屏幕。您可以通过提供自己的内容和颜色来自定义这些视图。 OnboardingKit 还提供了一个辅助类,您可以使用它来获取有关您的应用的信息,例如应用名称、版本号和构建编号。

Swift Package Manager License

要求

安装

使用 Swift Package Manager 安装

dependencies: [
    .package(url: "https://github.com/0xWDG/OnboardingKit.git", branch: "main"),
],
targets: [
    .target(name: "MyTarget", dependencies: [
        .product(name: "OnboardingKit", package: "OnboardingKit"),
    ]),
]

并导入它

import OnboardingKit

欢迎视图用法

import OnboardingKit

struct TabbarView: View {
    @State
    private var showWelcomeScreen = {
        if UserDefaults.standard.bool(forKey: "hasSeenIntroduction") {
            return false
        }

        return true
    }()

    private var features: [WelcomeCell] = [
        WelcomeCell(
            image: "star",
            title: "Welcome",
            subtitle: "To %APP_NAME%"
        )
    ]

    var body: some View {
        TabView {
          // Your tabview Code.
        }
        .sheet(isPresented: $showWelcomeScreen) {
            WelcomeScreen(show: $showWelcomeScreen, items: features) {
                UserDefaults.standard.setValue(true, forKey: "hasSeenIntroduction")
            }
        }
    }
}

新功能介绍视图用法

import OnboardingKit

struct TabbarView: View {
    @State
    private var showWhatsNew = { // This is to show it only on a different version
        if let dictionary = Bundle.main.infoDictionary,
           let dVersion = dictionary["CFBundleShortVersionString"] as? String,
           let whatsNew = UserDefaults.standard.value(forKey: "whatsNew") as? String,
           whatsNew == dVersion {
            return false
        }

        return true
    }()

    var body: some View {
        TabView {
            // Your tabview Code.
        }
        .sheet(isPresented: $showWhatsNew) {
            WhatsNew(
                show: $showWhatsNew,
                text: "This is new!"
            ) {
                if let dictionary = Bundle.main.infoDictionary,
                   let dVersion = dictionary["CFBundleShortVersionString"] as? String {
                    UserDefaults.standard.setValue(dVersion, forKey: "whatsNew")
                }
            }
        }
    }
}

文本中的动态替换

替换
%DEVICE_APPS% 带有应用名称的 SF 设备图标(如果支持,目前仅支持 iPad 和 iPhone)
%DEVICE_TYPE% SF 设备图标名称
%APP_NAME% 应用的名称
%APP_VERSION% 应用的软件版本号
%APP_BUILD%" 应用的构建编号

联系

🦋 @0xWDG 🐘 mastodon.social/@0xWDG 🐦 @0xWDG 🧵 @0xWDG 🌐 wesleydegroot.nl 🤖 Discord

有兴趣了解更多关于 Swift 的信息吗?查看我的博客