{"id":13849078,"url":"https://github.com/MosheBerman/Surfboard","last_synced_at":"2025-07-12T15:33:03.922Z","repository":{"id":19641215,"uuid":"22893440","full_name":"MosheBerman/Surfboard","owner":"MosheBerman","description":"Surfboard is a delightful onboarding framework for iOS.","archived":false,"fork":false,"pushed_at":"2016-12-13T12:19:08.000Z","size":17284,"stargazers_count":441,"open_issues_count":6,"forks_count":54,"subscribers_count":18,"default_branch":"master","last_synced_at":"2024-11-16T23:04:06.794Z","etag":null,"topics":["ios","objective-c","onboard","screenshot","tutorial"],"latest_commit_sha":null,"homepage":null,"language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MosheBerman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-12T21:40:37.000Z","updated_at":"2024-02-24T13:00:08.000Z","dependencies_parsed_at":"2022-08-24T14:03:33.967Z","dependency_job_id":null,"html_url":"https://github.com/MosheBerman/Surfboard","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MosheBerman%2FSurfboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MosheBerman%2FSurfboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MosheBerman%2FSurfboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MosheBerman%2FSurfboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MosheBerman","download_url":"https://codeload.github.com/MosheBerman/Surfboard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225829313,"owners_count":17530663,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ios","objective-c","onboard","screenshot","tutorial"],"created_at":"2024-08-04T19:01:07.362Z","updated_at":"2024-11-22T01:30:27.308Z","avatar_url":"https://github.com/MosheBerman.png","language":"Objective-C","readme":"Surfboard\n========\n\nSurfboard is a delightful onboarding library for iOS.\n\nScreenshots\n---\n![Intro](Screenshots/Intro.png)\n![Panels](Screenshots/Panels.png)\n\nDependencies\n---\nSurfboard 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.\n\nInstalling Surfboard\n---\nAdd the contents of the SRFSurfboard project to your directory, or use CocoaPods:\n\n`pod 'Surfboard'`\n\nImport `SRFSurfboard.h` to get access to all of the great features of Surfboard.\n\nGetting Started\n---\nWhen 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. \n\nTake a look at the Sample Data directory for an idea of what a sample JSON configuration looks like.\n\nShowing a Surfboard\n---\nYou 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.\n\nThe two initializers for a surfboard:\n\n\t//\tOne surfboard, the initWithPanels: way.\n\t\n\tSRFSurfboardViewController *surfboard = [[SRFSurfboardViewController alloc] initWithPanels:anArrayOfPanels];\n\t\n\t//\tAnother surfboard, the initWithPathToCofiguration way.\n\t\n\tSRFSurfboardViewController *surfboard = [[SRFSurfboardViewController alloc] initWithPathToConfiguration:aPathToJSONFile];\n\t\nCreating Panels\n---\nPanels can be created programatically, or using a JSON file. The JSON format is simple. There are four keys:\n\n1. **text** The text that appears at the top of the panel.\n2. **image** An image to show in the panel. The image is tinted to the `tintColor` of the surfboard.\n3. **screen** A screenshot to show in the panel. The screenshot is not tinted.\n4. **button** The title of a button to show at the bottom of the panel. This is optional.\n\nNote that either the contents of the \"image\" or \"screen\" will be used, but not both. Supplying both results in undefined behavior.\n\nHere's a sample panel:\n\n\t{\n\t\t\"text\" : \"Welcome to Surfboard.\",\n\t\t\"image\" : \"swipe\"\n\t}\n\nYou'd want to add an image to your bundle or asset catelog named \"swipe.png\" and Surfboard would display it.\n\nLicense\n---\nSRFSurfboard is released under the MIT license. See [LICENSE](./LICENSE) for more.\n\nMore Open Source\n---\nIf you like SRFSurfboard, you may like some of [my other projects](https://github.com/MosheBerman?tab=repositories) on GitHub.\n\n\n\t\n\n\n\n","funding_links":[],"categories":["Objective-C"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMosheBerman%2FSurfboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMosheBerman%2FSurfboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMosheBerman%2FSurfboard/lists"}