diff --git a/README.md b/README.md index 3deedbf..344aeea 100644 --- a/README.md +++ b/README.md @@ -4,20 +4,10 @@ [![License](http://img.shields.io/:license-mit-blue.svg)](http://doge.mit-license.org) ![Badge w/ Version](https://img.shields.io/cocoapods/v/Onboard.svg) -Onboard provides developers with a quick and easy means to create a beautiful, engaging, and useful onboarding experience with only a few lines of code. - ![demo](Screenshots/city.gif) -![demo](Screenshots/almanac.gif) -![demo](Screenshots/solar.gif) -![demo](Screenshots/waves.gif) -![demo](Screenshots/gemr.gif) -![demo](Screenshots/tripnary.gif) - -Swift Compatibility -==== - -I currently have implementations written in both Objective-C and Swift, although currently due to time constraints the Swift implementation does not have all of the customization features available in the Objective-C version, namely the skipping feature, customizing different fonts for different components on the same page, etc. I will do my best to get the Swift version to match the Objective-C version as soon as possible, and any pull requests are welcomed in the meantime! +#[More Examples](examples.md) +===== Usage @@ -31,14 +21,9 @@ Adding the following to your `Podfile` and running `pod install` should do the t pod 'Onboard' ``` -Manual ------- -Drop the OnboardingViewController and OnboardingContentViewController header and implementation files into your project, import them into your AppDelegate, and you're ready to create an awesome onboarding experience for your users! +Each onboarding experience is comprised of two primary components - the background and the content pages. The background includes the static background image/video, the page control, and the skip button. The content pages are made up of four pieces, an image/icon, title, body, and action button. -Create individual pages by creating an OnboardingContentViewController, providing it a title, body, image, text for an action button, and within the action block handle whatever you want to do when the users press the button. If you don't want a button, you can leave both the button text and action handler nil. - -Objective-C -------- +Create individual pages by creating instances of `OnboardingContentViewController`. Provide a title, body, image, text for an action button, and within the action block handle whatever you want to do when the users press the button. If you don't want a button, you can leave both the button text and action handler nil. ```objective-c OnboardingContentViewController *firstPage = [OnboardingContentViewController contentWithTitle:@"Page Title" body:@"Page body goes here." image:[UIImage imageNamed:@"icon"] buttonText:@"Text For Button" action:^{ @@ -46,19 +31,8 @@ OnboardingContentViewController *firstPage = [OnboardingContentViewController co }]; ``` -Swift -------- - -```objective-c -let firstPage: OnboardingContentViewController = OnboardingContentViewController(title: "Page Title", body: "Page Body.", image: UIImage(named: "icon"), buttonText: "Button Text") { - // do something here when the user presses the button -} -``` - -Then create the OnboardingViewController by providing either a background image or a URL to a local video file in your project, and an array of OnboardingContentViewControllers you just created. You can then present the view modally and get the onboarding process started! +Then create the `OnboardingViewController` by providing either a background image or a URL to a local video file in your project, and an array of content view controllers you just created. You can then present the view modally and get the onboarding process started! -Objective-C -------- ```objective-c // Image @@ -72,13 +46,6 @@ NSURL *movieURL = [NSURL fileURLWithPath:moviePath]; OnboardingViewController *onboardingVC = [OnboardingViewController onboardWithBackgroundVideoURL:movieURL contents:@[firstPage, secondPage, thirdPage]]; ``` -Swift -------- - -```objective-c -let onboardingVC: OnboardingViewController = OnboardingViewController(backgroundImage: UIImage(named: "background"), contents: [firstPage, secondPage, thirdPage]) -``` - With only a few lines of code you have a beautiful, end-to-end onboarding process that will get your users excited to use your awesome application. @@ -173,58 +140,6 @@ Notes I'm not currently supporting landscape at the moment, so I would recommend either using this in an application that only supports portrait, or wrapping it in a subclassed UINavigationController that only supports portrait. -Apps Using Onboard -============= - -If your app is currently using onboard, let me know and I would love to feature it here! - -[Gemr](http://www.gemr.com/ "Gemr") -=== - - -![demo](Screenshots/gemr1.PNG) -![demo](Screenshots/gemr2.PNG) -![demo](Screenshots/gemr3.PNG) - -[Tripnary](http://tripnary.com/ "Tripnary") -=== - -Thanks to [goelv](https://github.com/goelv) for this! You did a superb job! - -![demo](Screenshots/tripnary1.PNG) -![demo](Screenshots/tripnary2.PNG) -![demo](Screenshots/tripnary3.PNG) -![demo](Screenshots/tripnary4.PNG) -![demo](Screenshots/tripnary5.PNG) - -[Almanac - coming soon!](https://github.com/rldaulton) -=== - -![demo](Screenshots/almanac1.png) -![demo](Screenshots/almanac2.png) -![demo](Screenshots/almanac3.png) - -More Samples -============= - -![demo](Screenshots/city1.png) -![demo](Screenshots/city2.png) -![demo](Screenshots/city3.png) - -![demo](Screenshots/solar1.png) -![demo](Screenshots/solar2.png) -![demo](Screenshots/solar3.png) - -![demo](Screenshots/space1.png) -![demo](Screenshots/space2.png) -![demo](Screenshots/space3.png) -![demo](Screenshots/space4.png) - -![demo](Screenshots/purple1.png) -![demo](Screenshots/purple2.png) -![demo](Screenshots/purple3.png) -![demo](Screenshots/purple4.png) - Community ===== @@ -236,4 +151,3 @@ License ===== This project is made available under the MIT license. See LICENSE.txt for details. - diff --git a/examples.md b/examples.md new file mode 100644 index 0000000..1205d9d --- /dev/null +++ b/examples.md @@ -0,0 +1,49 @@ +Here are some examples I've put together for fun, as well as apps submitted by others who are using Onboard +=== + +![demo](Screenshots/waves.gif) + +If your app is currently using onboard, let me know and I would love to feature it here! + +[Gemr](http://www.gemr.com/ "Gemr") +=== + +![demo](Screenshots/gemr.gif) +![demo](Screenshots/gemr1.PNG) +![demo](Screenshots/gemr2.PNG) +![demo](Screenshots/gemr3.PNG) + +[Tripnary](http://tripnary.com/ "Tripnary") +=== + +![demo](Screenshots/tripnary.gif) +![demo](Screenshots/tripnary1.PNG) +![demo](Screenshots/tripnary2.PNG) +![demo](Screenshots/tripnary3.PNG) +![demo](Screenshots/tripnary4.PNG) +![demo](Screenshots/tripnary5.PNG) + +[Almanac - coming soon!](https://github.com/rldaulton) +=== +![demo](Screenshots/almanac.gif) +![demo](Screenshots/almanac1.png) +![demo](Screenshots/almanac2.png) +![demo](Screenshots/almanac3.png) + +More Samples +============= + +![demo](Screenshots/solar.gif) +![demo](Screenshots/solar1.png) +![demo](Screenshots/solar2.png) +![demo](Screenshots/solar3.png) + +![demo](Screenshots/space1.png) +![demo](Screenshots/space2.png) +![demo](Screenshots/space3.png) +![demo](Screenshots/space4.png) + +![demo](Screenshots/purple1.png) +![demo](Screenshots/purple2.png) +![demo](Screenshots/purple3.png) +![demo](Screenshots/purple4.png) \ No newline at end of file