• Stars
    star
    441
  • Rank 98,861 (Top 2 %)
  • Language
    Objective-C
  • License
    MIT License
  • Created over 10 years ago
  • Updated almost 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Surfboard is a delightful onboarding framework for iOS.

Surfboard

Surfboard is a delightful onboarding library for iOS.

Screenshots

Intro Panels

Dependencies

Surfboard was developed with Xcode 5 and the iOS 7 SDK. It uses autolayout and UICollectionViewController, so although it hasn't been tested on iOS 6, you may entertain yourself by trying to run Surfboard on it.

Installing Surfboard

Add the contents of the SRFSurfboard project to your directory, or use CocoaPods:

pod 'Surfboard'

Import SRFSurfboard.h to get access to all of the great features of Surfboard.

Getting Started

When we talk about Surfboards, we talk about a set of panels. Each panel is a screenful of information, including some text, an image or screenshot, and optionally, a button.

Take a look at the Sample Data directory for an idea of what a sample JSON configuration looks like.

Showing a Surfboard

You can show a surfboard by using a segue, or by creating a an instance of SRFSurfboardViewController and passing it an array of some panels. You can also pass a path to a JSON file, which we'll discuss in just a second.

The two initializers for a surfboard:

//	One surfboard, the initWithPanels: way.

SRFSurfboardViewController *surfboard = [[SRFSurfboardViewController alloc] initWithPanels:anArrayOfPanels];

//	Another surfboard, the initWithPathToCofiguration way.

SRFSurfboardViewController *surfboard = [[SRFSurfboardViewController alloc] initWithPathToConfiguration:aPathToJSONFile];

Creating Panels

Panels can be created programatically, or using a JSON file. The JSON format is simple. There are four keys:

  1. text The text that appears at the top of the panel.
  2. image An image to show in the panel. The image is tinted to the tintColor of the surfboard.
  3. screen A screenshot to show in the panel. The screenshot is not tinted.
  4. button The title of a button to show at the bottom of the panel. This is optional.

Note that either the contents of the "image" or "screen" will be used, but not both. Supplying both results in undefined behavior.

Here's a sample panel:

{
	"text" : "Welcome to Surfboard.",
	"image" : "swipe"
}

You'd want to add an image to your bundle or asset catelog named "swipe.png" and Surfboard would display it.

License

SRFSurfboard is released under the MIT license. See LICENSE for more.

More Open Source

If you like SRFSurfboard, you may like some of my other projects on GitHub.

More Repositories

1

MBCalendarKit

An open source calendar framework for iOS, with support for customization, IBDesignable, Autolayout, and more.
Objective-C
560
star
2

PatronKit

A framework to add patronage to your apps.
Swift
363
star
3

MBTileParser

MBTileParser is a game engine written using pure UIKit in the days before SpriteKit.
Objective-C
291
star
4

Precalc

This repo contains some code which can graph equations in a UIView.
Swift
105
star
5

MBMenuController

MBMenuController is similar to UIActionSheet.
Objective-C
72
star
6

ios-audio-remote-control

This repo demonstrates how to control the software based audio remote control in iOS.
Objective-C
52
star
7

FilterBar

A marriage of UINavigationBar and UISegmentedControl.
Swift
34
star
8

KosherCocoa-legacy

A port of the KosherJava project from Java to Objective-C Cocoa
Objective-C
22
star
9

ScrollViewSnapshotter

A demo project showing how to correctly snapshot the contents UIScrollView and its subclasses.
Swift
18
star
10

SpeedDialApp

A speed dial app for iOS.
Objective-C
10
star
11

Fahrii

A wrapper on Safari Mobile to support userscripts
Objective-C
7
star
12

KosherCocoa

My Objective-C port of KosherJava. KosherCocoa enables you to perform sunrise-based and sunset-based calculations for Jewish prayer and calendar.
Objective-C
7
star
13

GiphyKit

A Giphy Client + Framework in Swift
Swift
4
star
14

SpiffyKit

A framework for a drop-in view controller that allows users to contact you and share your app.
Objective-C
4
star
15

CustomScrollIndicator

A quick demo project demonstrating how to customize UIScrollView's scroll indicators.
Swift
3
star
16

MinimalOverflow

A userscript that invokes a minimalist theme on StackOverflow.com
JavaScript
3
star
17

Nippon

Nippon is a classic turn-based trading game. Reinvented for iOS.
Objective-C
3
star
18

ABookOnC

I'm using this repo to brush up on my C code, working with A Book On C.
C
2
star
19

HackerSim

Simulates hacking like in a movie
C++
2
star
20

MBScrollingLabel

A drop-in replacement for UILabel that adds the ability to scroll text.
Objective-C
2
star
21

Fence

Fence is an iOS app which assists in the creation of geofences for use location-sensitive applications.
Objective-C
2
star
22

MBRecyclingScrollView

This is a barebones implementation of view recycling. It includes a UIScrollView subclass, a barebones datasource protocol, and a barebones delegate protocol. There's no demo UI at the moment, but all the files you need are in a single folder.
Objective-C
2
star
23

LevenshteinMachine

A small project to calculate Levenshtein Distance between two strings, including unit tests and samples.
Objective-C
1
star
24

StudentsFirst

A user script to make CUNY First easier to use.
JavaScript
1
star
25

Pantheon

Pantheon is a project that allows the editing of Xcode projects on the iPad.
Objective-C
1
star
26

Nippon-Swift

A rewrite of my iOS game, Nippon, in Swift.
Swift
1
star
27

my-snippets

This is a collection of code snippets for Xcode that help with implementing Appledoc.
1
star
28

html-house

An interactive house made of HTML and CSS.
1
star
29

Introspector

An app to introspect the Objective-C runtime.
Objective-C
1
star
30

Polygon

An app using Core Graphics and math used to draw polygons.
1
star
31

MBGoDavenScraper

This is a utility app for OS X to scrape some data from GoDaven.com
Objective-C
1
star
32

Hipster

Find a new release before it was cool.
Swift
1
star
33

Stolz

Stolz is a library for handling Facebook login on OS X
Objective-C
1
star
34

MosheBerman-ios

This repo contains the source code for the Moshe Berman app.
Objective-C
1
star
35

wedding-site

This is the rep for mosheberman.com/wedding
JavaScript
1
star
36

Bitachon.org

The source code for the Bitachon.org website
JavaScript
1
star
37

PolygonJS

A demo app using math and the HTML 5 canvas element to draw polygons.
1
star
38

MosheBerman.com

My iOS themed website
CSS
1
star
39

Anchor

Anchor is a proof of concept of an idea I had to use one iOS device to help debug an app on another.
Swift
1
star