A set of frameworks making iOS development more fun

Related tags

UI N8iveKit
Overview

N8iveKit

A set of frameworks making iOS development more fun, developed by N8ive Apps

Frameworks

  • InterfaceKit
  • AuthKit
  • CoreKit (in progress)
  • NetworkKit (in progress)

More frameworks to be added, stay tuned ☺️

InterfaceKit

NKViewController:

The base type replacement for UIViewController that adds N8iveKit supporting logic.

NKNavigationController:

Replaces UINavigationController by adding more features:

  • Ability to have different NavigationBar height for each viewController (navigation bar size interactively changes during transitions).
  • Ability to enable/disable Sloppy swiping (swipe back gesture to be started from anywhere on the screen, not only from the left edge).

To access the NavigationBar, just call adaptableNavigationBar property of the NKNavigationController.

NKTabBarController:

Replaces UITabBarController by adding more features:

  • 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).
  • Ability to implement your own TabBar layout.
  • In case of vertical TabBar, NavigationBar of selected tab (in case it was NKNavigationController) is positioned on top of the TabBar.

To access the TabBar, just call adaptableTabBar property of the NKTabBarController.

NKActivityIndicatorView:

Replaces UIActivityIndicatorView by adding the ability to use your own animatable layer and handle it.

NKRefreshControl:

Replaces UIRefreshControl by adding the ability to use your own animatable layer and handle it, below is an example on how to use it.

let rc = NKRefreshControl()

override func viewDidLoad() {
  super.viewDidLoad()
  rc.tintColor = UIColor.red
  rc.addTarget(self, action: #selector(RefreshViewController.refresh), for: UIControlEvents.valueChanged)
  self.scrollView.refreshControl = rc
}

@objc func refresh(){
  DispatchQueue.main.asyncAfter(deadline: (DispatchTime.now() + Double(5.0))) { () -> Void in
  	self.rc.endRefreshing()
  }
}

func scrollViewDidScroll(_ scrollView: UIScrollView) {
  rc.scrollViewDidScroll(scrollView)
}

AuthKit

OAuth2Client:

The base class for handling OAuth2 flow on iOS using SFSafariViewController, currently supportsOAuth2CodeGrant , tested on Facebook , Google & Github (example app includes code for all).

OAuth2Clientsupports custom handlers for updating UI during the authentication flow.

Requirements

  • iOS 10.0+
  • Xcode 9.0
  • Swift 4.0

Installation

Manually

N8iveKit can be integrated manually into your project, dependency managers support coming soon.

Embedded Framework

  • Add N8iveKit as a git submodule by running the following command:

    $ git submodule add https://github.com/n8iveapps/N8iveKit.git
  • Open the N8iveKit folder, and drag the needed kit (currently, only InterfaceKit.xcodeproj available) into the Project Navigator of your application's Xcode project.

  • 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.

  • In the tab bar at the top of that window, open the "General" panel.

  • Click on the + button under the "Embedded Binaries" section.

  • Select the framework (currently InterfaceKit.framework).

  • Enjoy ☺️

Please note that some frameworks depend on others, so you have to include all needed frameworks.

Usage

You can use Interface builder and change the element type to your desired one, or you can simple initialize the elements in code.

Included Open source libraries

Communication

  • If you found a bug, open an issue.
  • If you have a feature request, open an issue.
  • If you want to contribute, submit a pull request.

License

N8iveKit is released under the MIT license. See LICENSE for details.

You might also like...
A custom stretchable header view for UIScrollView or any its subclasses with UIActivityIndicatorView and iPhone X safe area support for content reloading. Built for iOS 10 and later.

Arale A custom stretchable header view for UIScrollView or any its subclasses with UIActivityIndicatorView support for reloading your content. Built f

BulletinBoard is an iOS library that generates and manages contextual cards displayed at the bottom of the screen
BulletinBoard is an iOS library that generates and manages contextual cards displayed at the bottom of the screen

BulletinBoard is an iOS library that generates and manages contextual cards displayed at the bottom of the screen. It is especially well

💾 A collection of classic-style UI components for iOS
💾 A collection of classic-style UI components for iOS

A collection of classic-style UI components for UIKit, influenced by Windows 95 Introduction This is a little exploration into applying '90s-era desig

A simple, customizable view for efficiently collecting country information in iOS apps.
A simple, customizable view for efficiently collecting country information in iOS apps.

CountryPickerView CountryPickerView is a simple, customizable view for selecting countries in iOS apps. You can clone/download the repository and run

A library to recreate the iOS Apple Music now playing transition
A library to recreate the iOS Apple Music now playing transition

DeckTransition DeckTransition is an attempt to recreate the card-like transition found in the iOS 10 Apple Music and iMessage apps. Hereʼs a GIF showi

A message bar for iOS written in Swift.
A message bar for iOS written in Swift.

Dodo, a message bar for iOS / Swift This is a UI widget for showing text messages in iOS apps. It is useful for showing short messages to the user, so

Protocol oriented, type safe, scalable design system foundation swift framework for iOS.
Protocol oriented, type safe, scalable design system foundation swift framework for iOS.

Doric: Design System Foundation Design System foundation written in Swift. Protocol oriented, type safe, scalable framework for iOS. Features Requirem

A Material Design drop down for iOS
A Material Design drop down for iOS

A Material Design drop down for iOS written in Swift. Demo Do pod try DropDown in your console and run the project to try a demo. To install CocoaPods

An easy to use FAQ view for iOS written in Swift
An easy to use FAQ view for iOS written in Swift

FAQView An easy to use FAQ view for iOS written in Swift. This view is a subclass of UIView. Setup with CocoaPods If you are using CocoaPods add this

Owner
N8ive apps
We make gr8 apps :)
N8ive apps
Declarative, configurable & highly reusable UI development as making Lego bricks.

