{"id":2210,"url":"https://github.com/n8iveapps/N8iveKit","last_synced_at":"2025-07-31T12:33:32.745Z","repository":{"id":215156355,"uuid":"99416530","full_name":"n8iveapps/N8iveKit","owner":"n8iveapps","description":"A set of frameworks making iOS development more fun","archived":false,"fork":false,"pushed_at":"2017-09-07T21:45:53.000Z","size":555,"stargazers_count":15,"open_issues_count":0,"forks_count":1,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-08-15T00:20:02.135Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/n8iveapps.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}},"created_at":"2017-08-05T10:40:33.000Z","updated_at":"2024-05-10T23:49:01.000Z","dependencies_parsed_at":"2024-01-05T20:19:04.126Z","dependency_job_id":null,"html_url":"https://github.com/n8iveapps/N8iveKit","commit_stats":null,"previous_names":["n8iveapps/n8ivekit"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n8iveapps%2FN8iveKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n8iveapps%2FN8iveKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n8iveapps%2FN8iveKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n8iveapps%2FN8iveKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/n8iveapps","download_url":"https://codeload.github.com/n8iveapps/N8iveKit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228248436,"owners_count":17891447,"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-01-05T20:16:07.681Z","updated_at":"2024-12-05T06:31:22.404Z","avatar_url":"https://github.com/n8iveapps.png","language":"Swift","readme":"![N8iveKit](http://n8iveapps.com/opensource/n8ivekit/n8ivekit.png)\n\nA set of frameworks making iOS development more fun, developed by [N8ive Apps](http://n8iveapps.com)\n\n## Frameworks\n\n- [x] InterfaceKit\n- [x] AuthKit\n- [ ] CoreKit (in progress)\n- [ ] NetworkKit (in progress)\n\nMore frameworks to be added, stay tuned :relaxed:\n\n\n\n## InterfaceKit\n\n#### NKViewController:\nThe base type replacement for [UIViewController](https://developer.apple.com/documentation/uikit/uiviewcontroller) that adds `N8iveKit` supporting logic.\n\n#### NKNavigationController:\nReplaces [UINavigationController](https://developer.apple.com/documentation/uikit/uinavigationcontroller) by adding more features:\n- Ability to have different NavigationBar height for each viewController (navigation bar size interactively changes during transitions).\n- Ability to enable/disable `Sloppy swiping` (swipe back gesture to be started from anywhere on the screen, not only from the left edge).\n\nTo access the NavigationBar, just call `adaptableNavigationBar` property of the `NKNavigationController`.\n\n#### NKTabBarController:\nReplaces [UITabBarController](https://developer.apple.com/documentation/uikit/uitabbarcontroller) by adding more features:\n- Ability to automatically position the `TabBar` vertically if the screen width exceeds a certain limit (you can also choose whether to make it on the right or left of the screen).\n- Ability to implement your own `TabBar` layout.\n- In case of vertical `TabBar`, `NavigationBar` of selected tab (in case it was `NKNavigationController`) is positioned on top of the `TabBar`.\n\nTo access the TabBar, just call `adaptableTabBar` property of the `NKTabBarController`.\n\n#### NKActivityIndicatorView:\n\nReplaces [UIActivityIndicatorView](https://developer.apple.com/documentation/uikit/uiactivityindicatorview#main) by adding the ability to use your own animatable layer and handle it.\n\n#### NKRefreshControl:\n\nReplaces [UIRefreshControl](https://developer.apple.com/documentation/uikit/uirefreshcontrol) by adding the ability to use your own animatable layer and handle it, below is an example on how to use it.\n\n```swift\nlet rc = NKRefreshControl()\n\noverride func viewDidLoad() {\n  super.viewDidLoad()\n  rc.tintColor = UIColor.red\n  rc.addTarget(self, action: #selector(RefreshViewController.refresh), for: UIControlEvents.valueChanged)\n  self.scrollView.refreshControl = rc\n}\n\n@objc func refresh(){\n  DispatchQueue.main.asyncAfter(deadline: (DispatchTime.now() + Double(5.0))) { () -\u003e Void in\n  \tself.rc.endRefreshing()\n  }\n}\n\nfunc scrollViewDidScroll(_ scrollView: UIScrollView) {\n  rc.scrollViewDidScroll(scrollView)\n}\n```\n\n\n\n## AuthKit\n\n#### OAuth2Client:\n\nThe base class for handling [OAuth2](https://www.oauth.com/oauth2-servers/oauth2-clients/mobile-and-native-apps/) flow on iOS using `SFSafariViewController`, currently supports`OAuth2CodeGrant` , tested on [Facebook](https://www.facebook.com) , [Google](https://www.google.com) \u0026  [Github](https://www.github.com) (example app includes code for all).\n\n`OAuth2Client`supports custom handlers for updating UI during the authentication flow.\n\n\n\n## Requirements\n\n- iOS 10.0+\n- Xcode 9.0\n- Swift 4.0\n\n## Installation\n### Manually\n\nN8iveKit can be integrated manually into your project, dependency managers support coming soon.\n\n#### Embedded Framework\n\n- Add N8iveKit as a git [submodule](http://git-scm.com/docs/git-submodule) by running the following command:\n\n  ```bash\n  $ git submodule add https://github.com/n8iveapps/N8iveKit.git\n  ```\n\n- Open the `N8iveKit` folder, and drag the needed kit (currently, only `InterfaceKit.xcodeproj` available) into the Project Navigator of your application's Xcode project.\n\n- Navigate to the target configuration window by clicking on the blue project icon, and selecting the application target under the \"Targets\" heading in the sidebar.\n\n- In the tab bar at the top of that window, open the \"General\" panel.\n\n- Click on the `+` button under the \"Embedded Binaries\" section.\n\n- Select the framework (currently `InterfaceKit.framework`).\n\n- Enjoy  :relaxed:\n\nPlease note that some frameworks depend on others, so you have to include all needed frameworks.\n\n## Usage\n\nYou can use Interface builder and change the element type to your desired one, or you can simple initialize the elements in code.\n\n## Included Open source libraries\n\n- [Alamofire](https://github.com/Alamofire/Alamofire) \n- [SwiftyJSON](https://github.com/SwiftyJSON/SwiftyJSON) \n\n## Communication\n\n- If you **found a bug**, open an issue.\n- If you **have a feature request**, open an issue.\n- If you **want to contribute**, submit a pull request.\n\n## License\n\nN8iveKit is released under the MIT license. [See LICENSE](https://github.com/n8iveapps/N8iveKit/blob/master/LICENSE) for details.\n\n\n","funding_links":[],"categories":["UI"],"sub_categories":["Font","Other free courses","Other Testing"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn8iveapps%2FN8iveKit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fn8iveapps%2FN8iveKit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn8iveapps%2FN8iveKit/lists"}