{"id":1483,"url":"https://github.com/suzuki-0000/SKPhotoBrowser","last_synced_at":"2025-08-06T15:30:55.564Z","repository":{"id":38310484,"uuid":"43936671","full_name":"suzuki-0000/SKPhotoBrowser","owner":"suzuki-0000","description":"Simple PhotoBrowser/Viewer inspired by facebook, twitter photo browsers written by swift","archived":false,"fork":false,"pushed_at":"2024-03-19T04:02:15.000Z","size":21156,"stargazers_count":2647,"open_issues_count":88,"forks_count":533,"subscribers_count":47,"default_branch":"master","last_synced_at":"2024-10-29T15:35:10.242Z","etag":null,"topics":["photo-browser","photos","swift"],"latest_commit_sha":null,"homepage":"","language":"Swift","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/suzuki-0000.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2015-10-09T06:19:11.000Z","updated_at":"2024-10-29T06:30:56.000Z","dependencies_parsed_at":"2023-02-09T14:00:22.361Z","dependency_job_id":"eb837ad6-0cb4-4928-91de-35aa83edc4f3","html_url":"https://github.com/suzuki-0000/SKPhotoBrowser","commit_stats":{"total_commits":468,"total_committers":99,"mean_commits":"4.7272727272727275","dds":0.8055555555555556,"last_synced_commit":"fd0e07de938e1bb961c55c7c4c6d2715d4c67d0e"},"previous_names":[],"tags_count":79,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suzuki-0000%2FSKPhotoBrowser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suzuki-0000%2FSKPhotoBrowser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suzuki-0000%2FSKPhotoBrowser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suzuki-0000%2FSKPhotoBrowser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/suzuki-0000","download_url":"https://codeload.github.com/suzuki-0000/SKPhotoBrowser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227581839,"owners_count":17789312,"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":["photo-browser","photos","swift"],"created_at":"2024-01-05T20:15:47.506Z","updated_at":"2024-12-09T15:30:53.608Z","avatar_url":"https://github.com/suzuki-0000.png","language":"Swift","funding_links":[],"categories":["Media","Libs","Swift","UI","UI [🔝](#readme)","Minor"],"sub_categories":["Image","UI","Other free courses","Photo Browser"],"readme":"\u003ch1 align=\"center\"\u003eSKPhotoBrowser\u003c/h1\u003e\n\n\u003cH4 align=\"center\"\u003e\nSimple PhotoBrowser/Viewer inspired by facebook, twitter photo browsers written by swift\n\u003c/H4\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://developer.apple.com/swift\"\u003e\n\u003cimg alt=\"Swift5\" src=\"https://img.shields.io/badge/language-swift5.4-orange.svg?style=flat\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"http://cocoadocs.org/docsets/SKPhotoBrowser\"\u003e\n\u003cimg src=\"https://img.shields.io/cocoapods/v/SKPhotoBrowser.svg?style=flat\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/Carthage/Carthage\"\u003e\n\u003cimg alt=\"Build Status\" src=\"https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://developer.apple.com/swift/\"\u003e\n\u003cimg alt=\"Platform\" src=\"https://img.shields.io/badge/platform-iOS-green.svg\" /\u003e\u003c/a\u003e\n\u003ca href=\"\"\u003e\n\u003cimg alt=\"Contributors\" src=\"https://img.shields.io/badge/all_contributors-66-orange.svg?style=flat-square\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\n## features\n- Display one or more images by providing either `UIImage` objects, or string of URL array.\n- Photos can be zoomed and panned, and optional captions can be displayed\n- Minimalistic Facebook-like interface, swipe up/down to dismiss\n- Ability to custom control. (hide/ show toolbar for controls, / swipe control)\n- Handling and caching photos from web\n- Landscape handling\n- Delete photo support(by offbye). By set displayDelete=true show a delete icon in statusbar, deleted indexes can be obtain from delegate func didDeleted\n\n| Table/CollectionView sample | Button tap sample | gif sample |\n| ------------- | --------------- | --------------|\n| ![sample](Screenshots/example01.gif) | ![sample](Screenshots/example02.gif) | ![sample](Screenshots/example03.gif)\n\n## Requirements\n        - iOS 9.0+\n        - Swift 2.0+\n        - ARC\n\n### Version vs Swift version.\n\n        Below is a table that shows which version of SKPhotoBrowser you should use for your Swift version.\n\n| Swift version | SKPhotoBrowser version |\n| ------------- | ---------------|\n| 5.0           | \u003e= 6.1.0 |\n| 4.2           | \u003e= 6.0.0 |\n| 4.1           | \u003e= 5.0.0 |\n| 3.2           | \u003e= 4.0.0 |\n| 2.3           | 2.0.4 - 3.1.4  |\n| 2.2           | \u003c= 2.0.3        |\n\n## Installation\n\n#### CocoaPods\navailable on CocoaPods. Just add the following to your project Podfile:\n```\npod 'SKPhotoBrowser'\nuse_frameworks!\n```\n\n#### Carthage\nTo integrate into your Xcode project using Carthage, specify it in your Cartfile:\n```\ngithub \"suzuki-0000/SKPhotoBrowser\"\n```\n\n#### Info.plist\nIf you want to use share image feature, it includes save image into galery, so you should specify a permission into your Info.plist (if you haven't done it yet).\n```\n\u003ckey\u003eNSPhotoLibraryAddUsageDescription\u003c/key\u003e\n\u003cstring\u003eUsed to save images into your galery\u003c/string\u003e\n```\n\n#### Swift Package Manager\nAvailable in Swift Package Manager. Use the repository URL in Xcode\n\n## Usage\nSee the code snippet below for an example of how to implement, or see the example project.\n\nfrom UIImages:\n```swift\n// 1. create SKPhoto Array from UIImage\nvar images = [SKPhoto]()\nlet photo = SKPhoto.photoWithImage(UIImage())// add some UIImage\nimages.append(photo)\n\n// 2. create PhotoBrowser Instance, and present from your viewController.\nlet browser = SKPhotoBrowser(photos: images)\nbrowser.initializePageIndex(0)\npresent(browser, animated: true, completion: {})\n```\n\nfrom URLs:\n```swift\n// 1. create URL Array\nvar images = [SKPhoto]()\nlet photo = SKPhoto.photoWithImageURL(\"https://placehold.jp/150x150.png\")\nphoto.shouldCachePhotoURLImage = false // you can use image cache by true(NSCache)\nimages.append(photo)\n\n// 2. create PhotoBrowser Instance, and present.\nlet browser = SKPhotoBrowser(photos: images)\nbrowser.initializePageIndex(0)\npresent(browser, animated: true, completion: {})\n```\n\nfrom local files:\n```swift\n// 1. create images from local files\nvar images = [SKLocalPhoto]()\nlet photo = SKLocalPhoto.photoWithImageURL(\"..some_local_path/150x150.png\")\nimages.append(photo)\n\n// 2. create PhotoBrowser Instance, and present.\nlet browser = SKPhotoBrowser(photos: images)\nbrowser.initializePageIndex(0)\npresent(browser, animated: true, completion: {})\n```\n\nIf you want to use zooming effect from an existing view, use another initializer:\n```swift\n// e.g.: some tableView or collectionView.\nfunc collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {\n   let cell = collectionView.cellForItemAtIndexPath(indexPath)\n   let originImage = cell.exampleImageView.image // some image for baseImage\n\n   let browser = SKPhotoBrowser(originImage: originImage ?? UIImage(), photos: images, animatedFromView: cell)\n   browser.initializePageIndex(indexPath.row)\n   present(browser, animated: true, completion: {})\n}\n```\n\n### Custom\n\n#### Toolbar\nYou can customize Toolbar via SKPhotoBrowserOptions.\n\n```swift\nSKPhotoBrowserOptions.displayToolbar = false                              // all tool bar will be hidden\nSKPhotoBrowserOptions.displayCounterLabel = false                         // counter label will be hidden\nSKPhotoBrowserOptions.displayBackAndForwardButton = false                 // back / forward button will be hidden\nSKPhotoBrowserOptions.displayAction = false                               // action button will be hidden\nSKPhotoBrowserOptions.displayHorizontalScrollIndicator = false            // horizontal scroll bar will be hidden\nSKPhotoBrowserOptions.displayVerticalScrollIndicator = false              // vertical scroll bar will be hidden\nlet browser = SKPhotoBrowser(originImage: originImage, photos: images, animatedFromView: cell)\n```\n\n#### Colors\nYou can customize text, icon and background colors via SKPhotoBrowserOptions or SKToolbarOptions\n```swift\nSKPhotoBrowserOptions.backgroundColor = UIColor.whiteColor()               // browser view will be white\nSKPhotoBrowserOptions.textAndIconColor = UIColor.blackColor()              // text and icons will be black\nSKToolbarOptions.textShadowColor = UIColor.clearColor()                    // shadow of toolbar text will be removed\nSKToolbarOptions.font = UIFont(name: \"Futura\", size: 16.0)                 // font of toolbar will be 'Futura'\n```\n\n#### Images\nYou can customize the padding of displayed images via SKPhotoBrowserOptions\n```swift\nSKPhotoBrowserOptions.imagePaddingX = 50                                   // image padding left and right will be 25\nSKPhotoBrowserOptions.imagePaddingY = 50                                   // image padding top and bottom will be 25\n```\n\n#### Statusbar\nYou can customize the visibility of the Statusbar in browser view via SKPhotoBrowserOptions\n```swift\nSKPhotoBrowserOptions.displayStatusbar = false                             // status bar will be hidden\n```\n\n#### Close And Delete Buttons\nThat how you can customize close and delete buttons\n```swift\nSKPhotoBrowserOptions.displayDeleteButton = true                           // delete button will be shown\nSKPhotoBrowserOptions.swapCloseAndDeleteButtons = true                     // now close button located on right side of screen and delete button is on left side\nSKPhotoBrowserOptions.closeAndDeleteButtonPadding = 20                     // set offset from top and from nearest screen edge of close button and delete button\n```\n\n#### Screenshot Protection\nYou can protect your image from taking screenshot via SKPhotoBrowserOptions\nOnly working on the device, not on simulator\n```swift\nSKPhotoBrowserOptions.protectScreenshot = true                             // image will be hidden after taking screenshot\n```\n\n#### Custom Cache From Web URL\nYou can use SKCacheable protocol if others are adaptable. (SKImageCacheable or SKRequestResponseCacheable)\n\n```swift\ne.g. SDWebImage\n\n// 1. create custom cache, implement in accordance with the protocol\nclass CustomImageCache: SKImageCacheable { var cache: SDImageCache }\n\n// 2. replace SKCache instance with custom cache\nSKCache.sharedCache.imageCache = CustomImageCache()\n```\n\n#### CustomButton Image\nClose, Delete buttons are able to change image and frame.\n```swift\nbrowser.updateCloseButton(UIImage())\nbrowser.updateUpdateButton(UIImage())\n```\n\n#### Delete Photo\nYou can delete your photo for your own handling. detect button tap from `removePhoto` delegate function.\n\n\n#### Photo Captions\nPhoto captions can be displayed simply bottom of PhotoBrowser. by setting the `caption` property on specific photos:\n``` swift\nlet photo = SKPhoto.photoWithImage(UIImage())\nphoto.caption = \"Lorem Ipsum is simply dummy text of the printing and typesetting industry.\"\n```\n\n#### SwipeGesture\nvertical swipe can enable/disable:\n``` swift\nSKPhotoBrowserOptions.disableVerticalSwipe = true\n```\n\n#### Delegate\nThere's some trigger point you can handle using delegate. those are optional.\nSee [SKPhotoBrowserDelegate](https://github.com/suzuki-0000/SKPhotoBrowser/blob/master/SKPhotoBrowser/SKPhotoBrowserDelegate.swift) for more details.\n- didShowPhotoAtIndex(_ index:Int)\n- willDismissAtPageIndex(_ index:Int)\n- willShowActionSheet(_ photoIndex: Int)\n- didDismissAtPageIndex(_ index:Int)\n- didDismissActionSheetWithButtonIndex(_ buttonIndex: Int, photoIndex: Int)\n- didScrollToIndex(_ index: Int)\n- removePhoto(_ browser: SKPhotoBrowser, index: Int, reload: (() -\u003e Void))\n- viewForPhoto(_ browser: SKPhotoBrowser, index: Int) -\u003e UIView?\n- controlsVisibilityToggled(_ browser: SKPhotoBrowser, hidden: Bool)\n\n```swift\nlet browser = SKPhotoBrowser(originImage: originImage, photos: images, animatedFromView: cell)\nbrowser.delegate = self\n\n// MARK: - SKPhotoBrowserDelegate\nfunc didShowPhotoAtIndex(_ index: Int) {\n// when photo will be shown\n}\n\nfunc willDismissAtPageIndex(_ index: Int) {\n// when PhotoBrowser will be dismissed\n}\n\nfunc didDismissAtPageIndex(_ index: Int) {\n// when PhotoBrowser did dismissed\n}\n\n```\n\n#### Options\nYou can access via `SKPhotoBrowserOptions`, which can use for browser control.\nSee [SKPhotoBrowserOptions](https://github.com/suzuki-0000/SKPhotoBrowser/blob/master/SKPhotoBrowser/SKPhotoBrowserOptions.swift) for more details.\n- single tap handling, dismiss/noaction\n- blackArea handling which is appearing outside of photo\n- bounce animation when appearing/dismissing\n- text color, font, or more\n``` swift\nSKPhotoBrowserOptions.enableZoomBlackArea    = true  // default true\nSKPhotoBrowserOptions.enableSingleTapDismiss = true  // default false\n```\n\n## Photos from\n- [Unsplash](https://unsplash.com)\n\n## License\navailable under the MIT license. See the LICENSE file for more info.\n\n## Contributors\n\nThanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://p36348.github.io/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6042275?v=4?s=20\" width=\"20px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eOreo Chen\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=p36348\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore --\u003e\n| [\u003cimg src=\"https://avatars1.githubusercontent.com/u/12511909?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAlexander Khitev\u003c/b\u003e\u003c/sub\u003e](https://github.com/alexanderkhitev)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=alexanderkhitev \"Code\") | [\u003cimg src=\"https://avatars2.githubusercontent.com/u/1032307?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eK Rummler\u003c/b\u003e\u003c/sub\u003e](https://github.com/krummler)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=krummler \"Code\") | [\u003cimg src=\"https://avatars2.githubusercontent.com/u/198395?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMads Bjerre\u003c/b\u003e\u003c/sub\u003e](http://wisekopf.com)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=madsb \"Code\") | [\u003cimg src=\"https://avatars3.githubusercontent.com/u/4025839?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMeng Ye\u003c/b\u003e\u003c/sub\u003e](https://jk2K.com)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=jk2K \"Code\") | [\u003cimg src=\"https://avatars2.githubusercontent.com/u/351683?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003e_ant_one\u003c/b\u003e\u003c/sub\u003e](https://github.com/barrault01)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=barrault01 \"Code\") | [\u003cimg src=\"https://avatars0.githubusercontent.com/u/13894518?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTim Roesner\u003c/b\u003e\u003c/sub\u003e](http://timroesner.com)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=timroesner \"Code\") | [\u003cimg src=\"https://avatars0.githubusercontent.com/u/1303682?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003e胥冥\u003c/b\u003e\u003c/sub\u003e](http://www.zxming.com)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=zxming \"Code\") |\n| :---: | :---: | :---: | :---: | :---: | :---: | :---: |\n| [\u003cimg src=\"https://avatars3.githubusercontent.com/u/371957?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKevin Wolkober\u003c/b\u003e\u003c/sub\u003e](http://kevinwo.github.io)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=kevinwo \"Code\") | [\u003cimg src=\"https://avatars2.githubusercontent.com/u/110283?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePJ Gray\u003c/b\u003e\u003c/sub\u003e](http://www.saygoodnight.com/)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=pj4533 \"Code\") | [\u003cimg src=\"https://avatars1.githubusercontent.com/u/4082752?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eghysrc\u003c/b\u003e\u003c/sub\u003e](https://github.com/ghysrc)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=ghysrc \"Code\") | [\u003cimg src=\"https://avatars1.githubusercontent.com/u/5204614?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJosef Doležal\u003c/b\u003e\u003c/sub\u003e](http://josefdolezal.github.com)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=josefdolezal \"Code\") | [\u003cimg src=\"https://avatars1.githubusercontent.com/u/189020?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMark Goody\u003c/b\u003e\u003c/sub\u003e](https://marramgrass.micro.blog/)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=marramgrass \"Code\") | [\u003cimg src=\"https://avatars2.githubusercontent.com/u/1270537?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePhilippe Riegert\u003c/b\u003e\u003c/sub\u003e](https://github.com/PhilippeRiegert)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=PhilippeRiegert \"Code\") | [\u003cimg src=\"https://avatars2.githubusercontent.com/u/399560?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBryan Irace\u003c/b\u003e\u003c/sub\u003e](http://irace.me)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=irace \"Code\") |\n| [\u003cimg src=\"https://avatars1.githubusercontent.com/u/12068299?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003edirtmelon\u003c/b\u003e\u003c/sub\u003e](https://github.com/dirtmelon)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=dirtmelon \"Code\") | [\u003cimg src=\"https://avatars0.githubusercontent.com/u/103670?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eHeberti Almeida\u003c/b\u003e\u003c/sub\u003e](https://dribbble.com/hebertialmeida)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=hebertialmeida \"Code\") | [\u003cimg src=\"https://avatars2.githubusercontent.com/u/501784?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFelix Weiss\u003c/b\u003e\u003c/sub\u003e](http://othellogame.net)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=appsunited \"Code\") | [\u003cimg src=\"https://avatars1.githubusercontent.com/u/8625327?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003e.Some\u003c/b\u003e\u003c/sub\u003e](https://github.com/BigDanceMouse)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=BigDanceMouse \"Code\") | [\u003cimg src=\"https://avatars3.githubusercontent.com/u/4017312?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eOnur Var\u003c/b\u003e\u003c/sub\u003e](https://tr.linkedin.com/in/onur-var)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=OnurVar \"Code\") | [\u003cimg src=\"https://avatars3.githubusercontent.com/u/1316152?v=4\" width=\"60px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAndrew Barba\u003c/b\u003e\u003c/sub\u003e](https://abarba.me)\u003cbr /\u003e[💻](https://github.com/suzuki-0000/SKPhotoBrowser/commits?author=AndrewBarba \"Code\") |\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuzuki-0000%2FSKPhotoBrowser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuzuki-0000%2FSKPhotoBrowser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuzuki-0000%2FSKPhotoBrowser/lists"}