{"id":1787,"url":"https://github.com/lionheart/TipJarViewController","last_synced_at":"2025-08-02T04:32:32.503Z","repository":{"id":32371010,"uuid":"132362771","full_name":"lionheart/TipJarViewController","owner":"lionheart","description":"Easy, drop-in tip jar for iOS apps.","archived":false,"fork":false,"pushed_at":"2025-04-30T13:07:57.000Z","size":2408,"stargazers_count":78,"open_issues_count":11,"forks_count":13,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-07-22T11:54:55.392Z","etag":null,"topics":["ios","swift","tipping","tips","viewcontroller"],"latest_commit_sha":null,"homepage":"https://code.lionheart.software/TipJarViewController","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/lionheart.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-05-06T17:53:59.000Z","updated_at":"2025-04-30T13:07:55.000Z","dependencies_parsed_at":"2024-01-07T22:23:29.068Z","dependency_job_id":"860dc86d-22e7-4f51-80e9-e16d75a4d92b","html_url":"https://github.com/lionheart/TipJarViewController","commit_stats":{"total_commits":129,"total_committers":3,"mean_commits":43.0,"dds":"0.015503875968992276","last_synced_commit":"a9473cae179604927223b2873e5301541ae969a1"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/lionheart/TipJarViewController","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lionheart%2FTipJarViewController","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lionheart%2FTipJarViewController/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lionheart%2FTipJarViewController/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lionheart%2FTipJarViewController/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lionheart","download_url":"https://codeload.github.com/lionheart/TipJarViewController/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lionheart%2FTipJarViewController/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268334618,"owners_count":24233793,"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","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","swift","tipping","tips","viewcontroller"],"created_at":"2024-01-05T20:15:55.805Z","updated_at":"2025-08-02T04:32:32.035Z","avatar_url":"https://github.com/lionheart.png","language":"Swift","readme":"\u003c!--\nCopyright 2012-2018 Lionheart Software LLC\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n--\u003e\n\n![](meta/repo-banner.png)\n[![](meta/repo-banner-bottom.png)][lionheart-url]\n\n\u003c!-- [![CI Status][ci-badge]][travis-repo-url] --\u003e\n[![Version][version-badge]][cocoapods-repo-url]\n[![License][license-badge]][cocoapods-repo-url]\n[![Platform][platform-badge]][cocoapods-repo-url]\n\n\u003c!--\n[![CocoaPods][downloads-badge]][cocoapods-repo-url]\n[![CocoaPods][downloads-monthly-badge]][cocoapods-repo-url]\n--\u003e\n\n![](screenshot.jpeg)\n\n## Installation\n\nTipJarViewController is available through [CocoaPods](https://cocoapods.org). To install\nit, simply add the following line to your Podfile:\n\n```ruby\npod 'TipJarViewController'\n```\n\n### Usage\n\nBefore you can use TipJarViewController in your app, you'll first need to create a few IAPs in iTunes Connect--2 subscription IAPs and 5 one-time IAPs. This is currently a requirement but may change in the future.\n\nOnce you've created your IAPs, you just need to configure the header and description at the top of the view controller, and tell TipJarViewController what your IAP product identifiers are, using the `TipJarConfiguration` protocol. E.g.,\n\n```swift\nstruct TipJarOptions: TipJarConfiguration {\n    static var topHeader = \"Hi There\"\n\n    static var topDescription = \"\"\"\nIf you've been enjoying this app and would like to show your support, please consider a tip. They go such a long way, and every little bit helps. Thanks! :)\n\"\"\"\n\n    static func subscriptionProductIdentifier(for row: SubscriptionRow) -\u003e String {\n        switch row {\n        case .monthly: return \"com.acme.app.TipJarSubscription.Monthly\"\n        case .yearly: return \"com.acme.app.TipJarSubscription.Yearly\"\n        }\n    }\n\n    static func oneTimeProductIdentifier(for row: OneTimeRow) -\u003e String {\n        switch row {\n        case .small: return \"com.acme.app.Tip.Small\"\n        case .medium: return \"com.acme.app.Tip.Medium\"\n        case .large: return \"com.acme.app.Tip.Large\"\n        case .huge: return \"com.acme.app.Tip.Huge\"\n        case .massive: return \"com.acme.app.Tip.Massive\"\n        }\n    }\n\n    static var termsOfUseURLString = \"https://acme.app/terms.html\"\n    static var privacyPolicyURLString = \"https://acme.app/privacy.html\"\n}\n```\n\nAnd then, to instantiate the `TipJarViewController`:\n\n```swift\nlet controller = TipJarViewController\u003cTipJarOptions\u003e()\n```\n\nIf you want more customization options, just make your configuration conform to `TipJarOptionalConfiguration`. You can also specify a URL running Lionheart's [receipt verifier](https://github.com/lionheart/in_app_purchase_receipt_verifier) to check for valid purchases on your own server.\n\n```swift\nextension TipJarOptions: TipJarOptionalConfiguration {\n    static var title = \"Tip Jar\"\n    static var oneTimeTipsTitle = \"One-Time Tips\"\n    static var subscriptionTipsTitle = \"Ongoing Tips ❤️\"\n    static var receiptVerifierURLString = \"https://receipt-verifier.herokuapp.com/verify\"\n}\n```\n\n## License\n\nTipJarViewController is available under the Apache 2.0 license. See the [LICENSE](LICENSE) file for more info.\n\n\u003c!-- Images --\u003e\n\n[ci-badge]: https://img.shields.io/travis/lionheart/TipJarViewController.svg?style=flat\n[version-badge]: https://img.shields.io/cocoapods/v/TipJarViewController.svg?style=flat\n[license-badge]: https://img.shields.io/cocoapods/l/TipJarViewController.svg?style=flat\n[platform-badge]: https://img.shields.io/cocoapods/p/TipJarViewController.svg?style=flat\n[downloads-badge]: https://img.shields.io/cocoapods/dt/TipJarViewController.svg?style=flat\n[downloads-monthly-badge]: https://img.shields.io/cocoapods/dm/TipJarViewController.svg?style=flat\n\n\u003c!-- Links --\u003e\n\n[semver-url]: http://www.semver.org\n[travis-repo-url]: https://travis-ci.org/lionheart/TipJarViewController\n[cocoapods-url]: http://cocoapods.org\n[cocoapods-repo-url]: http://cocoapods.org/pods/TipJarViewController\n[doc-url]: https://code.lionheart.software/TipJarViewController/\n[lionheart-url]: https://lionheartsw.com/\n\n","funding_links":[],"categories":["Payments"],"sub_categories":["Other Parsing"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flionheart%2FTipJarViewController","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flionheart%2FTipJarViewController","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flionheart%2FTipJarViewController/lists"}