-
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit ab646cc
Showing
536 changed files
with
947 additions
and
0 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
9 changes: 9 additions & 0 deletions
9
css/documentation-topic~topic~tutorials-overview.82acfe22.css
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"primaryContentSections":[{"kind":"content","content":[{"anchor":"Overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"image","identifier":"Banner.png"}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"This Swift Package is a wrapper for "},{"type":"reference","isActive":true,"identifier":"https:\/\/www.pexels.com\/api"},{"type":"text","text":" to get access to the entire photo library of "},{"type":"codeVoice","code":"Pexels"},{"type":"text","text":" within your Swift app."}]},{"style":"note","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"It is mandatory to get an "},{"overridingTitleInlineContent":[{"type":"text","text":"API Key"}],"isActive":true,"type":"reference","identifier":"https:\/\/www.pexels.com\/api","overridingTitle":"API Key"},{"type":"text","text":"."}]}],"type":"aside","name":"Note"},{"anchor":"Installation-SPM","level":2,"type":"heading","text":"Installation (SPM)"},{"type":"codeListing","syntax":"swift","code":["dependencies: ["," .package(url: \"https:\/\/github.com\/lukepistrol\/Pexels-Swift.git\", from: \"0.1.0\")","],"]},{"anchor":"Usage","level":2,"type":"heading","text":"Usage"},{"type":"codeListing","syntax":"swift","code":["import PexelsSwift","","\/\/ access the singleton instance","let pexels = PexelsSwift.shared","","\/\/ set your API key","pexels.setup(apiKey: \"YOUR_API_KEY\", logLevel: .debug)","","\/\/ fetch images metadata using async\/await","let result = await pexels.getCuratedPhotos()","","switch result {","case .failure(let error):"," print(error.description)","case .success(let (data, paging, response)):"," \/\/ access photos"," \/\/ data -> [PSPhoto]"," \/\/ paging -> PSPagingInfo"," \/\/ response -> HTTPURLResponse","}","","\/\/ fetch images metadata using completion handlers","pexels.getCuratedPhotos() { result in"," switch result {"," case .failure(let error):"," print(error.description)"," case .success(let (data, paging, response)):"," \/\/ access photos"," \/\/ data -> [PSPhoto]"," \/\/ paging -> PSPagingInfo"," \/\/ response -> HTTPURLResponse"," }","}"]},{"anchor":"Demo-Project","level":2,"type":"heading","text":"Demo Project"},{"type":"paragraph","inlineContent":[{"type":"text","text":"I’ve built a simple iOS app - "},{"type":"reference","isActive":true,"identifier":"https:\/\/github.com\/lukepistrol\/PexelsBrowser"},{"type":"text","text":" - using this library and SwiftUI."}]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/pexelsswift"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Pexels.com API client library for the Swift programming language"}],"kind":"symbol","metadata":{"roleHeading":"Framework","externalID":"PexelsSwift","title":"PexelsSwift","symbolKind":"module","role":"collection","modules":[{"name":"PexelsSwift"}]},"hierarchy":{"paths":[[]]},"topicSections":[{"title":"Essentials","identifiers":["doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/Getting-Started","doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/Rate-Limits"]},{"title":"Classes","identifiers":["doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PexelsSwift"]},{"title":"Resources","identifiers":["doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSPhoto","doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSVideo","doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSCollection","doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSPagingInfo"]},{"title":"Logger","identifiers":["doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSLogger","doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSLogLevel"]},{"title":"Errors","identifiers":["doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSError"]},{"title":"Protocols","identifiers":["doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSLoggerDelegate"]}],"references":{"doc://PexelsSwift/documentation/PexelsSwift":{"role":"collection","title":"PexelsSwift","abstract":[{"type":"text","text":"Pexels.com API client library for the Swift programming language"}],"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift","kind":"symbol","type":"topic","url":"\/documentation\/pexelsswift"},"doc://PexelsSwift/documentation/PexelsSwift/Rate-Limits":{"role":"article","title":"Rate Limits","abstract":[{"type":"text","text":"Statistics for the monthly API quota"}],"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/Rate-Limits","kind":"article","type":"topic","url":"\/documentation\/pexelsswift\/rate-limits"},"Banner.png":{"alt":"Banner","type":"image","identifier":"Banner.png","variants":[{"url":"\/images\/Banner.png","traits":["1x","light"]}]},"doc://PexelsSwift/documentation/PexelsSwift/PSVideo":{"role":"symbol","title":"PSVideo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"PSVideo"}],"abstract":[{"type":"text","text":"A structure representing a Video and its metadata."}],"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSVideo","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PSVideo"}],"url":"\/documentation\/pexelsswift\/psvideo"},"doc://PexelsSwift/documentation/PexelsSwift/PSPhoto":{"role":"symbol","title":"PSPhoto","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"PSPhoto"}],"abstract":[{"type":"text","text":"A structure representing a Photo and its metadata."}],"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSPhoto","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PSPhoto"}],"url":"\/documentation\/pexelsswift\/psphoto"},"https://github.com/lukepistrol/PexelsBrowser":{"title":"PexelsBrowser","titleInlineContent":[{"type":"text","text":"PexelsBrowser"}],"type":"link","identifier":"https:\/\/github.com\/lukepistrol\/PexelsBrowser","url":"https:\/\/github.com\/lukepistrol\/PexelsBrowser"},"https://www.pexels.com/api":{"title":"Pexels API","titleInlineContent":[{"type":"text","text":"Pexels API"}],"type":"link","identifier":"https:\/\/www.pexels.com\/api","url":"https:\/\/www.pexels.com\/api"},"doc://PexelsSwift/documentation/PexelsSwift/PSLogger":{"role":"symbol","title":"PSLogger","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PSLogger"}],"abstract":[{"type":"text","text":"A logger for displaying logs in the console."}],"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSLogger","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PSLogger"}],"url":"\/documentation\/pexelsswift\/pslogger"},"doc://PexelsSwift/documentation/PexelsSwift/PSLoggerDelegate":{"role":"symbol","title":"PSLoggerDelegate","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"PSLoggerDelegate"}],"abstract":[{"type":"text","text":"The delegate for receiving log messages."}],"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSLoggerDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PSLoggerDelegate"}],"url":"\/documentation\/pexelsswift\/psloggerdelegate"},"doc://PexelsSwift/documentation/PexelsSwift/Getting-Started":{"role":"article","title":"Getting Started","abstract":[{"type":"text","text":"This is a quick run through on how to use "},{"type":"reference","isActive":true,"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift"},{"type":"text","text":" and what can be done."}],"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/Getting-Started","kind":"article","type":"topic","url":"\/documentation\/pexelsswift\/getting-started"},"doc://PexelsSwift/documentation/PexelsSwift/PexelsSwift":{"role":"symbol","title":"PexelsSwift","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"PexelsSwift"}],"abstract":[{"type":"text","text":"A singleton class for making API calls to the Pexels.com REST API."}],"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PexelsSwift","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PexelsSwift"}],"url":"\/documentation\/pexelsswift\/pexelsswift"},"doc://PexelsSwift/documentation/PexelsSwift/PSCollection":{"role":"symbol","title":"PSCollection","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"PSCollection"}],"abstract":[{"type":"text","text":"A structure representing a Collection and its metadata."}],"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSCollection","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PSCollection"}],"url":"\/documentation\/pexelsswift\/pscollection"},"doc://PexelsSwift/documentation/PexelsSwift/PSLogLevel":{"role":"symbol","title":"PSLogLevel","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"PSLogLevel"}],"abstract":[{"type":"text","text":"A collection of log levels."}],"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSLogLevel","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PSLogLevel"}],"url":"\/documentation\/pexelsswift\/psloglevel"},"doc://PexelsSwift/documentation/PexelsSwift/PSError":{"role":"symbol","title":"PSError","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"PSError"}],"abstract":[{"type":"text","text":"Error Type indicating why an operation has failed"}],"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSError","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PSError"}],"url":"\/documentation\/pexelsswift\/pserror"},"doc://PexelsSwift/documentation/PexelsSwift/PSPagingInfo":{"role":"symbol","title":"PSPagingInfo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"PSPagingInfo"}],"abstract":[{"type":"text","text":"Metadata useful for paging (page, total results, next page, …)"}],"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSPagingInfo","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PSPagingInfo"}],"url":"\/documentation\/pexelsswift\/pspaginginfo"}}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"primaryContentSections":[{"kind":"content","content":[{"anchor":"Overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Before you get started head over to the "},{"type":"reference","isActive":true,"identifier":"https:\/\/www.pexels.com\/api"},{"type":"text","text":" site and get your own "},{"type":"codeVoice","code":"API Token"},{"type":"text","text":". After you got your "},{"type":"codeVoice","code":"API Token"},{"type":"text","text":" please make sure to save it for later use."}]},{"anchor":"Add-PexelsSwift-to-your-Project","level":3,"type":"heading","text":"Add PexelsSwift to your Project"},{"type":"paragraph","inlineContent":[{"type":"text","text":"To add "},{"type":"reference","isActive":true,"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift"},{"type":"text","text":" to your project simply add the following line to your "},{"type":"codeVoice","code":"Package.swift"},{"type":"text","text":" file’s dependencies:"}]},{"type":"codeListing","syntax":"swift","code":["...","dependencies: ["," .package(url: \"https:\/\/github.com\/lukepistrol\/Pexels-Swift.git\", from: \"0.1.0\")","],","..."]},{"type":"paragraph","inlineContent":[{"type":"text","text":"In case you want to add it directly to your "},{"type":"codeVoice","code":"*.xcodeproj*"},{"type":"text","text":" just go to "},{"type":"codeVoice","code":"File > Add Packages"},{"type":"text","text":" and enter the URL into the search field on the top right."}]},{"anchor":"Setup-PexelsSwift","level":3,"type":"heading","text":"Setup PexelsSwift"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Now you are ready to add some code:"}]},{"type":"codeListing","syntax":"swift","code":["import PexelsSwift","","\/\/ create a reference to the PexelsSwift singleton","let pexels = PexelsSwift.shared","","\/\/ call the setup method to set your API-Key and ","\/\/ optionally the debug level","pexels.setup(apiKey: \"YOUR_API_KEY\", logLevel: .debug)"]},{"style":"note","content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"Since "},{"type":"reference","isActive":true,"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift"},{"type":"text","text":" is setup as a singleton you only have to set it up once and you can access it everywhere in your project by calling "},{"type":"codeVoice","code":"PexelsSwift.shared"},{"type":"text","text":"."}]}],"type":"aside","name":"Note"},{"anchor":"Fetch-Featured-Photos","level":3,"type":"heading","text":"Fetch Featured Photos"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Now it is time to fetch some data from the API. For now we will fetch 20 photos from the featured photos endpoint using "},{"type":"reference","isActive":true,"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PexelsSwift\/getCuratedPhotos(page:count:completion:)"},{"type":"text","text":". There are methods for "},{"type":"codeVoice","code":"async\/await"},{"type":"text","text":" but in case you prefer completion handlers, they are available to."}]},{"type":"codeListing","syntax":"swift","code":["\/\/ get 20 curated photos asynchronously","let result = await pexels.getCuratedPhotos(count: 20)","","switch result {","\/\/ check for errors","case .failure(let error):"," print(error.description)"," \/\/ handle the error","\/\/ access the result's content","case .success(let (data, paging, response)):"," ...","}"]},{"type":"paragraph","inlineContent":[{"type":"text","text":"In the code above you can see we get "},{"type":"codeVoice","code":"photos"},{"type":"text","text":" and "},{"type":"codeVoice","code":"metadata"},{"type":"text","text":" from our result in the "},{"type":"codeVoice","code":".success"},{"type":"text","text":" case."}]},{"type":"unorderedList","items":[{"content":[{"type":"paragraph","inlineContent":[{"type":"strong","inlineContent":[{"type":"text","text":"data"}]},{"type":"text","text":" is an array of "},{"type":"reference","isActive":true,"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSPhoto"},{"type":"text","text":"."}]}]},{"content":[{"type":"paragraph","inlineContent":[{"type":"strong","inlineContent":[{"type":"text","text":"paging"}]},{"type":"text","text":" is a struct "},{"type":"reference","isActive":true,"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSPagingInfo"},{"type":"text","text":" which contains some information for paging like the current page, results per page, the URL to the next\/previous page and the number of total results."}]}]},{"content":[{"type":"paragraph","inlineContent":[{"type":"strong","inlineContent":[{"type":"text","text":"response"}]},{"type":"text","text":" is of type "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/foundation\/httpurlresponse"}]}]}]},{"anchor":"Get-the-Image-URL","level":3,"type":"heading","text":"Get the Image URL"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Now we want to get the URLs for the thumbnails of the fetched images."}]},{"type":"codeListing","syntax":"swift","code":["switch result {","...","case .success(let (data, paging, response)):"," let urls = data.compactMap { "," URL(string: $0.source[PSPhoto.Size.tiny.rawValue]) "," }"," \/\/ now you can load the image from each URL and "," \/\/ display it in your UI","}"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/pexelsswift\/getting-started"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/Getting-Started","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"This is a quick run through on how to use "},{"type":"reference","isActive":true,"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift"},{"type":"text","text":" and what can be done."}],"kind":"article","metadata":{"roleHeading":"Article","title":"Getting Started","role":"article","modules":[{"name":"PexelsSwift"}]},"hierarchy":{"paths":[["doc:\/\/PexelsSwift\/documentation\/PexelsSwift"]]},"seeAlsoSections":[{"title":"Essentials","identifiers":["doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/Rate-Limits"],"generated":true}],"references":{"doc://PexelsSwift/documentation/PexelsSwift":{"role":"collection","title":"PexelsSwift","abstract":[{"type":"text","text":"Pexels.com API client library for the Swift programming language"}],"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift","kind":"symbol","type":"topic","url":"\/documentation\/pexelsswift"},"doc://PexelsSwift/documentation/PexelsSwift/PSPhoto":{"role":"symbol","title":"PSPhoto","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"PSPhoto"}],"abstract":[{"type":"text","text":"A structure representing a Photo and its metadata."}],"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSPhoto","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PSPhoto"}],"url":"\/documentation\/pexelsswift\/psphoto"},"doc://PexelsSwift/documentation/PexelsSwift/PexelsSwift/getCuratedPhotos(page:count:completion:)":{"role":"symbol","title":"getCuratedPhotos(page:count:completion:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"getCuratedPhotos"},{"kind":"text","text":"("},{"kind":"externalParam","text":"page"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"},{"kind":"text","text":", "},{"kind":"externalParam","text":"count"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"},{"kind":"text","text":", "},{"kind":"externalParam","text":"completion"},{"kind":"text","text":": ("},{"kind":"typeIdentifier","text":"PhotosResult","preciseIdentifier":"s:11PexelsSwiftAAC12PhotosResulta"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Void","preciseIdentifier":"s:s4Voida"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Get a list of curated "},{"type":"reference","isActive":true,"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSPhoto"}],"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PexelsSwift\/getCuratedPhotos(page:count:completion:)","kind":"symbol","type":"topic","url":"\/documentation\/pexelsswift\/pexelsswift\/getcuratedphotos(page:count:completion:)"},"doc://PexelsSwift/documentation/PexelsSwift/Rate-Limits":{"role":"article","title":"Rate Limits","abstract":[{"type":"text","text":"Statistics for the monthly API quota"}],"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/Rate-Limits","kind":"article","type":"topic","url":"\/documentation\/pexelsswift\/rate-limits"},"https://developer.apple.com/documentation/foundation/httpurlresponse":{"title":"HTTPURLResponse","titleInlineContent":[{"type":"codeVoice","code":"HTTPURLResponse"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/foundation\/httpurlresponse","url":"https:\/\/developer.apple.com\/documentation\/foundation\/httpurlresponse"},"https://www.pexels.com/api":{"title":"Pexels API","titleInlineContent":[{"type":"text","text":"Pexels API"}],"type":"link","identifier":"https:\/\/www.pexels.com\/api","url":"https:\/\/www.pexels.com\/api"},"doc://PexelsSwift/documentation/PexelsSwift/PSPagingInfo":{"role":"symbol","title":"PSPagingInfo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"PSPagingInfo"}],"abstract":[{"type":"text","text":"Metadata useful for paging (page, total results, next page, …)"}],"identifier":"doc:\/\/PexelsSwift\/documentation\/PexelsSwift\/PSPagingInfo","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PSPagingInfo"}],"url":"\/documentation\/pexelsswift\/pspaginginfo"}}} |
Large diffs are not rendered by default.
Oops, something went wrong.
Oops, something went wrong.