LeeGo is a lightweight Swift framework that helps you decouple & modularise your UI component into small pieces of LEGO style's bricks, to make UI dev

WANG Shengjia 969 Dec 29, 2022
🎸🎸🎸 Common categories for daily development. Such as UIKit, Foundation, QuartzCore, Accelerate, OpenCV and more.

?????? Common categories for daily development. Such as UIKit, Foundation, QuartzCore, Accelerate, OpenCV and more.

77。 423 Jan 4, 2023
A set of UIKit helpers that simplify the usage of UIKit view's and controller's in SwiftUI.

A set of UIKit helpers that simplify the usage of UIKit view's and controller's in SwiftUI. Many of these helpers are useful even in a pure UIKit project.

SwiftUI+ 6 Oct 28, 2022
A custom UIControl which functions like UISlider where you can set multiple intervals with different step values for each interval.

MultiStepSlider A custom UIControl which functions like UISlider where you can set multiple intervals with different step values for each interval. Th

Susmita Horrow 25 Apr 28, 2022
High performance and lightweight UIView, UIImage, UIImageView, UIlabel, UIButton, Promise and more.

SwiftyUI High performance and lightweight UIView, UIImage, UIImageView, UIlabel, UIButton and more. Features SwiftyView GPU rendering Image and Color

Haoking 336 Nov 26, 2022
Convenient domain specific language for writing programmatic UI built over UIKit and more.

XYKit Swifty and convenient domain specific language for creating programmatic UI in a more declarative way and more than that. Built on top of UIKit

Denis Goloborodko 1 Nov 5, 2021
React.js like Mixin. More powerful Protocol-Oriented Programming.

Mixin ?? Why? Swift is Protocol-Oriented Programming, and it's more powerful by default implementations of extensions of protocols. You can mixin meth

Wan-Huang Yang 45 Dec 28, 2021
A simple GUI for starting/stopping our various local development environments

EnvironmentLauncher A simple GUI for starting/stopping SchoolMint's various local development environments Before you begin, some notes This is a WIP

Francis Scheuermann 1 May 17, 2022
UIStackView replica for iOS 7.x and iOS 8.x

TZStackView A wonderful layout component called the UIStackView was introduced with iOS 9. With this component it is really easy to layout components

Tom van Zummeren 1.2k Oct 10, 2022
Super awesome Swift minion for Core Data (iOS, macOS, tvOS)

⚠️ Since this repository is going to be archived soon, I suggest migrating to NSPersistentContainer instead (available since iOS 10). For other conven

Marko Tadić 306 Sep 23, 2022