All Projects → ECLaboratorio → BubbleShowCase-iOS

ECLaboratorio / BubbleShowCase-iOS

Licence: MIT License
ShowCase is a framework that provides with a view that you can display to help your users understand your App features

Programming Languages

swift
15916 projects
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to BubbleShowCase-iOS

StackBarButtonItem
🔲 StackBarButtonItem can use BarButtonItem like StackView
Stars: ✭ 55 (+52.78%)
Mutual labels:  carthage
Klendario
A Swift wrapper over the EventKit framework
Stars: ✭ 44 (+22.22%)
Mutual labels:  carthage
TermiNetwork
🌏 A zero-dependency networking solution for building modern and secure iOS, watchOS, macOS and tvOS applications.
Stars: ✭ 80 (+122.22%)
Mutual labels:  carthage
HorizontalStickyHeaderLayout
Horizontal UICollectionViewLayout with Sticky HeaderView
Stars: ✭ 70 (+94.44%)
Mutual labels:  carthage
swift-ipify
Swift library for checking your IP address from ipify.org
Stars: ✭ 37 (+2.78%)
Mutual labels:  carthage
PuiSegmentedControl
PuiSegmentedControl is a customizable for segmented control.
Stars: ✭ 19 (-47.22%)
Mutual labels:  carthage
HypeMachineAPI
No description or website provided.
Stars: ✭ 30 (-16.67%)
Mutual labels:  carthage
NeumorphismTab
Custom TabBarController with Neumorphism.
Stars: ✭ 78 (+116.67%)
Mutual labels:  carthage
punic
Punic is a remote cache CLI built for Carthage and Apple .xcframework
Stars: ✭ 25 (-30.56%)
Mutual labels:  carthage
Lighty
Easy to use and lightweight logger for iOS, macOS, tvOS, watchOS and Linux in Swift.
Stars: ✭ 49 (+36.11%)
Mutual labels:  carthage
NKJMovieComposer
NKJMovieComposer is very simple movie composer for iOS.
Stars: ✭ 40 (+11.11%)
Mutual labels:  carthage
ELWebService
A lightweight HTTP networking framework for Swift
Stars: ✭ 89 (+147.22%)
Mutual labels:  carthage
Cathay
an iOS project for demonstration of Reactive Programming
Stars: ✭ 21 (-41.67%)
Mutual labels:  carthage
Ciao
Publish and discover services using Bonjour
Stars: ✭ 50 (+38.89%)
Mutual labels:  carthage
validation-components
A collection of common validation predicates for ValidationToolkit framework
Stars: ✭ 26 (-27.78%)
Mutual labels:  carthage
SwiftGradients
Useful extensions for UIViews and CALayer classes to add beautiful color gradients.
Stars: ✭ 15 (-58.33%)
Mutual labels:  carthage
BlockiesSwift
Unique blocky identicons generator for Swift
Stars: ✭ 53 (+47.22%)
Mutual labels:  carthage
BetterMappable
Better Mappable through Property Wrappers using ObjectMapper
Stars: ✭ 26 (-27.78%)
Mutual labels:  carthage
SwiftVer
Easily Manage Versioning in MacOS, iOS, watchOS, and tvOS projects.
Stars: ✭ 23 (-36.11%)
Mutual labels:  carthage
AlertBar
An easy alert on status bar
Stars: ✭ 64 (+77.78%)
Mutual labels:  carthage

BubbleShowCase

Carthage compatible Download CocoaPods platforms License: MIT

BubbleShowCase is an elegant and easy to use framework that provides developers with a user-friendly buble-like view you can display to help your users understand your App features, improve the use of some functionality or display your App onboarding. It consists of a translucent view that obscures the screen, a bubble that displays the message for your user and the targeted view itself.

GIF

Requirement

  • iOS 9.0+
  • Swift 4.0+

Installation

CocoaPods

pod 'BubbleShowCase'

Carthage

To integrate BubbleShowCase into your Xcode project using Carthage, create a Cartfile and add:

github "ECLaboratorio/BubbleShowCase-iOS"

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage

If you don't have know what HomeBrew is, check their site for installation instructions.

Usage

Basic

It's pretty simple to show-case a feature in your App by using BubbleShowCase framework. All you have to do is initializing a show case by using one of its constructors, customizing it the way you want and calling its show method:

let showCase: BubbleShowCase! = BubbleShowCase(target: myBarButton)
showCase.titleText = "You know what?"
showCase.descriptionText = "You can do amazing things if you tap on this navbar button"
showCase.image = UIImage(named: "show-case-bar-button")
showCase.show()		// Simple as that

Note: You should call show when the target is loaded, set and positioned in the screen.

Supported targets

  • UIView
  • UITableView
  • UICollectionView
  • UIBarButtonItem
  • UITabBarItem

UICollectionViewCell and UITableViewCell

BubbleShowCase offers several constructors depending on the targets. Use the specific constructor in case of UITableViewCell or UICollectionViewCell:

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
	if indexPath.row == Constants.IndexPathForShowCase {
		let showCase = BubbleShowCase(cell: cell, target: nil, arrowDirection: .down)
		showCase.titleText = "Am I not in the screen?"
		showCase.descriptionText = "I'll stop the scroll and make sure the cell displays"
		showCase.shadowColor = UIColor.green
		
		showCase.show()
	}
}

UI Customization

Customize your show cases according to your App style:

showCase.color = UIColor.yellow
showCase.textColor = UIColor.black
showCase.shadowColor = UIColor.black
showCase.crossColor = UIColor.red
showCase.arrowDirection = .up
showCase.titleText = "My first show case"
showCase.descriptionText = "I hope you enjoy it"
showCase.image = UIImage(named: "my-show-case-image")
showCase.delegate = self
showCase.titleFont = UIFont(name: "Roboto-Bold", size: 14)!
showCase.descriptionFont = UIFont(name: "Roboto-Regular", size: 13)!

showCase.showAnimationDuration = 0.2
showCase.dismissAnimationDuration = 0.2
showCase.flickerAnimationDuration = 0.2

// Use this to force your users to tap or perform any other gesture over the target view
showCase.isCrossDismissable = false	

Concatenating show cases

Do you need to show-case several features one after another? That's easy, you just have to call concat(bubbleShowCase:) or show(after:). The former concatenates the argument as the next show case to show whereas the latter displays the show case after the argument:

let firstShowCase = BubbleShowCase(...)
let secondShowCase = BubbleShowCase(...)

firstShowCase.concat(bubbleShowCase: secondShowCase)	// secondShowCase.show(after: firstShowCase)

BubbleShowCaseDelegate

Conform to BubbleShowCaseDelegate to be aware of the show case status in the screen or to be notified of common gestures recognized over the target:

let showCase = BubbleShowCase(...)
showCase.delegate = self

...
...

func bubbleShowCase(_ bubbleShowCase: BubbleShowCase, didTap target: UIView!, gestureRecognizer: UITapGestureRecognizer) {
	print("Target was tapped!")
}

Note: In order to show-case a UIBarButton, this must be constructed by means of a custom view:

let myBarButton = UIBarButtonItem(customView: myCustomView)
let showCase: BubbleShowCase! = BubbleShowCase(target: myBarButton)
...
showCase.show()

For more information, please check our sample app.

If you have any issues or feedback, please visit issue section.
Please feel free to collaborate make this framework better.

License

BubbleShowCase-iOS is available under the MIT license. See the LICENSE file for more info.

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].