Swiftpack.co - Package - Moximillian/ProtoKit

ProtoKit

license MIT Platform

ProtoKit is a collection of protocols and extensions that make prototyping faster and easier with Swift programming language

Package

ProtoKit is structured as a Package (Swift Package Manager, SPM), each swift file contains a specific feature / functionality.

Current features are:

  • SwiftUI Views
    • Arrow
    • Line
    • CircleShape (can be animated)
    • ProgressText (can be animated)
  • SwiftUI Extensions
    • uiHostingController
    • uiView
    • anyView
  • UIKit Extensions
    • Bundle
    • CGRect
    • UIApplication
    • UICollectionView
    • UIColor
    • UIImage
    • UIImageView
    • UILabel
    • UIStoryboard
    • UITableView
  • Closurable (UIControl, UIButton, UIBarButtonItem, UIPageControl, UIGestureRecognizer)
  • Configurable
  • CoreDataStack
  • SourcedError (Custom ErrorType)
  • KVO
  • NotificationService / TypedNotification (way to pass data via observing/notifying)
  • SegueHandlerType
  • SelfPresentable (casting as Self)
  • Unified Collection (factory and related methods for creating UITableViewDataSources and UICollectionViewDataSources)

Requirements

ProtoKit version 6.0 and later requires:

  • iOS 13+ or tvOS 13+ or MacOS 10.15+
  • Xcode 11.2 (Swift 5.1)
  • watchOS is not supported

Protocol naming conventions

Protocol types and naming conventions used in this framework:

  1. Can do => -able => Hashable, RawRepresentable, Equatable
  2. Is a => -Type => CollectionType, SequenceType, ErrorType
  3. Can be => -Convertible => FloatLiteralConvertible, CustomStringConvertible

Credits

Created and maintained by @moximillian.

Unified Collection inspired by

License

ProtoKit is released under an MIT License. See LICENSE for details.

Copyright © 2019-present Mox Soini.

Please provide attribution, it is greatly appreciated.

Github

link
Stars: 2

Dependencies

Used By

Total: 0

Releases

Xcode 11.4 updates - 2020-03-26 21:14:02

new SwiftUI extensions and SwiftUI Views - 2019-12-08 14:56:33

NotificationService bug fix - 2019-08-07 14:27:48

Xcode 11 beta 5 updates and other fixes - 2019-08-07 14:11:02

View extension sizing bug fix - 2019-06-29 20:58:48

SwiftUI View extensions - 2019-06-29 20:20:53

First few SwiftUI extensions - 2019-06-19 19:33:47

Swift 5.0 release - 2019-06-04 21:04:30

SelfPresentable: Use Self instead of generics in many instantiations - 2018-08-31 17:28:29

let cell: MyCell = tableView.dequeueReusableCell => let cell = MyCell.dequeueReusable(in: tableView) ...and similar changes to all similar helpers.

Refactor UnifiedCollection (Swift 4.2 required) - 2018-07-13 15:38:03

Configurable - 2018-05-27 10:16:28

KVO: observe and bind - 2018-05-22 06:17:31

Instantiable - 2018-04-23 09:12:37

new protocol: Instantiable, replaces Storyboard.instantiate()

Swift 4.1 - 2018-04-08 12:54:55

Requires Xcode 9.3 or later (Swift 4.1)

  • Removed Castable
  • Removed Injectable
  • Added Observer

Swift 4.1 baseline - 2018-02-25 16:05:12

This release requires Swift 4.1 or newer. Removal of Injectable Addition of Observer (Notification posting and listening) Refactoring of UnifiedCollection to take advantage of latest in Swift 4.1

Upgrade to Xcode 9.1 - 2017-11-07 15:02:50

Conditional Conformances - 2017-10-16 11:25:33

Requires pre-9.1 Xcode Swift compiler with conditional conformance support

Code signing fix - 2017-10-16 08:28:01

Build dependencies - 2017-10-15 11:53:05

fixes - 2017-10-04 17:42:17

Include convenience functions for CoreData stack - 2017-10-04 17:33:35

cross-platform beta (tvOS + iOS + macOS) - 2017-09-25 13:58:53

Release 2.0 for Swift 4.0 - 2017-09-07 14:29:28

v1.0.7 - 2017-04-22 10:30:41

Small tweaks - 2017-04-04 12:06:33

UnifiedCollection cleanup - 2017-03-28 21:51:24

UnifiedCollection API cleanup - 2017-03-14 21:18:24

Fix Retain Cycles in UnifiedCollection - 2017-03-14 20:03:44

Make collection generic in UnifiedCellType - 2017-03-05 12:10:30

Small fixes - 2017-02-12 22:48:26