{"id":15038945,"url":"https://github.com/erudika/para-client-ios","last_synced_at":"2025-05-15T01:33:34.321Z","repository":{"id":62450468,"uuid":"58589989","full_name":"Erudika/para-client-ios","owner":"Erudika","description":"iOS Client for Para","archived":false,"fork":false,"pushed_at":"2022-01-12T18:35:10.000Z","size":143,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-30T20:19:00.523Z","etag":null,"topics":["api-client","backend","backend-services","cocoapods","ios","para","pure-swift","swift","swift-4","swift-package-manager"],"latest_commit_sha":null,"homepage":"https://paraio.org","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Erudika.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":"2016-05-11T23:26:14.000Z","updated_at":"2023-12-30T16:28:17.000Z","dependencies_parsed_at":"2022-11-01T23:33:02.840Z","dependency_job_id":null,"html_url":"https://github.com/Erudika/para-client-ios","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erudika%2Fpara-client-ios","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erudika%2Fpara-client-ios/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erudika%2Fpara-client-ios/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erudika%2Fpara-client-ios/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Erudika","download_url":"https://codeload.github.com/Erudika/para-client-ios/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254256669,"owners_count":22040331,"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":["api-client","backend","backend-services","cocoapods","ios","para","pure-swift","swift","swift-4","swift-package-manager"],"created_at":"2024-09-24T20:40:53.173Z","updated_at":"2025-05-15T01:33:34.044Z","avatar_url":"https://github.com/Erudika.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Logo](https://s3-eu-west-1.amazonaws.com/org.paraio/para.png)\n\n# iOS Client for Para\n\n[![CocoaPods Compatible](https://img.shields.io/cocoapods/v/ParaClient.svg)](https://img.shields.io/cocoapods/v/ParaClient.svg)\n[![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)\n[![Platform](https://img.shields.io/cocoapods/p/ParaClient.svg?style=flat)](http://cocoadocs.org/docsets/ParaClient)\n[![Join the chat at https://gitter.im/Erudika/para](https://badges.gitter.im/Erudika/para.svg)](https://gitter.im/Erudika/para?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n## What is this?\n\n**Para** was designed as a simple and modular backend framework for object persistence and retrieval.\nIt helps you build applications faster by taking care of the backend. It works on three levels -\nobjects are stored in a NoSQL data store or any old relational database, then automatically indexed\nby a search engine and finally, cached.\n\nThis is the Swift client for Para for iOS, tvOS, macOS and watchOS.\n\n## Quick start\n\n**NOTE:** This XCode project is broken when used with CocoaPods! I gave up fixing it since the release of XCode 10. Feel free to fix it and submit a pull request. Thanks!\n\n### CocoaPods\n\nFor the latest release in CocoaPods add the following to your `Podfile`:\n\n```ruby\nuse_frameworks!\n\npod 'ParaClient'\n```\nAnd install it with:\n```sh\n$ pod install\n```\n\n### Swift Package Manager\nAdd ParaClient as a dependency to your `Package.swift`. For example:\n\n```swift\nlet package = Package(\n    name: \"YourPackageName\",\n    dependencies: [\n        .Package(url: \"https://github.com/Erudika/para-client-ios.git\", majorVersion: 1)\n    ]\n)\n```\n\n## Usage\n\nInitialize the client in your code like so:\n\n```js\nimport ParaClient\n// avoid using the secret key on mobile devices\nlet client = ParaClient(accessKey: \"ACCESS_KEY\", secretKey:\"\")\nclient.signIn(\"facebook\", providerToken: \"fb_access_token\", callback: { user in\n    if user != nil {\n        // success! user is authenticated, JWT token is saved on the device\n        // you can now call the API methods\n    }\n})\n```\nIt's a bad idea to hardcode your Para secret key in your code because it will run in an insecure client-side environment. Instead use the `signIn()` method to get an access token (JWT) with limited client permissions. Think of it like this: API key+secret = **full API access**, `paraClient.signIn()` = **limited API access** for clients with JWT tokens. \nYou can have a [special user object created](http://paraio.org/docs/#034-api-jwt-signin) just for your iOS app and assign it special permissions so that your app can access a part of the Para API before authenticating another real user. [Read the documentation for more information about client permissions](http://paraio.org/docs/#012-permissions).\nFor granting resource permissions to your client users go to [console.paraio.org](https://console.paraio.org) where you can edit your app object and allow your users the call specific API methods.\n\n## Requirements\n\n- iOS 9.2+ / macOS 10.10+ / tvOS 9.2+ / watchOS 2.2+\n- Xcode 7.3+, Swift 2.2+, CocoaPods 1.0+\n\n## Thanks\n\nSpecial thanks to [Christopher Sexton](https://github.com/csexton) for porting the \n[AWS Signature 4 algorithm to Swift](http://www.codeography.com/2017/03/20/signing-aws-api-requests-in-swift.html).\nHis code was used in this project and is also licensed under Apache 2.0.\n\n## Documentation\n\n### [Read the Docs](https://paraio.org/docs)\n\n## Contributing\n\n1. Fork this repository and clone the fork to your machine\n2. Create a branch (`git checkout -b my-new-feature`)\n3. Implement a new feature or fix a bug and add some tests\n4. Commit your changes (`git commit -am 'Added a new feature'`)\n5. Push the branch to **your fork** on GitHub (`git push origin my-new-feature`)\n6. Create new Pull Request from your fork\n\nFor more information see [CONTRIBUTING.md](https://github.com/Erudika/para/blob/master/CONTRIBUTING.md)\n\n## License\n[Apache 2.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferudika%2Fpara-client-ios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferudika%2Fpara-client-ios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferudika%2Fpara-client-ios/lists"}