Swiftpack.co - exyte/ConcentricOnboarding as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by exyte.
exyte/ConcentricOnboarding 1.0.3
SwiftUI library for a walkthrough or onboarding flow with tap actions
⭐️ 999
🕓 50 weeks ago
.package(url: "https://github.com/exyte/ConcentricOnboarding.git", from: "1.0.3")

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


  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 tuple - (page, background color).
  4. Create ConcentricOnboardingView and place it in your view hierarchy.
struct ContentView: View {
    var body: some View {
        return ConcentricOnboardingView(pageContents: [<your_page>, <your_background_color>])
  1. Pass duration as an argument if you want animation to be faster/slower
ConcentricOnboardingView(pageContents: [<your_page>, <your_background_color>])
	.(duration: 2.0)
  1. Pass icon name as an argument if you want to change default icon on the button
ConcentricOnboardingView(pageContents: [<your_page>, <your_background_color>])
	.(nextIcon: "chevron.forward")

Public interface

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
.didChangeCurrentPage - called after page changes
.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


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!


Swift Package Manager

dependencies: [
    .package(url: "https://github.com/exyte/ConcentricOnboarding.git")


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"


  • iOS 14+
  • Xcode 12+


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

Our other open source SwiftUI libraries

PopupView - Toasts and popups library
Grid - The most powerful Grid container
ScalingHeaderScrollView - A scroll view with a sticky header which shrinks as you scroll
AnimatedTabBar - A tabbar with number of preset animations
MediaPicker - Customizable media picker
FloatingButton - Floating button menu
ActivityIndicatorView - A number of animated loading indicators
ProgressIndicatorView - A number of animated progress indicators
SVGView - SVG parser
LiquidSwipe - Liquid navigation animation


Stars: 1000
Last commit: 1 week ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics