Swiftpack.co - Package - danielsaidi/Tutti

Version Platform Swift 5.1 License Twitter: @danielsaidi

About Tutti

Tutti is a Swift library that helps you create onboarding expericences, like quick hints and single- or multi-screen tutorials.

Tutti will only display a hint/tutorial once by default. You can reset the display state of a hint/tutorial if you want to display it multiple times.

Tutti also supports user-specific hints/tutorials. Just set the userId parameter and Tutti will display the hint/tutorial once for every new user.

Install

Swift Package Manager

The easiest way to add Tutti to your project is to use Swift Package Manager:

https://github.com/danielsaidi/Tutti.git

CocoaPods

pod 'Tutti'

Carthage

github "danielsaidi/Tutti"

Manual

To manually add Tutti to your app without a dependency manager, clone this repository, add Tutti.xcodeproj to your project and Tutti.framework as an embedded app binary and target dependency.

Demo App

This repository contains a demo app that demonstrates different types of hints and tutorials. To try it out, open and run the Tutti.xcodeproj project.

Hints

Tutti comes with a set of built-in hint types that can be used for different purposes.

  • StandardHint - A basic hint with no specific behavior.
  • DeferredHint - Requires a certain number of presentation attempts before it is presented.
  • CorrectBehaviorHint - Can be used to show a hint when a user is not behaving as intended.

You can also create your own custom hint types by implementing the Hint protocol.

Check out this guide for more information on how to create and present hints.

Tutorials

Tutti comes with a set of built-in tutorial types that can be used for different purposes.

  • StandardTutorial - A basic tutorial with no specific behavior.
  • DeferredTutorial - Requires a certain number of presentation attempts before it is presented.
  • CorrectBehaviorTutorial - Can be used to show a tutorial when a user is not behaving as intended.

You can also create your own custom tutorial types by implementing the Tutorial protocol.

Check out this guide for more information on how to create and present tutorials.

Contact me

I hope you like this library. Feel free to reach out if you have questions or if you want to contribute in any way:

License

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

Github

link
Stars: 157
Help us keep the lights on

Dependencies

Used By

Total: 0

Releases

2.1.2 - Sep 25, 2019

This version makes Package use https references instead of ssh.

2.1.0 - Sep 16, 2019

This version adds Xcode 11 and iOS 13 support, including support for dark mode and high contrast color variants.

2.0.0 - Mar 26, 2019

This version upgrades Tutti to Swift 5. The version contains no breaking changes.

1.5.1 - Dec 14, 2018

In 1.5.0, I added a new way of bumping the build number, by using a time stamp instead of an incremental step. However, the first time I use this, it sets the "library version" flag, for which this format is invalid. This happened in 1.5.0, which meant that it could not be installed with Carthage, nor built in Xcode. This version fixes this error.

1.5.0 - Dec 14, 2018

This version has new hint and tutorial types. The CorrectBehaviorOnboarding is an onboarding experience that is triggered when a user performs a certain number of incorrect actions. CorrectBehaviorHint and CorrectBehaviorTutorial can be used to build user behavior-based onboarding experiences. There are, however, no demos for these new classes yet.

This version includes a bug fix by @sebbo176, that makes sure that callout hints are presented using the correct superview. This solves a problem where hints did remain on screen even when the main view controller changed.

This version has some breaking changes:

  • The DeferredHint protocol is removed and the StandardDeferredHint has been renamed to DeferredHint. This makes the class hierarchy a lot easier to manage.
  • The DeferredTutorial protocol is removed, and the StandardDeferredTutorial has been renamed to DeferredTutorial, just as the hints above.
  • The LocalizedTutorial class has been removed. Instead, this functionality is now accessible by using a new StandardTutorial initializer.