SwiftUI iOS component for Step Indications.

Overview

StepperView

SwiftUI iOS component for Step Indications

CI Status License Platform Version Swift Package Manager compatible Carthage compatible documentation Twitter


StepperView


StepperViewLineLifeCycle

Table of Contents

Features

  • Support for Vertical and Horizontal Alignments.
  • iOS and WatchOS capabilities
  • Support for Circle, Image, Custom View, Animated Step Indicators
  • Customizable line,spacing & animation options.
  • Pitstop feature to add intermediate stages between Step Indicators
  • Support for updating the life cycle status for each of the steps

Documentation

StepperView Reference

Installation

To run the example project, clone the repo, and run pod install from the Example directory first.

CocoaPods

StepperView is available through CocoaPods. To install it, simply add the following line to your Podfile.

pod 'StepperView','~> 1.6.7'

Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. To integrate StepperView into your Xcode project using Carthage, specify it in your Cartfile:

github "badrinathvm/stepperView" == 1.6.7

Swift Package Manager

StepperView is available through Swift Package Manager. To install it, simply add it to the dependencies of your Package.swift

dependencies: [
      .package(url: "https://github.com/badrinathvm/StepperView.git", from: "1.6.7")
]

Requirements

  • iOS 13.0+
  • Xcode 11.2+
  • Swift 5.0+
  • CocoaPods 1.6.1+

Usecase

example1 example2 example2 example2
lifecycle1 lifecycle2 lifecycle3 lifecycle3

iPhone

StepperView StepperViewWithPitStops StepperViewWithMultipleOptions

Apple Watch Support

Watch_StepperView_Vertical Watch_StepperView_Icon Watch_StepperView_Horizontal Watch_StepperView_Pitstop

View Modifiers

.addSteps(_ steps: [View]) : 
          1. list of views to be closer to indicator

.alignments(_ alignments: [StepperAlignment])
          1. optional modifier 
          2. defaults to .center, available with custom options either .top, .center, .bottom
          
.indicatorTypes(_ indicators:[StepperIndicationType]): 
          1. modifier to customize the step indications
          2. provides enum with cases .circle(color, width), .image(Image, width), .custom(AnyView), .animation(AnyView)
          
.lineOptions(_ options: StepperLineOptions): 
          1. line customization `color` , `width` , `corner radius`
          2. Has option of `defaults`, `custom` , `rounded`
          
.spacing(_ value: CGFloat): 
          1. spacing between each of the step views either vertically horizontally
          
.autoSpacing(_ value: Bool):
          1. if set to `true` - Dynamically calculates the spacing between each of the steps.
          
.stepIndicatorMode(_ mode: StepperMode): 
          1. Step Indicator display modes either vertical, horizontal
          
.loadingAnimationTime(_ time: Double):
          1. controls the speed of the animation for step Indicator

.stepLifeCycles(_ lifecycle: [StepLifeCycle]):
          1. Can set the life cycle status for each of the step as `completed`, `pending`
              
.addPitStops(_ steps: [View]):
          1. optional modifier
          2. list of views which will be displayed below the step text

.pitStopLineOptions(_ options: [StepperLineOptions])
          1. line customization `color` , `width` , `corner radius`
          
.stepperEdgeInsets(_ value: EdgeInsets)
         1. Provides custiom `leading`, `trailing`, `top` & `bottom` spacing.  

Usage

Vertical Stepper View

import StepperView

let steps = [ Text("Cart").font(.caption),
              Text("Delivery Address").font(.caption),
              Text("Order Summary").font(.caption),
              Text("Payment Method").font(.caption),
              Text("Track").font(.caption)]

let indicationTypes = [StepperIndicationType.custom(NumberedCircleView(text: "1")),
                        .custom(NumberedCircleView(text: "2")),
                        .custom(NumberedCircleView(text: "3")),
                        .custom(NumberedCircleView(text: "4")),
                        .custom(NumberedCircleView(text: "5"))]
                        
var body: some View {
    StepperView()
        .addSteps(steps)
        .indicators(indicationTypes)
        .stepIndicatorMode(StepperMode.vertical)
        .spacing(30)
        .lineOptions(StepperLineOptions.custom(1, Colors.blue(.teal).rawValue))
}

Horizontal Stepper View

import StepperView

