NTComponents 1.0.0

NTComponents 1.0.0

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Sep 2017
SwiftSwift Version 4.0
SPMSupports SPM

Maintained by Nathan Tannar.



  • By
  • Nathan Tannar






For the better part of two years I have been learning Swift. During this time I used a lot of 3rd party dependencies to build out my apps. While they were useful for getting started, I wanted to dive deeper and create my own set of components that would have the essentials I would need to develop apps moving forward.

I faced an ongoing problem of always having to set the tint color, font choice and general defaults for every project. To solve this I made NTComponents. A set of classes that will inherit defaults defined in AppDelegate. This grew into also adding useful extensions, models and custom views simplify app creation while maintaining great UI/UX.

Hit that star button to show your support!

Features

  • Maintain consistency and style with ease
    • Set global app defaults, such as color or font, that will be defaults in all NTComponent classes
  • Custom container controllers
    • NTDrawerController, NTScrollableTabBarController and more!
  • Material color palette available
  • FontAwesome and GoogleMaterialDesign icons available
  • Material ripple effect for buttons and views available
  • Programatic auto layout
  • Many useful extensions (seriously take a look!)

Documentation

While NTComponents has yet to be fully documented, you can find the docs here: https://nathantannar.me/NTComponents/docs/

Requirements

  • iOS 9.1+
  • Xcode 9.0+
  • Swift 4

Installation

Manually

  1. Download and open NTComponents.xcproject
  2. Build the framework
  3. Copy the NTComponents.framework product to your project

Release History

  • 1.0.0
    • Swift 4
  • 0.0.7
    • More views, bug fixes and optimizations
  • 0.0.6
    • Added calendar view integration from JTAppleCalendar and an all new NTDrawerController
  • 0.0.5
    • Bug Fixes & Tweaks, introduction of NTFormViewController to easily make forms
  • 0.0.4
    • Focus on animations and alert view updates
  • 0.0.3
    • Focus on bug fixes and optimizations
  • 0.0.2
    • Completed the majority of main components
  • 0.0.1
    • Branch from NTUIKit

Getting Started

I would recommend taking a look at the sample code that generates the NTComponents Demo app. Also try taking a look at the Jazzy generated Docs(https://nathantannar.me/NTComponents/docs/)! While they are not complete yet I plan to work on documentation.

import NTComponents

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

        // Set color defaults
        Color.Default.setPrimary(to: .white)
        Color.Default.setSecondary(to: .red)
        Color.Default.Text.Title = .blue

        // If you want the shadow to be more standard
        Color.Default.setCleanShadow()

        // Set your font defaults
        Font.Default.Title = Font.Roboto.Medium.withSize(15)
        Font.Default.Subtitle = Font.Roboto.Regular
        Font.Default.Body = Font.Roboto.Regular.withSize(13)

        return true
    }

    // More standard AppDelegate methods
}

Screen Captures

Onboarding

Login

Alerts

Controller Containers

Forms

And Much, Much, More

Planned Improvements/Additons

  • NTCollectionViewCell
    • More base cells
  • Camera controller
  • More docs

Contribute

We would love for you to contribute to NTComponents with more useful extensions, models or UI classes. If interested please contact myself.

Bugs

Find a bug? Please feel free to let me know!

Author

Nathan Tannar - https://nathantannar.me

Acknowledgements

I would like to thank the following open source developers. Some of which I either drew inspiration upon or reworked their code into NTComponents

Brian Voong - https://github.com/bhlvoong/LBTAComponents
Raul Riera - https://github.com/raulriera/TextFieldEffects
patchthecode - https://github.com/patchthecode/JTAppleCalendar
Zheng-Xiang Ke - https://github.com/kf99916/TimelineTableViewCell
Ryo Aoyama - https://github.com/ra1028/Former
Amornchai Kanokpullwad - https://github.com/zoonooz/ZFRippleButton

And to all of the contributors on StackOverflow

License

Distributed under the MIT license. See LICENSE for more information.

https://github.com/nathantannar4/NTComponents