{"id":13516417,"url":"https://github.com/kaiinui/ios-awesome-libraries","last_synced_at":"2026-01-18T01:25:22.468Z","repository":{"id":19839349,"uuid":"23100971","full_name":"kaiinui/ios-awesome-libraries","owner":"kaiinui","description":"Also in iOS, there are many awesome libraries!","archived":false,"fork":false,"pushed_at":"2014-11-04T21:16:00.000Z","size":228,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-05-23T04:09:36.647Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"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/kaiinui.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-19T07:26:58.000Z","updated_at":"2024-04-11T02:47:35.000Z","dependencies_parsed_at":"2022-08-05T05:15:15.645Z","dependency_job_id":null,"html_url":"https://github.com/kaiinui/ios-awesome-libraries","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaiinui%2Fios-awesome-libraries","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaiinui%2Fios-awesome-libraries/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaiinui%2Fios-awesome-libraries/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaiinui%2Fios-awesome-libraries/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kaiinui","download_url":"https://codeload.github.com/kaiinui/ios-awesome-libraries/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246429459,"owners_count":20775805,"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":[],"created_at":"2024-08-01T05:01:22.133Z","updated_at":"2026-01-18T01:25:17.428Z","avatar_url":"https://github.com/kaiinui.png","language":null,"funding_links":[],"categories":["Technical"],"sub_categories":["ramanihiteshc@gmail.com"],"readme":"ios-awesome-libraries\n=====================\n\nAlso in iOS, there are many awesome libraries!\n\n[JTSImageViewController](https://github.com/jaredsinclair/JTSImageViewController)\n\nLightbox for iOS\n\n[RS3DSegmentedControl](https://github.com/rsoffer/RS3DSegmentedControl)\n\n![](https://camo.githubusercontent.com/3400bb08b831f99c1c34e340ab934be567be4ecf/68747470733a2f2f7261772e6769746875622e636f6d2f72736f666665722f525333445365676d656e746564436f6e74726f6c2f6d61737465722f73616d706c652e676966)\n\n[pop](https://github.com/facebook/pop)\n\n```objc\nPOPSpringAnimation *anim = [POPSpringAnimation animation];\n...\n[layer pop_addAnimation:anim forKey:@\"myKey\"];\n```\n\n[JGActionSheet](https://github.com/JonasGessner/JGActionSheet)\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/JonasGessner/JGActionSheet/raw/master/JGActionSheet%20Tests/Screenshots/1.png\" width=\"36.2%\"/\u003e\u0026nbsp;\n\u003cimg src=\"https://github.com/JonasGessner/JGActionSheet/raw/master/JGActionSheet%20Tests/Screenshots/2.png\" width=\"48%\"/\u003e\u003c/p\u003e\n\n[THCalendarDatePicker](https://github.com/hons82/THCalendarDatePicker)\n\n![](https://github.com/hons82/THCalendarDatePicker/raw/master/Screenshots/Screenshot1.png?raw=true)\n\n[SSAppURLs](https://github.com/splinesoft/SSAppURLs)\n\n```objc\nif (deviceSupportsSkype) {\n    [[UIApplication sharedApplication] openAppType:SSAppURLTypeSkype \n                                         withValue:@\"415-555-1212\"];\n}\n\nif (deviceHasChrome) {\n    [[UIApplication sharedApplication] openAppType:SSAppURLTypeChromeHTTP \n                                         withValue:@\"http://www.splinesoft.net\"];\n}\n```\n\n[IntentKit](https://github.com/intentkit/IntentKit) - An easier way to handle third-party URL schemes in iOS apps.\n\n![](https://raw.github.com/intentkit/IntentKit/master/example.gif)\n\n[oxen](https://github.com/jacksonh/oxen) - Observable collection in iOS.\n\n```objc\nself.array.onCollectionChanged = ^(id\u003cOXNChangeInfo\u003e change) {\n    self.itemsArray = change.currentArray;\n    if ([change isKindOfClass:[OXNItemAddedChangeInfo class]]) {\n        [self.collectionView inserItemAtIndex:[NSIndexPath indexPathForItem:change.index inSection:1]];\n    }\n};\n```\n\n[KeepLayout](https://github.com/iMartinKiss/KeepLayout) - Easy programmable AutoLayout.\n\n```objc\n[view keepSize:CGSizeMake(100, 200)];\n[view keepInsets:UIEdgeInsetsMake(10, 20, 30, 40)];\n[view keepCentered];\n```\n\n[KVOController](https://github.com/facebook/KVOController) - Super handy KVO.\n\n```objc\nFBKVOController *KVOController = [FBKVOController controllerWithObserver:self];\n[KVOController observe:clock keyPath:@\"date\" options:NSKeyValueObservingOptionInitial|NSKeyValueObservingOptionNew block:^(ClockView *clockView, Clock *clock, NSDictionary *change) {\n  // update clock view with new value\n  clockView.date = change[NSKeyValueChangeNewKey];\n}];\n```\n\n[ClusterPrePermissions](https://github.com/clusterinc/ClusterPrePermissions)\n\n![](https://camo.githubusercontent.com/7eef0b117818b9da198cfc850ce21171e4b9d204/687474703a2f2f662e636c2e6c792f6974656d732f32493156315233623371334133483379337531382f6e65772d312e6a7067)\n\nAsset\n---\n\n[LKAssetsLibrary](https://github.com/lakesoft/LKAssetsLibrary)\n\n![](https://github.com/lakesoft/LKAssetsLibrary/raw/master/Docs/LKAssetsLibrary-Pic2.png)\n\nSupport\n---\n\n[rdotm](https://github.com/ksoichiro/rdotm) - R.java in iOS!\n\n![](https://github.com/ksoichiro/rdotm/raw/master/testdata/images/demo.gif)\n\n[Chameleon](https://github.com/VAlexander/Chameleon) - A Lightweight x Powerful Flat Color Framework\n\n![](https://camo.githubusercontent.com/2a1ed77e3950ac3908283d0a23970a6e1407e463/687474703a2f2f692e696d6775722e636f6d2f4873384943744a2e706e67)\n\nTesting\n===\n\n- [Specta](https://github.com/specta/specta) \u0026 [Expecta](https://github.com/specta/expecta)\n\n```objc\ndescribe(@\"Foo\", ^{\n  beforeAll(^{\n    // All asynchronous matching using `will` and `willNot`\n    // will have a timeout of 2.0 seconds\n    [Expecta setAsynchronousTestTimeout:2];\n  });\n  \n  if(@\"foo should be foo\", ^{\n    expect(@\"foo\").to.equal(@\"foo\");\n  });\n\n  it(@\"will not be nil\", ^{\n    // Test case where default timeout is used\n    expect(foo).willNot.beNil();\n  });\n});\n```\n\n- [OCMockito](https://github.com/jonreid/OCMockito)\n\n```objc\nNSMutableArray *mockArray = mock([NSMutableArray class]);\n[mockArray addObject:@\"one\"];\n[verify(mockArray) addObject:@\"one\"];\n\nNSArray *mockArray = mock([NSArray class]);\n[given([mockArray objectAtIndex:0]) willReturn:@\"first\"];\n```\n\n- [UI Auto Monkey](https://github.com/jonathanpenn/ui-auto-monkey)\n\n[Screencast](http://vimeo.com/channels/trianglecocoa/54727965)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaiinui%2Fios-awesome-libraries","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaiinui%2Fios-awesome-libraries","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaiinui%2Fios-awesome-libraries/lists"}