Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/danielsaidi/OnboardingKit
OnboardingKit is a Swift SDK that helps you create onboarding experiences in Swift and SwiftUI.
https://github.com/danielsaidi/OnboardingKit
cocoapods hint ios macos onboarding swift swiftui tutorial tvos visionos watchos
Last synced: 13 days ago
JSON representation
OnboardingKit is a Swift SDK that helps you create onboarding experiences in Swift and SwiftUI.
- Host: GitHub
- URL: https://github.com/danielsaidi/OnboardingKit
- Owner: danielsaidi
- License: mit
- Created: 2016-08-19T12:40:30.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2024-10-04T21:02:41.000Z (2 months ago)
- Last Synced: 2024-10-30T08:17:49.594Z (about 1 month ago)
- Topics: cocoapods, hint, ios, macos, onboarding, swift, swiftui, tutorial, tvos, visionos, watchos
- Language: Swift
- Homepage:
- Size: 10.8 MB
- Stars: 610
- Watchers: 9
- Forks: 34
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
## About OnboardingKit
OnboardingKit is a Swift SDK that helps you create onboarding experiences in `Swift` and `SwiftUI`.
OnboardingKit has different onboarding types. A standard ``Onboarding`` is shown right away, and only once, while other types can require multiple presentation attempts, a certain number of "incorrect" actions, etc.
OnboardingKit also has localized utilities, like the ``LocalizedOnboarding``, and UI components like ``OnboardingPageView`` and ``OnboardingSlideshow``.
## Installation
OnboardingKit can be installed with the Swift Package Manager:
```
https://github.com/danielsaidi/OnboardingKit.git
```## Getting started
In OnboardingKit, an `Onboarding` determines the state and behavior of an onboarding experience. You can use various onboarding types to get different behaviors.
The code below shows how to use a standard onboarding to present a first launch onboarding sheet:
```swift
import OnboardingKit
import SwiftUIstruct ContentView: View {
@State
private var isOnboardingPresented: Bool
private let onboarding = Onboarding(id: "welcome")var body: some View {
Text("Hello, world")
.task(tryPresentOnboarding)
.sheet(isPresented: $isOnboardingPresented) {
...
}
}
func tryPresentOnboarding() {
onboarding.tryPresent {
isOnboardingPresented = true
}
}
}
```The onboarding will honor its own rules and remember any previous presentation, so `tryPresent` will only trigger when it makes sense for the onboarding.
See the online [getting started guide][Getting-Started] for more information.
## Documentation
The online [documentation][Documentation] has more information, articles, code examples, etc.
## Demo Application
The `Demo` folder has an app that lets you explore the library.
## Support my work
You can [sponsor me][Sponsors] on GitHub Sponsors or [reach out][Email] for paid support, to help support my [open-source projects][OpenSource].
Your support makes it possible for me to put more work into these projects and make them the best they can be.
## Contact
Feel free to reach out if you have questions or if you want to contribute in any way:
* Website: [danielsaidi.com][Website]
* Mastodon: [@[email protected]][Mastodon]
* Twitter: [@danielsaidi][Twitter]
* E-mail: [[email protected]][Email]## License
OnboardingKit is available under the MIT license. See the [LICENSE][License] file for more info.
[Email]: mailto:[email protected]
[Website]: https://www.danielsaidi.com
[GitHub]: https://www.github.com/danielsaidi
[Twitter]: https://www.twitter.com/danielsaidi
[Mastodon]: https://mastodon.social/@danielsaidi
[OpenSource]: https://danielsaidi.com/opensource
[Sponsors]: https://github.com/sponsors/danielsaidi[Gif]: https://github.com/danielsaidi/OnboardingKit/releases/download/8.0.0/Demo.gif
[Documentation]: https://danielsaidi.github.io/OnboardingKit
[Getting-Started]: https://danielsaidi.github.io/OnboardingKit/documentation/onboardingkit/getting-started[License]: https://github.com/danielsaidi/OnboardingKit/blob/master/LICENSE