let steps = [
    TextView(text: "Card details", font: Font.system(size: 12, weight: Font.Weight.regular)),
    TextView(text: "Application review", font: Font.system(size: 12, weight: Font.Weight.regular)),
    TextView(text: "Authenticate OTP", font: Font.system(size: 12, weight: Font.Weight.regular)),
    TextView(text: "Create password", font: Font.system(size: 12, weight: Font.Weight.regular))
]

let indicators = [
    StepperIndicationType.custom(Image(systemName:"1.circle.fill").font(.largeTitle).eraseToAnyView()),
    StepperIndicationType.custom(Image(systemName:"2.circle.fill").font(.largeTitle).eraseToAnyView()),
    StepperIndicationType.custom(Image(systemName:"3.circle.fill").font(.largeTitle).eraseToAnyView()),
    StepperIndicationType.custom(Image(systemName:"4.circle.fill").font(.largeTitle).eraseToAnyView())
]

var body: some View {
    StepperView()
        .addSteps(steps)
        .indicators(indicators)
        .stepIndicatorMode(StepperMode.horizontal)
        .lineOptions(StepperLineOptions.rounded(4, 8, Color.black)) 
        .stepLifeCycles([StepLifeCycle.completed, .completed, .completed, .pending])
        .spacing(50)
}

Pitstop Stepper View

let steps = [TextView(text:"Manage Tasks", font: .system(size: 14, weight: .semibold)),
             TextView(text:"Branch", font: .system(size: 14, weight: .semibold)),
             TextView(text:"Commit", font: .system(size: 14, weight: .semibold)),
             TextView(text:"Code review", font: .system(size: 14, weight: .semibold)),
             TextView(text:"Merge and release", font: .system(size: 14, weight: .semibold))]

let indicators = [
    StepperIndicationType.custom(Image(systemName:"1.circle.fill").font(.largeTitle).eraseToAnyView()),
    StepperIndicationType.custom(Image(systemName:"2.circle.fill").font(.largeTitle).eraseToAnyView()),
    StepperIndicationType.custom(Image(systemName:"3.circle.fill").font(.largeTitle).eraseToAnyView()),
    StepperIndicationType.custom(Image(systemName:"4.circle.fill").font(.largeTitle).eraseToAnyView()),
    StepperIndicationType.custom(Image(systemName:"5.circle.fill").font(.largeTitle).eraseToAnyView())
]

let pitStopLineOptions = [
    StepperLineOptions.custom(1, Color.black),
    StepperLineOptions.custom(1, Color.black),
    StepperLineOptions.custom(1, Color.black),
    StepperLineOptions.custom(1, Color.black),
    StepperLineOptions.custom(1, Color.black)
]

let pitStops = [
    TextView(text:GithubPitstops.p1).eraseToAnyView(),
    TextView(text:GithubPitstops.p2).eraseToAnyView(),
    TextView(text:GithubPitstops.p3).eraseToAnyView(),
    TextView(text:GithubPitstops.p4).eraseToAnyView(),
    TextView(text:GithubPitstops.p5).eraseToAnyView()
]

var body: some View {
    StepperView()
        .addSteps(steps)
        .indicators(indicators)
        .addPitStops(pitStops)
        .pitStopLineOptions(pitStopLineOptions)
        .spacing(80) // auto calculates spacing between steps based on the content.
        .padding()
}

struct GithubPitstops {
    static var p1 = "Triage Notifications\nBrowse Repos\nCreate an issue"
    static var p2 = "Fork or Clone repo\ngit checkout -b branch\ngit stash"
    static var p3 = "git add -p\ngit diff .\ngit commit -m\ngit push origin branch"
    static var p4 = "Open pull request\ngit checkout pr-branch\nReview and comment"
    static var p5 = "View checks\ngit rebase\ngit merge\ngit tag"
}

Custom Step Indicators

NumberedCircleView

This view places the number or any text inside the circle.

NumberedCircleView(text: "1", width: 40)

CircledIconView

This view embeds a icon or image inside the circle.

CircledIconView(image: Image("flag"), width: 40, strokeColor: Color.red)

More Examples

iOS Usecases
watchOS Usecases

StepperView_pistops StepperView_github_workflow StepperView_github_workflow

Mentions

SwiftUI Weekly #5
iOS Goodies #333
MBLT DEV DIGEST #302
Awesome iOS Newsletter #201
About-SwiftUI Articles
Better Programming - 6 Amazing SwiftUI Libraries
10 SwiftUI Libraries in 2021

Apps Using StepperView

WatchTo5K

Author

Badarinath Venkatnarayansetty.Follow and contact me on Twitter or LinkedIn

