All Projects → xmartlabs → Ahoy

xmartlabs / Ahoy

Licence: MIT license
A lightweight swift library to build onboarding experiences.

Programming Languages

swift
15916 projects
ruby
36898 projects - #4 most used programming language
objective c
16641 projects - #2 most used programming language

Projects that are alternatives of or similar to Ahoy

Material Singleinputform
A single EditText instead of a classical form. Library that implements flavienlaurent's singleinputform
Stars: ✭ 202 (+296.08%)
Mutual labels:  onboarding
awesome-engineer-onboarding
😎 A curated list of awesome resources for engineer onboarding
Stars: ✭ 76 (+49.02%)
Mutual labels:  onboarding
pal-plugin
The Flutter onboarding editor
Stars: ✭ 16 (-68.63%)
Mutual labels:  onboarding
Tutti
Tutti is a Swift library that lets you create tutorials, hints and onboarding experiences.
Stars: ✭ 224 (+339.22%)
Mutual labels:  onboarding
Ampoptip
An animated popover that pops out a given frame, great for subtle UI tips and onboarding.
Stars: ✭ 2,854 (+5496.08%)
Mutual labels:  onboarding
FastOnBoarding
very easy onboarding page
Stars: ✭ 18 (-64.71%)
Mutual labels:  onboarding
Codetour
VS Code extension that allows you to record and playback guided tours of codebases, directly within the editor.
Stars: ✭ 1,139 (+2133.33%)
Mutual labels:  onboarding
members
Online portal for Code for Denver members
Stars: ✭ 15 (-70.59%)
Mutual labels:  onboarding
guide
A new feature guide component by react 🧭
Stars: ✭ 597 (+1070.59%)
Mutual labels:  onboarding
stepper-indicator
Step indicator for onboarding or simple viewpager
Stars: ✭ 180 (+252.94%)
Mutual labels:  onboarding
Pvview
A small library that helps you to make an amazing parallax view
Stars: ✭ 227 (+345.1%)
Mutual labels:  onboarding
Material Intro Screen
Inspired by Heinrich Reimer Material Intro and developed with love from scratch
Stars: ✭ 2,722 (+5237.25%)
Mutual labels:  onboarding
etalab
Livret de bienvenue destiné aux membres d’Etalab.
Stars: ✭ 24 (-52.94%)
Mutual labels:  onboarding
Material Onboarding
A simple library which allows easy replication of several* app onboarding techniques.
Stars: ✭ 217 (+325.49%)
Mutual labels:  onboarding
Android-Onboarder
Android Onboarder is a simple and lightweight library that helps you to create cool and beautiful introduction screens for your apps without writing dozens of lines of code.
Stars: ✭ 85 (+66.67%)
Mutual labels:  onboarding
Examples
Jina examples and demos to help you get started
Stars: ✭ 185 (+262.75%)
Mutual labels:  onboarding
haskell-for-typescript-devs
Onboarding Material: Haskell for TypeScript Developers
Stars: ✭ 37 (-27.45%)
Mutual labels:  onboarding
GuideChimp
Create interactive guided product tours in minutes with the most non-technical friendly, lightweight and extendable library.
Stars: ✭ 138 (+170.59%)
Mutual labels:  onboarding
aloha
An onboarding bot for busy admins and growing Slack teams.
Stars: ✭ 20 (-60.78%)
Mutual labels:  onboarding
CoachMarks
UI component to focus the user's attention on parts of the app
Stars: ✭ 37 (-27.45%)
Mutual labels:  onboarding

Ahoy

Platform iOS Swift 3 compatible Carthage compatible CocoaPods compatible License: MIT

By Xmartlabs SRL.

Introduction

Ahoy is a swift library that helps you build awesome onboarding experiences for your users.

Usage

In order to setup your onboarding you need to define 2 components:

  • The specific view controller that you are going to use, which should subclass from OnboardingViewController. This will handle all the specific logic related to displaying the slides and managing any global control that you want to use (an skip button for example).
  • A Presenter which should implement the protocol OnboardingPresenter. This will handle all the specific functionality of each cell (which text goes where, the type of cells, etc.)

Basic setup

  • Create your own presenter implementation, either implementing OnboardingPresenter protocol or subclassing from BasePresenter.
  • Create your OnboardingViewController subclass and set the presenter property to an instance of your presenter's class. This must be done before calling super.viewDidLoad().

After this you are ready to go! You can add any other ui components that you want via IBOutlets or directly by code.

Example
import Ahoy
class MovieFanOnboardingController: OnboardingViewController {

    override func viewDidLoad() {
        presenter = MovieFanPresenter()
        presenter.onOnBoardingFinished = { [weak self] in
            _ = self?.navigationController?.popViewController(animated: true)
        }
        super.viewDidLoad()
    }

}

class MovieFanPresenter: BasePresenter {
  // Your presenter implementation's here
}

Callbacks

In order to manage user interaction, when the onboarding is finished, skipped or when a slide is being displayed. Ahoy provides a few helpers to manage this consistently:

  • onOnboardingSkipped: Is called by the controller when the user taps on the skip action.
  • onOnBoardingFinished: Is called by the controller when the user taps on finish.
  • visibilityChanged(for cell: UICollectionViewCell, at index: Int, amount: CGFloat): is called each time the visibility of a cell changes, this can be used to implement some cool animations between each cell.

BasePresenter

By default, Ahoy provides an implementation of OnboardingPresenter, BasePresenter which handles basic functionality and has some customization parameters:

public var cellBackgroundColor: UIColor
public var doneButtonColor: UIColor
public var doneButtonTextColor: UIColor
public var textColor: UIColor
public var swipeLabelText: String
public var titleFont: UIFont
public var bodyFont: UIFont
public var skipColor: UIColor
public var skipTitle: String
public var model: [OnboardingSlide]
public var onOnBoardingFinished: (() -> ())?
public var onOnboardingSkipped: (() -> ())?

BottomOnobardingController

Ahoy provides another implementation of the OnboardingViewController that has global controls at the bottom of the screen. The BottomOnobardingController uses BottomPresenter as a Presenter.

Requirements

  • iOS 9.0+
  • Xcode 9.0+

Getting involved

  • If you want to contribute please feel free to submit pull requests.
  • If you have a feature request please open an issue.
  • If you found a bug or need help please check older issues, FAQ and threads on StackOverflow (Tag 'Ahoy') before submitting an issue..

Before contribute check the CONTRIBUTING file for more info.

If you use Ahoy in your app We would love to hear about it! Drop us a line on twitter.

Examples

Follow these 3 steps to run Example project: Clone Ahoy repository, open Ahoy workspace and run the Example project.

Installation

CocoaPods

CocoaPods is a dependency manager for Cocoa projects.

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

pod 'Ahoy', '~> 2.0'

Carthage

Carthage is a simple, decentralized dependency manager for Cocoa.

To install Ahoy, simply add the following line to your Cartfile:

github "xmartlabs/Ahoy" ~> 2.0

Author

Change Log

This can be found in the CHANGELOG.md file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].