CELLULAR
A collection of utilities that we share across swift-based projects at CELLULAR.
It is a standalone module with no external dependencies.
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
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 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.
CELLULAR
A collection of utilities that we share across swift-based projects at CELLULAR.
It is a standalone module with no external dependencies.
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:1. Allows
Foundation
types to be inferred on value assignment2. Even
Optional
holding these types may be inferred3. Allows instances in collections to fail decoding
Locking
TODO
Storyboard
TODO
Requirements
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 yourPackage.swift
.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:
License
CELLULAR is released under the MIT license. See LICENSE for details.