Swiftpack.co - Package - cellular/cellular-swift


CELLULAR

A collection of utilities that we share across swift-based projects at CELLULAR.
It is a standalone module with no external dependencies.

Build Status Codecov CocoaPods Compatible Swift Version Platform

Features

Codable

There are several extensions on KeyedDecodingContainer. Most of which are heavily inspired by Unbox.

THE PLANET

Throughout the Codable examples, the following struct is used:

import CELLULAR

public struct Planet: Codable {

    public var discoverer: String

    public var hasRingSystem: Bool

    public var numberOfMoons: Int

    public var distanceFromSun: Float // 10^6 km

    public var surfacePressure: Double? // bars

    public var atmosphericComposition: [String]
1. Allows Foundation types to be inferred on value assignment
    public init(from decoder: Decoder) throws {
        let container = try decoder.container(keyedBy: CodingKeys.self)

        discoverer = try container.decode(forKey: .discoverer)
        // equals: discoverer = try decode(String.self, forKey: key)

        hasRingSystem = try container.decode(forKey: .hasRingSystem)
        // equals: hasRingSystem = try decode(Bool.self, forKey: key)

        numberOfMoons = try container.decode(forKey: .numberOfMoons)
        // equals: numberOfMoons = try decode(Int.self, forKey: key)
        
        distanceFromSun = try container.decode(forKey: .distanceFromSun)
        // equals: distanceFromSun = try decode(Float.self, forKey: key)
2. Even Optional holding these types may be inferred
        surfacePressure = try container.decode(forKey: .surfacePressure)
        // equals: surfacePressure = try decodeIfPresent(Double.self, forKey: key)
3. Allows instances in collections to fail decoding
        atmosphericComposition = try container.decode(forKey: .atmosphericComposition, allowInvalidElements: true) ?? []
    }
}

Locking

TODO

Storyboard

TODO

Requirements

  • iOS 11.0+ | watchOS 5.0+ | tvOS 11.0+ | macOS 10.14+ | Ubuntu 14.04+
  • Swift 5.0+

Installation

Swift Package Manager

Once you have your Swift package set up, adding CELLULAR as a dependency is as easy as adding it to the dependencies value of your Package.swift.

dependencies: [
    .package(url: "https://github.com/cellular/cellular-swift.git", from: "6.0.1")
]

CocoaPods

CocoaPods is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate CELLULAR into your Xcode project using CocoaPods, specify it in your Podfile:

pod 'CELLULAR'

License

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

Github

link
Stars: 2
Help us keep the lights on

Dependencies

Releases

6.0.1 - Aug 27, 2019

6.0.0 - Aug 27, 2019

  • Restructured project tree in favor of SPM
  • Update travis build scripts in favor of SPM
  • Exclude NSLock from none apple platform builds
  • Bumps swift version in linux builds
  • Bumps travis osx image

5.1 - Apr 16, 2019

  • Bumps swift version to 5.0
  • Extends Storyboard Identifier on Segues

5.0 - Nov 13, 2018