Classes

The following classes are available globally.

  • The default audio session controller for iOS applications that use background audio.

    See more

    Declaration

    Swift

    public final class RSDDefaultAudioSessionController : NSObject, RSDAudioSessionController
  • RSDSpeechSynthesizer is a concrete implementation of the RSDVoiceBox protocol that uses the AVSpeechSynthesizer to synthesize text to sound.

    See more

    Declaration

    Swift

    open class RSDSpeechSynthesizer : NSObject, RSDVoiceBox, AVSpeechSynthesizerDelegate
  • RSDAppDelegate is an optional class that can be used as the appDelegate for an application.

    Using this class as the base class of your app delegate is not required, but is included as a possible solution to certain common issues with setting up an app.

    See more

    Declaration

    Swift

    open class RSDAppDelegate : UIResponder, RSDAppOrientationLock, RSDAlertPresenter
  • RSDTaskViewController is the default implementation of task view controller that is suitable to the iPhone or iPad. The default implementation will display a series of steps using a UIPageViewController. This controller will also handle starting and stoping async actions and vending the appropriate step view controller for each step.

    See more

    Declaration

    Swift

    open class RSDTaskViewController : UIViewController, RSDTaskController, UIPageViewControllerDelegate, UIPageViewControllerDataSource, RSDAsyncActionDelegate, RSDLoadingViewControllerProtocol
  • RSDActiveStepViewController is a simple timer for displaying a longer activity where the user is doing an action while the countdown timer is running.

    This view controller includes a default nib implementation that is included in this framework. It includes various UI elements that can indicate to the user how much time is remaining in a longer-running step. For example, this could be used during a walk step to indicate to the user how long they have been walking as well as how much longer they have to walk before the step is complete.

    Seealso

    RSDTaskViewController.vendDefaultViewController(for:)
    See more

    Declaration

    Swift

    open class RSDActiveStepViewController : RSDFullscreenImageStepViewController
  • RSDCountdownStepViewController is a simple countdown timer for displaying a short duration (5-4-3-2-1) countdown.

    This view controller includes a default nib implementation that is included in this framework. It includes a countdownLabel that can be used to show a numeric countdown (5-4-3-2-1) and a pauseButton that can be used to pause the countdown timer.

    Seealso

    RSDTaskViewController.vendDefaultViewController(for:)
    See more

    Declaration

    Swift

    open class RSDCountdownStepViewController : RSDFullscreenImageStepViewController
  • RSDNavigationController extends UINavigationController with a pass-through implementation of RSDStepController.

    This allows step controllers to be wrapped in a navigation controller for UI implementations that use the features of a navigation controller, while passing control of the step to the step controller.

    Note

    For applications that customize the navigation controller with their own subclass implementation, this implementation can be copy/pasted and used to extend that custom implementation. This framework does not force using this implementation by extending UINavigationController directly.
    See more

    Declaration

    Swift

    open class RSDNavigationController : UINavigationController, RSDStepController
  • RSDOverviewStepViewController is a customizable view controller that is designed to be the first view displayed for an active task that may require checking the user’s permissions and allows the user to set a notification reminder to perform the task at a later time.

    See more

    Declaration

    Swift

    open class RSDOverviewStepViewController : RSDPermissionStepViewController
  • RSDTableStepViewController is a custom instance of RSDStepViewController. Its subviews include a UITableView, a RSDNavigationFooterView, which may or may not be embedded in the tableView as its footerView, and a RSDNavigationHeaderView, which is embedded in the tableView as its headerView.

    This class populates the contents and properties of the headerView and navigationView based on the associated RSDStep, which is expected to be set before presenting the view controller.

    An instance of RSDFormStepDataSource is created by setupModel() and assigned to property tableData. This method is called by viewWillAppear() and serves as the UITableViewDataSource. The tableData also keeps track of answers that are derived from the user’s input and it provides the RSDResult that is appended to the RSDTaskViewModel associated with this task.

    This class is responsible for acquiring input from the user, validating it, and supplying it as an answer to to the model (tableData). This is typically done in delegate callbacks from various input views, such as UITableView (didSelectRow) or UITextField (valueDidChange or shouldChangeCharactersInRange).

    Some RSDSteps, such as RSDFactory.StepType.instruction, require no user input (and have no input fields). These steps will result in a tableData that has no sections and, therefore, no rows. So the tableView will simply have a headerView, no rows, and a footerView.

    See more

    Declaration

    Swift

    open class RSDTableStepViewController : RSDStepViewController, UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate, UITextViewDelegate, RSDTableDataSourceDelegate, RSDPickerObserver, RSDButtonCellDelegate, RSDTaskViewControllerDelegate
  • RSDTableStepUIConfig is a configuration class. All the methods are defined as @objc open class func methods which can be overriden by an application to return different shared implementations. This allows the generic step to override the UI consistently for all step views that use either RSDTableStepViewController or a subclass implementation.

    See more

    Declaration

    Swift

    public class RSDTableStepUIConfig : NSObject
  • RSDTaskInfoStepViewController is designed to be used to display a RSDTaskInfoStep either to give the user feedback when a task or survey is being fetched or else to provide a consistent UI for the introduction of all tasks.

    This view controller includes a default nib implementation that is included in this framework. It includes various UI elements that can indicate to the user how much time is remaining in a longer-running step. For example, this could be used during a walk step to indicate to the user how long they have been walking as well as how much longer they have to walk before the step is complete.

    Seealso

    RSDTaskViewController.vendDefaultViewController(for:)
    See more

    Declaration

    Swift

    open class RSDTaskInfoStepViewController : RSDStepViewController, UITextViewDelegate
  • RSDWebViewController is a simple view controller for showing a webview. The base-class implementation supports loading a web view from a URL, HTML string, or RSDResourceTransformer. It is assumed that the property will be set for one of these values.

    See more

    Declaration

    Swift

    open class RSDWebViewController : UIViewController, WKNavigationDelegate
  • RSDLoadingView is a simple loading view for displaying a loading indicator in a view.

    See more

    Declaration

    Swift

    open class RSDLoadingView : UIView
  • RSDDatePicker is a date picker that stores a pointer to the index path with which it is associated.

    See more

    Declaration

    Swift

    public class RSDDatePicker : UIDatePicker, RSDPickerViewProtocol
  • RSDChoicePickerView is a UIPickerView that can be used to represent a picker with an associated index path. This picker has a RSDChoicePickerDataSource as it’s source. This implementation only supports text choices.

    See more

    Declaration

    Swift

    open class RSDChoicePickerView : UIPickerView, RSDPickerViewProtocol, UIPickerViewDataSource, UIPickerViewDelegate, RSDViewDesignable
  • RSDNumberPickerView is a UIPickerView that can be used to represent a picker with an associated index path. This picker has a RSDNumberPickerDataSource as it’s source.

    See more

    Declaration

    Swift

    open class RSDNumberPickerView : UIPickerView, RSDPickerViewProtocol, UIPickerViewDataSource, UIPickerViewDelegate
  • RSDButton is a base-class implementation of RSDButtonProtocol that handles overriding default accessibility behavior for a button in transition.

    Declaration

    Swift

    @IBDesignable
    open class RSDButton : UIButton
  • RSDRoundedButton is a UI element for displaying navigation buttons in the footer area of a view.

    See more

    Declaration

    Swift

    @IBDesignable
    open class RSDRoundedButton : RSDButton, RSDViewDesignable
  • RSDShadowGradient is a UI element for adding a shadow gradient to a view.

    Declaration

    Swift

    @IBDesignable
    open class RSDShadowGradient : UIView
  • RSDStepNavigationView is a custom UIView to be included in a RSDStepViewController. It optionally contains references to standard step navigation UI including a next button, back button, skip button, learn more button, and cancel button.

    See more

    Declaration

    Swift

    @IBDesignable
    open class RSDStepNavigationView : UIView, RSDViewDesignable
  • RSDNavigationHeaderView is a general purpose navigation header view that can be used by the step view controller to include UI elements that may typically be shown at the top of the step view.

    See more

    Declaration

    Swift

    @IBDesignable
    open class RSDNavigationHeaderView : RSDStepNavigationView
  • RSDStepHeaderView is a custom UIView designed for use as a header view in a table view, such as an RSDTableStepViewController.

    See more

    Declaration

    Swift

    @IBDesignable
    open class RSDStepHeaderView : RSDNavigationHeaderView
  • RSDTableStepHeaderView is a concrete implementation of RSDStepHeaderView that will automatically lay out the UI elements in this order, from top to bottom of the view:

    1. cancelButton: UIButton - allows for cancelling the task
    2. progressView: RSDStepProgressView - show progress thru the current flow
    3. imageView: UIImageView - shows an image associated with the current step
    4. titleLabel: UILabel - generally the Title of the current step
    5. textLabel: UILabel - generally the Text of the current step
    6. learnMoreButton: UIButton - a button to call the learnMoreAction
    7. detailLabel: UILabel - a label intended to prompt the user to enter data or make a selection

    Several public properties are provided to configure the view, such has hiding or showing the learnMoreButton or progressView, and providing a minimumHeight or customView.

    See more

    Declaration

    Swift

    open class RSDTableStepHeaderView : RSDStepHeaderView
  • RSDNavigationFooterView is an abstract implementation for the RSDStepNavigationView which can be added to a Nib, Storyboard or instantiated using the RSDTableStepUIConfig.instantiatNavigationView() method.

    See more

    Declaration

    Swift

    @IBDesignable
    open class RSDNavigationFooterView : RSDStepNavigationView
  • RSDGenericNavigationFooterView is a concrete implementation of RSDNavigationFooterView that will automatically lay out the UI elements included in the navigation footer:

    1. nextButton: UIButton - for navigating to the next step
    2. backButton: UIButton - for navigating to the previous step
    3. skipButton: UIButton - for skipping the step or task
    4. shadowView: RSDShadowGradient - shows a shadow to indicate that there is content below the fold
    See more

    Declaration

    Swift

    @IBDesignable
    open class RSDGenericNavigationFooterView : RSDNavigationFooterView
  • RSDStepProgressView is a UI element that displays a progress bar drawn horizontally from left to right.

    This view includes an optional pointer to stepCountLabel which is not a subview of this view but can be used to display current step and number of steps.

    The view controller must set currentStep and totalSteps to cause progress to be displayed.

    See more

    Declaration

    Swift

    @IBDesignable
    open class RSDStepProgressView : UIView, RSDViewDesignable
  • RSDStepChoiceSectionHeader is the base implementation for a selection table view section header of a form step.

    See more

    Declaration

    Swift

    @IBDesignable
    open class RSDTableSectionHeader : UITableViewHeaderFooterView, RSDViewDesignable
  • The template image button is designed as a button that shows a template image within a button. There are different supported style-types for the button that can be used with the design system to set up the color of the button and the default tint for the image within.

    See more

    Declaration

    Swift

    @IBDesignable
    open class RSDTemplateImageButton : UIButton, RSDViewDesignable
  • The template image view is designed as an image view that shows a template image within a framing view.

    See more

    Declaration

    Swift

    @IBDesignable
    open class RSDTemplateImageView : UIView
  • A simple button that draws a open/closed chevron that can be used to indicate whether or not the details are expanded.

    See more

    Declaration

    Swift

    @IBDesignable
    public final class RSDDetailsChevronButton : UIButton