/JetPack

Various functionality to make iOS app development with Swift even more enjoyable!

Primary LanguageSwiftMIT LicenseMIT

JetPack

Build Status codecov.io

JetPack offers various functionality to make iOS app development with Swift even more enjoyable!

Functionality is developed along with the apps using it so everything in this library solves real problems. It's still in an early stage and thus it's not published in CocoaPods's repository yet.

Installation

JetPack requires Swift 5 and a deployment target of iOS 11.0 or newer.

pod 'JetPack', :git => 'https://github.com/fluidsonic/JetPack.git'

Since JetPack isn't versioned yet it is recommended to add it as a Git submodule and import it as a development pod. This way you can be sure that a subsequent pod update doesn't break your code until you check out latest changes manually.

Initialization

JetPack still has to rely on some Objective-C runtime modifications as well as some global notification observers, so it must be initialized.

Call JetPackKit.initialize() as early as possible, ideally early in one of the following locations:

  • main.swift
  • init() of your UIApplicationDelegate
  • application(_:willFinishLaunchingWithOptions:)
  • application(_:didFinishLaunchingWithOptions:)

Example

import JetPack
import UIKit


@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

	var window: UIWindow?


	override init() {
		super.init()

		JetPackKit.initialize()
	}


	func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]?) -> Bool {
		// your app initialization
	}
}

Modules

Module Description
JetPack Imports all modules listed below at once. Best value!
JetPack/Core Commonly used components, global functions & types.
JetPack/Deprecated Stuff you can but should no longer use.
JetPack/Experimental Functionality which is helpful but not fully developed.
JetPack/Extensions Imports all extension modules listed below at once.
JetPack/Extensions/CoreGraphics Useful extensions for the CoreGraphics framework.
JetPack/Extensions/CoreLocation Useful extensions for the CoreLocation framework.
JetPack/Extensions/Darwin Useful extensions for the Darwin module.
JetPack/Extensions/Foundation Useful extensions for the Foundation framework.
JetPack/Extensions/MapKit Useful extensions for the MapKit framework.
JetPack/Extensions/Photos Useful extensions for the Photos framework.
JetPack/Extensions/Swift Useful extensions for the Swift framework.
JetPack/Extensions/UIKit Useful extensions for the UIKit framework.
JetPack/Measures Working with and converting various measurement units made easy!
Angle, Length, Pressure, Speed, Temperature & Time so far.
JetPack/UI New UI components, replacements for existing UI components (e.g. an ImageView with URL loading or a Label with padding & link support) and subclasses augmenting existing UI components.

License

MIT