Buy Me A Coffee

Contribution

Feature requests, bug reports, and pull requests are all welcome. Refer Contributing Guidelines for more details.

License

StepperView is available under the MIT license. See the LICENSE file for more info.

Comments
  • Core Data and StepperView

    Core Data and StepperView

    I am having a hard time getting StepperView to work with Core Data objects. Is there a tutorial or is it possible to be pointed in the right direction?

    opened by rainald 4
  • How to use with horizontal scrollview

    How to use with horizontal scrollview

    I need to use stepperview with 9 steps. So i need a scrollview because width of stepperview more than device width i try to add scrollview but the result show blank view. How to do this case?

    Thanks

    opened by wong-kene 4
  • WatchOS Segments not aligned in centre

    WatchOS Segments not aligned in centre

    Describe the bug The segments are no longer centred on the line.

    To Reproduce Run sample app with latest Xcode 12.2 on a WatchOS 7.1 S5/S6 simulator

    Expected behavior The line to be aligned in the centre of the segments

    Screenshots

    Screenshot of the sample app Simulator Screen Shot - Apple Watch Series 5 - 40mm - 2020-11-22 at 21 06 38

    Simulator Screen Shot - Apple Watch Series 5 - 40mm - 2020-11-22 at 21 02 48

    Info (please complete the following information):

    • Device: Both simulator and device
    • OS: WatchOS 7.1 S5/S6 (40 or 44mm)
    • Pod Version: 1.5.2
    • Xcode Version 12.2

    Additional context It looks like it may be caused by some default padding in the latest version of SwiftUI? I have not looked into the source code yet to try and identify the problem.

    opened by bencallis 4
  • [PR Request] - Removes default .black rendering for CircledIconView

    [PR Request] - Removes default .black rendering for CircledIconView

    The default was setting rending to template and color to .black.

    Description

    Please include a summary of the change and which issue is fixed.

    Type of change

    • [X] Bug fix
    • [ ] New feature
    • [ ] Breaking change
    • [ ] This change requires a documentation update

    How Has This Been Tested

    Please let us know if you have tested your PR and if we need to reproduce the issues. Also, please let us know if we need any relevant information for running the tests.

    NOT TESTED

    Test Configuration

    N/A

    Checklist:

    For checklist items not applicable, mention NA in front of it with some comment if applicable.

    • [X] My code follows the style guidelines of this project
    • [X] I have performed a self-review of my own code
    • [X] Add comments to code particularly in hard-to-understand areas
    • [X] My changes generate no new warnings
    • [X] I have added tests that prove my fix is effective or that my feature works
    • [X] New and existing unit tests pass locally with my changes before pushing the pull request
    opened by acegreen 3
  • Different UI elements for steps not working

    Different UI elements for steps not working

    Describe the bug Using different UI elements for different steps does not seem to work.

    To Reproduce

        static let stepLineColor = Color(red: 229 / 255, green: 229 / 255, blue: 229 / 255)
        static let stepCircleColor = Color(red: 17 / 255, green: 16 / 255, blue: 56 / 255)
    
        let indicationTypes: [StepperIndicationType<NumberedCircleView>] = [
            .custom(NumberedCircleView(text: "1", color: stepCircleColor, triggerAnimation: true)),
            .custom(NumberedCircleView(text: "2", color: stepCircleColor, triggerAnimation: true)),
            .custom(NumberedCircleView(text: "3", color: stepCircleColor, triggerAnimation: true)),
            .custom(NumberedCircleView(text: "4", color: stepCircleColor, triggerAnimation: true)),
            .custom(NumberedCircleView(text: "5", color: stepCircleColor, triggerAnimation: true)),
            .custom(NumberedCircleView(text: "6", color: stepCircleColor, triggerAnimation: true))
        ]
    
    
        var body: some View {
            StepperView()
                    .addSteps([
                        VStack {
                            Text("")
                            DatePicker("", selection: $date, in: Date()..., displayedComponents: [.date])
                        },
                        Text("")
                    ])
                    .indicators(indicationTypes)
                    .stepIndicatorMode(StepperMode.vertical)
                    .spacing(30)
                    .lineOptions(StepperLineOptions.custom(2, TestView.stepLineColor))
        }
    

    This yields in Failed to produce diagnostic for expression; please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the project

    Expected behavior The code compiles, the first step displays a VStack and the second step displays Text.

    Screenshots If applicable, add screenshots to help explain your problem.

    Info (please complete the following information):

    • Device: Simulator
    • OS: 14.5
    • SPM library version: 1.6.2
    • Xcode Version: 12.5
    opened by CollinAlpert 3
  • Fixed #62

    Fixed #62

    Description

    The main VStack in StepIndicatorVerticalView was missing aligment: .leading due to which all steps were centre aligned

    Type of change

    • [x] Bug fix
    • [ ] New feature
    • [ ] Breaking change
    • [ ] This change requires a documentation update

    How Has This Been Tested

    I have tested my PR and now all the steps are aligned perfectly with the vertical line.

    Test Configuration

    • Xcode version: 12.3
    • Simulator
    • iOS version: iOS 14.3

    Checklist:

    For checklist items not applicable, mention NA in front of it with some comment if applicable.

    • [x] My code follows the style guidelines of this project
    • [x] I have performed a self-review of my own code
    • [ ] NA - Add comments to code particularly in hard-to-understand areas
    • [x] My changes generate no new warnings
    • [ ] I have added tests that prove my fix is effective or that my feature works
    • [x] New and existing unit tests pass locally with my changes before pushing the pull request
    opened by NotAnmol 2
  • First and last steps do not appear on line when displayed vertically

    First and last steps do not appear on line when displayed vertically

    Describe the bug Display issue with the first and last steps when displayed vertically where the indicator and text is indented to the right from the line.

    To Reproduce Use the code from the readme and change .horizontal to .vertical:

    struct MyMain: View {
        let steps = [ Text("Cart").font(.caption),
                      Text("Delivery Address").font(.caption),
                      Text("Order Summary").font(.caption),
                      Text("Payment Method").font(.caption),
                      Text("Track").font(.caption)]
    
        let indicationTypes = [StepperIndicationType.custom(NumberedCircleView(text: "1")),
                                .custom(NumberedCircleView(text: "2")),
                                .custom(NumberedCircleView(text: "3")),
                                .custom(NumberedCircleView(text: "4")),
                                .custom(NumberedCircleView(text: "5"))]
        
        var body: some View {
            StepperView()
                .addSteps(steps)
                .indicators(indicationTypes)
                .stepIndicatorMode(StepperMode.vertical)
                .spacing(50)
                .lineOptions(StepperLineOptions.custom(1, Colors.blue(.teal).rawValue))
        }
    }
    

    Expected behavior Indicators should line up.

    Screenshots Stepper Issue

    Info (please complete the following information):

    • Device: Simulator (not tried on actual device)
    • OS: iOS 14.2
    • Xcode Version 12.2 (12B45b)

    Additional context N/A

    opened by jeffgrann 2
  • [PR-Request]  follow up to #92: removes unneccessary extension + minor corrections

    [PR-Request] follow up to #92: removes unneccessary extension + minor corrections

    Description

    Follow up to #92

    Type of change

    • [X] Bug fix
    • [ ] New feature
    • [ ] Breaking change
    • [ ] This change requires a documentation update

    How Has This Been Tested

    Please let us know if you have tested your PR and if we need to reproduce the issues. Also, please let us know if we need any relevant information for running the tests.

    • Unit Testing
    • UI Testing

    Test Configuration

    • Xcode version:
    • Device/Simulator
    • iOS version
    • MacOSX version

    Checklist:

    For checklist items not applicable, mention NA in front of it with some comment if applicable.

    • [X] My code follows the style guidelines of this project
    • [X] I have performed a self-review of my own code
    • [X] Add comments to code particularly in hard-to-understand areas
    • [X] My changes generate no new warnings
    • [X] I have added tests that prove my fix is effective or that my feature works
    • [X] New and existing unit tests pass locally with my changes before pushing the pull request
    opened by acegreen 1
  • Center rounded line alignment for StepIndicatorVerticalView

    Center rounded line alignment for StepIndicatorVerticalView

    Description

    This small change corrects the center-alignment of rounded lines in StepIndicatorVerticalView. Other vertical line types and all horizontal line types have not been tested and may also need a similar fix if they are also subtracting the full width of the line rather than half. | Before | After | |--------|------| | Screen Shot 2021-05-19 at 2 57 45 PM | Screen Shot 2021-05-19 at 2 58 52 PM |

    Type of change

    • [x] Bug fix
    • [ ] New feature
    • [ ] Breaking change
    • [ ] This change requires a documentation update

    How Has This Been Tested

    This has been manually tested for the vertical rounded line type. The code in question is only used for that type of line, so it should not break any other types.

    Test Configuration

    • Xcode version: 12.4
    • Device/Simulator 11 Pro simulator
    • iOS version 14.4
    • MacOSX version 11.2.1

    Checklist:

    For checklist items not applicable, mention NA in front of it with some comment if applicable.

    • [x] My code follows the style guidelines of this project
    • [x] I have performed a self-review of my own code
    • [x] Add comments to code particularly in hard-to-understand areas
    • [x] My changes generate no new warnings
    • NA I have added tests that prove my fix is effective or that my feature works
    • [x] New and existing unit tests pass locally with my changes before pushing the pull request
    opened by rcole34 1
  • Test deploy tag

    Test deploy tag

    Description

    Testing build without deploy tag

    Type of change

    • [ ] Bug fix
    • [ ] New feature
    • [ ] Breaking change
    • [ ] This change requires a documentation update

    How Has This Been Tested

    Please let us know if you have tested your PR and if we need to reproduce the issues. Also, please let us know if we need any relevant information for running the tests.

    • Unit Testing
    • UI Testing

    Test Configuration

    • Xcode version: 11.3
    • Device/Simulator: iPhone 11
    • iOS version: 13.3
    • MacOSX version: 10.14

    Checklist:

    For checklist items not applicable, mention NA in front of it with some comment if applicable.

    • [ ] My code follows the style guidelines of this project
    • [ ] I have performed a self-review of my own code
    • [ ] Add comments to code particularly in hard-to-understand areas
    • [ ] My changes generate no new warnings
    • [ ] I have added tests that prove my fix is effective or that my feature works
    • [ ] New and existing unit tests pass locally with my changes before pushing the pull request
    opened by badrinathvm 1
  • Welcome messages for new comers to this repo

    Welcome messages for new comers to this repo

    Description

    Welcome message for new comers to this project.

    Type of change

    • [ ] Bug fix
    • [ ] New feature
    • [ ] Breaking change
    • [ ] This change requires a documentation update

    How Has This Been Tested

    Please let us know if you have tested your PR and if we need to reproduce the issues. Also, please let us know if we need any relevant information for running the tests.

    • Unit Testing
    • UI Testing

    Test Configuration

    • Xcode version: 11.5
    • Device/Simulator: iPhone 11
    • iOS version: 13.5
    • MacOSX version: 10.14

    Checklist:

    For checklist items not applicable, mention NA in front of it with some comment if applicable.

    • [ ] My code follows the style guidelines of this project
    • [ ] I have performed a self-review of my own code
    • [ ] Add comments to code particularly in hard-to-understand areas
    • [ ] My changes generate no new warnings
    • [ ] I have added tests that prove my fix is effective or that my feature works
    • [ ] New and existing unit tests pass locally with my changes before pushing the pull request
    opened by badrinathvm 1
  • Horizontal Stepperview frame incorrect due to overlayPreferenceValue

    Horizontal Stepperview frame incorrect due to overlayPreferenceValue

    Describe the bug It seems the frame isn't calculated correctly and this results in weird UI behaviour and having to compensate by adding uneven padding

    To Reproduce Steps to reproduce the behavior: See screenshot

    Expected behavior Frame to take the full bounds of the StepperView

    Screenshots

    Even padding:

    Screen Shot 2022-07-31 at 8 39 09 PM

    IMG_0997

    Uneven padding:

    Screen Shot 2022-07-31 at 8 38 51 PM

    IMG_0996

    Screen Shot 2022-07-31 at 8 30 15 PM

    Info (please complete the following information):

    • Device: [e.g. Simulator / Real Device]
    • OS: [e.g. iOS 13]
    • Pod Version [e.g. 2.16]
    • Xcode Version [e.g. 11] if applicable

    Additional context Add any other context about the problem here.

    opened by acegreen 1
  • How to set step indicator based on step life cycle

    How to set step indicator based on step life cycle

    Hi! Is there a way to set the step indicators to change based on the life cycle of the step? I see that if I set StepLineOptions as custom it will change the line color, is there a similar thing for the step indicators?

    opened by laisbastosbg 1
  • Simple Numeric Step Indicator Without Texts

    Simple Numeric Step Indicator Without Texts

    I wanted a simple step indicator with just the number view. I'm able to achieve it by simply initialising the steps with an array of empty Texts, but not sure if it is the right way to do so. Please let me know if there is any other way to achieve the same.

    opened by ganaraj-savant 1
  • StepperEdgeInsets: trailing padding

    StepperEdgeInsets: trailing padding

    Describe the bug Unfortunately, the trailing padding is still there (I added a Spacer() between the image and text in ImageTextRowView example so it should fill the screen).

    Screenshots 131030051-cb0cc1ae-1732-46ae-b839-4a9dfb266c0f

    Info (please complete the following information):

    • Device: Real Device - iPhone 11 Pro
    • OS: 14.7.1

    Thank you for your work! :)

    opened by sandorbogyo 0
  • Add macOS support implement #46

    Add macOS support implement #46

    Description

    Added macOS support by adding macOS specifier to package.swift file. No other change is made to the codebase.

    Note: Adding macOS support will break some examples usage that uses class such as UIColor and UIScreen, @badrinathvm you might want to update those examples.

    Type of change

    • [ ] Bug fix
    • [x] New feature
    • [ ] Breaking change
    • [ ] This change requires a documentation update

    How Has This Been Tested

    No additional unit test added.

    Test Configuration

    • Xcode version: 12.5
    • Device/Simulator: Simulator iPhone iOS 15
    • iOS version: 15.0
    • MacOSX version: 11.5 Beta

    Checklist:

    For checklist items not applicable, mention NA in front of it with some comment if applicable.

    • [ ] My code follows the style guidelines of this project
    • [ ] I have performed a self-review of my own code
    • [ ] Add comments to code particularly in hard-to-understand areas
    • [ ] My changes generate no new warnings
    • [ ] I have added tests that prove my fix is effective or that my feature works
    • [ ] New and existing unit tests pass locally with my changes before pushing the pull request
    opened by jevonmao 3
  • Trailing connecting line after the last step when .top aligned

    Trailing connecting line after the last step when .top aligned

    Describe the bug There will be a trailing line after the last step, when alignment is .top and last step has multiple lines of text

    To Reproduce

        let steps = [ Text("Cart").font(.caption),
                      Text("Delivery Address").font(.caption),
                      Text("Order Summary").font(.caption),
                      Text("Payment Method").font(.caption),
                      Text("Track\nTracking\nTracking").font(.caption)]
    
        let indicationTypes = [StepperIndicationType.custom(NumberedCircleView(text: "1")),
                                .custom(NumberedCircleView(text: "2")),
                                .custom(NumberedCircleView(text: "3")),
                                .custom(NumberedCircleView(text: "4")),
                                .custom(NumberedCircleView(text: "5"))]
    
        var body: some View {
            StepperView()
                .addSteps(steps)
                .indicators(indicationTypes)
                .stepIndicatorMode(StepperMode.vertical)
                .spacing(30)
                .alignments([StepperAlignment.top, .top, .top, .top, .top])
                .lineOptions(StepperLineOptions.custom(1, Colors.blue(.teal).rawValue))
        }
    

    Expected behavior Hide the trailing line

    Screenshots https://tinypng.com/web/output/08ageudqwq54yxpuu02az1vmt7gze0mt/Screen%20Shot%202021-05-24%20at%2010.06.46%20am.png

    Info (please complete the following information):

    • Device: iPhone 12 simulator
    • OS: iOS 13
    • Pod Version (What is this?)
    • Xcode Version 12.5 (12E262)

    Additional context None. Thanks for helping.

    opened by paul4156 6
