/ConcentricOnboarding

SwiftUI library for a walkthrough or onboarding flow with tap actions

Primary LanguageSwiftMIT LicenseMIT

Concentric Onboarding

iOS library for a walkthrough or onboarding flow with tap actions written with SwiftUI


We are a development agency building phenomenal apps.




Twitter Version Carthage Compatible License Platform

Usage

  1. Create View's descendant class for your pages.
  2. Create at least two pages and fill them with content.
  3. Create an array of colors (same number as pages).
  4. Create ConcentricOnboardingView and place it in your view hierarchy.
struct ContentView: View {
    var body: some View {
        return ConcentricOnboardingView(pages: <your_pages>, bgColors: <your_colors>)
    }
}
  1. Pass duration as an argument if you want animation to be faster/slower
ConcentricOnboardingView(pages: <your_pages>, bgColors: <your_colors>, duration: 2.0)

Public interface

currentPageIndex - read only property to check what page index you are currently on

goToNextPage(animated: Bool = true) - call this method manually if you need to
goToPreviousPage(animated: Bool = true) - call this method manually if you need to

Assignable closures

animationWillBegin - called before animation starts
animationDidEnd - called after animation ends
didGoToLastPage - called after animation leading to last page ends
insteadOfCyclingToFirstPage - replaces default navigation to first page after pressing next on last page
insteadOfCyclingToLastPage - replaces default navigation to last page after pressing prev on first page while navigating backwards
didPressNextButton - replaces default button action with user's custom closure

Examples

To try ConcentricOnboarding examples:

  • Clone the repo https://github.com/exyte/ConcentricOnboarding.git
  • Open terminal and run cd <ConcentricOnboardingRepo>/Example/
  • Run pod install to install all dependencies
  • Run open ConcentricOnboardingExample.xcworkspace/ to open project in the Xcode
  • Try it!

Installation

To install ConcentricOnboarding, simply add the following line to your Podfile:

pod 'ConcentricOnboarding'

To integrate ConcentricOnboarding into your Xcode project using Carthage, specify it in your Cartfile

github "Exyte/ConcentricOnboarding"

Manually

Drop ConcentricOnboardingView.swift in your project.

Requirements

  • iOS 13+
  • Xcode 11+

Acknowledgements

Many thanks to Cuberto team for the design idea and inspiration.