Releases(1.6.7)
  • 1.6.7(Aug 26, 2021)

    Added support for custom padding https://github.com/badrinathvm/StepperView/issues/86

    .stepperEdgeInsets(_ value: EdgeInsets)
             1. Provides custiom `leading`, `trailing`, `top` & `bottom` spacing.  
    
    Source code(tar.gz)
    Source code(zip)
  • 1.6.6(May 24, 2021)

  • 1.6.5(May 20, 2021)

  • 1.6.4(May 20, 2021)

  • 1.6.3(May 19, 2021)

  • 1.6.2(Apr 6, 2021)

  • 1.6.1(Apr 5, 2021)

    Addition of two new modifiers for Vertical Stepper View .addPitStops(_ steps: [View]): - Can add Custom Views below the Steps .pitStopLineOptions(_ options: [StepperLineOptions]) - provides customization for each of the step line.

    Source code(tar.gz)
    Source code(zip)
  • 1.6.0(Apr 4, 2021)

    • Support for customizing Vertical line options like width, color, and corner radius
    • support for changing the life cycle status for each of the steps.
    Source code(tar.gz)
    Source code(zip)
  • 1.5.5(Jan 17, 2021)

  • 1.5.4(Jan 11, 2021)

  • 1.5.3(Jan 11, 2021)

  • 1.5.2(Jun 15, 2020)

    1. Dynamic space calculation between the steps in Vertical Stepper View using .autoSpacing(true)
    2. Readme updates for the usage and example is provided in https://github.com/badrinathvm/StepperView/blob/master/Example/StepperView/ExampleView6.swift#L50
    Source code(tar.gz)
    Source code(zip)
  • 1.5.1(Jun 7, 2020)

    1. Feature for adding steps dynamically ( https://github.com/badrinathvm/StepperView/issues/52 )
    2. Example added for step dynamically (https://github.com/badrinathvm/StepperView/blob/master/Example/StepperView/ExampleView9.swift)
    3. Readme and Jazzy documents enhancements.
    Source code(tar.gz)
    Source code(zip)
  • 1.5.0(May 25, 2020)

    Extended the option of animated circular step Indicators for every step. Jazzy docs updated for 1.5.0 iOS and watchOS Github examples added

    Source code(tar.gz)
    Source code(zip)
  • 1.4.1(May 18, 2020)

    1. Scrolling fixes for Pitstop , Added examples for both watchKit and iOS
    2. Readme updates- Added table of Contents section.
    3. Refer More examples section for iPhone and WatchOS examples.
    4. Addition of screenshots for more examples.
    Source code(tar.gz)
    Source code(zip)
  • 1.4.0(May 10, 2020)

  • 1.3.1(May 4, 2020)

  • 1.3.0(Apr 28, 2020)

    1. Implementation of Pitstop feature for Vertical mode of step Indicator
    2. Support for CircledIconView for Step Indicator
    3. Jazzy documentation with 100% documentation coverage for usability
    4. Readme enhancements and examples additions for usage
    5. Addition of new modifiers .addPitStops(_ steps: [PitStopStep])
    Source code(tar.gz)
    Source code(zip)
  • 1.2.0(Apr 19, 2020)

    • Adding new view Modifiers for StepperView
      • .addSteps(_ steps: [View])
      • .alignments(_ alignments: [StepperAlignment])
      • .indicatorTypes(_ indicators:[StepperIndicationType])
      • .lineOptions(_ options: StepperLineOptions)
      • .spacing(_ value: CGFloat)
      • .stepIndicatorMode(_ mode: StepperMode)
    • Unit test fixes
    • Added new Supporting View for Indicators like NumberedCircleView
    Source code(tar.gz)
    Source code(zip)
  • 1.1.4(Apr 16, 2020)

    Support for Horizontal StepIndicator Added a new parameter for StepIndicatorMode enum Addition of Community templates like Pull request, Code of Conduct, Issues

    Source code(tar.gz)
    Source code(zip)
  • 1.1.3(Apr 14, 2020)

    1. Configured github hook for SwiftLint
    2. Snapshot Unit tests for Example Views
    3. Fixing Swift Lint violations.
    4. Uni tests for Swift Package Manager files.
    Source code(tar.gz)
    Source code(zip)
  • 1.1.2(Apr 13, 2020)

    Support for having step Indicator handling all possible combinations for alignments. Demonstrating examples via multiple tabs. Bug Fixes and Enhancements.

    Source code(tar.gz)
    Source code(zip)
Owner
Badarinath Venkatnarayansetty
Staff Software Engineer - Learning, Exploring, Experimenting new ways of building Mobile apps.
Badarinath Venkatnarayansetty
MockChat TDD MVVM SwiftUI - Mockable, Test driven Development, clear Architecture example using SwiftUI

MockChat_TDD_MVVM_SwiftUI Mockable, Test driven Development, clear Architecture

Zahirul Islam 0 Feb 5, 2022
Aplikasi iOS Berita Internasional dengan SwiftUI, API dari newsapi.org, MVVM Design Pattern, dan Paw

iNews iNews adalah aplikasi iOS Berita Internasional yang datanya didapatkan dari News API. Dibuat menggunakan SwiftUI, MVVM Design Pattern, dan Paw.

DK 8 Aug 1, 2022
Exemplify a LazyVGrid in SwiftUI in a MVVM pattern with Mock Data and images in assets.

SwiftUI-LazyVGrid Exemplify a LazyVGrid in SwiftUI in a MVVM pattern with Mock Data and images in assets. Screenshots Samples IP & Credits All those b

Ethan Halprin 3 Aug 9, 2022
SwiftUI module library for adding seasons theme animations to your app

HolidayThemes SwiftUI module library for adding seasons theme animations to your app. Requirements iOS 13.0+ Xcode 12.0+ Installation Swift Package Ma

null 2 Mar 7, 2022
A demo demonstrates how to use combine and MVVM in the SwiftUI app

SwiftUI-MVVM-Combine A demo demonstrates how to use combine and MVVM in the Swif

Asa. Ga 7 Jul 5, 2022
SFSymbols SwiftUI Enum

SF SFSymbols SwiftUI Enum Example: All lines are equivalent. Image(systemName: "square.fill.and.line.vertical.square.fill") Image(systemName:

Zach Eriksen 34 Oct 24, 2022
A sample project exploring MVVM pattern with SwiftUI/Combine, using Unsplash API (via Picsum.photos API)

CombineUnsplash A sample project exploring MVVM pattern with SwiftUI/Combine, using Unsplash API (via Picsum.photos API) with detail example. Resource

Vinh Nguyen 26 Dec 13, 2022
ProductListSwiftUI - SwiftUI Project to fetch product list using the fakestoreapi and the MVVM architectural pattern

ProductListSwiftUI SwiftUI Project to fetch product list using the fakestoreapi

Vitalii Shapovalov 4 Sep 16, 2022
An app to demo networking with SwiftUI/MVVM

Network Demo An app to demonstrate how network calls can be implemented in a SwiftUI/MVVM app. Motivations Apple's introductory tutorial is a great st

Tatsuya Kaneko 6 Oct 7, 2022
⚛️ A Reactive Data-Binding and Dependency Injection Library for SwiftUI x Concurrency.

SwiftUI Atom Properties A Reactive Data-Binding and Dependency Injection Library for SwiftUI x Concurrency ?? API Reference Introduction Examples Gett

Ryo Aoyama 199 Dec 17, 2022
This repository shows how handle Rest API's in SwiftUI and Combine

SwiftUI-Combine-Networking This repository shows how handle Rest API's in SwiftUI and Combine Endpoints enum includes paths which will be added the en

Abdullah Kardaş 5 Jan 1, 2023
Braze is a Crypto Currency App created using SwiftUI with MVVM architecture.

Braze A Crypto Currency App created using SwiftUI with MVVM architecture. Braze tracks live prices of crypto coins and can create mock portfolio. Usin

Roy 5 Dec 7, 2022
This is an iOS Safari Extension Sample that adds a "Develop menu" to Safari on iOS to allow you to analyze websites.

Develop Menu for Mobile Safari This is an iOS Safari Extension that adds a "Develop menu" to Safari on iOS to allow you to analyze websites. This is a

Watanabe Toshinori 1 Dec 7, 2022
List of awesome iOS & Swift stuff!!

Awesome iOS Developer Feel free to fork this repository and pull requests!! ?? Content Coding Convention Swift Lint Design Pattern Adaptor Delegation

Jungpyo Hong 666 Jan 8, 2023
An assignment for ios Dev intern position

iOS Assignment An assignment for ios Dev intern position Design Process A UI design for the project is made in FIGMA. Link here Figma Sneek Peek Descr

Divyam Solanki 11 Apr 28, 2022
This is a course project for CodePath Professional iOS Development class.

Parstagram - Part I This is an Instagram clone with a custom Parse backend that allows a user to post photos and view a global photos feed. Time spent

Mingkai Chen 0 Oct 13, 2021
Mini-application iOS native avec Xcode et Swift exploitant l'architecture MVVM et le framework Combine d'Apple pour la mise en place de la programmation réactive fonctionnelle, le tout avec UIKit.

iOS (Swift 5): Test MVVM avec Combine et UIKit L'architecture MVVM et la programmation réactive fonctionnelle sont très utlisées dans le développement

Koussaïla BEN MAMAR 2 Nov 5, 2022
iOS native app demo with Xcode and Swift using MVVM architecture and Apple's Combine framework for functional reactive programming, all with UIKit

iOS (Swift 5): MVVM test with Combine and UIKit MVVM and functional reactive programming (FRP) are very used in iOS development inside companies. Here

Koussaïla BEN MAMAR 2 Dec 31, 2021
USC's ITP342 iOS Development Swift Final Project

READMEBlogs USC's ITP342 iOS Development Swift Final Project NOTE: You'll need to attach your own Firebase to the app LINK TO APP ZIP FILE: https://dr

Connie Xu 0 Dec 8, 2021