Skip to content

Instantly share code, notes, and snippets.

View rwbutler's full-sized avatar

Ross Butler rwbutler

View GitHub Profile
@rwbutler
rwbutler / AppDelegate.swift
Last active January 26, 2022 12:21
OpenConnectivity Usage Example
import OpenCombine
import UIKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
private var cancellable: AnyCancellable?
func application(_: UIApplication, didFinishLaunchingWithOptions _: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// ...
let connectivity: ConnectivityService = OpenConnectivityService()
@rwbutler
rwbutler / json-key-decoding-vehicles-decode-4.swift
Created August 21, 2020 23:17
json-key-decoding-vehicles-decode-4.swift
let jsonData = try Data(contentsOf: jsonResourceURL)
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .letterCaseStrategy(from: .kebab, to: .macro)
let vehicles try decoder.decode(Vehicles.self, from: jsonData)
@rwbutler
rwbutler / json-key-decoding-vehicles-3.swift
Created August 21, 2020 23:15
json-key-decoding-vehicles-3.swift
struct Vehicles: Codable {
let VEHICLES: [Vehicle]
}
struct Vehicle: Codable {
let NAME: String
let TRAVELS_ON: Medium
let NUMBER_OF_WHEELS: Int
}
@rwbutler
rwbutler / json-key-decoding-vehicle-decode-3.swift
Created August 21, 2020 22:57
json-key-decoding-vehicle-decode-3.swift
let jsonData = try Data(contentsOf: jsonResourceURL)
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromKebabCase
let vehicles try decoder.decode(Vehicles.self, from: jsonData)
@rwbutler
rwbutler / json-key-decoding-strategy.swift
Created August 21, 2020 22:30
json-key-decoding-strategy.swift
struct AnyKey: CodingKey {
static let empty = AnyKey(string: "")
var stringValue: String
var intValue: Int?
init?(stringValue: String) {
self.stringValue = stringValue
self.intValue = nil
@rwbutler
rwbutler / json-key-decoding-vehicles-decode-2.swift
Created August 21, 2020 21:57
json-key-decoding-vehicles-decode-2.swift
let jsonData = try Data(contentsOf: jsonResourceURL)
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromSnakeCase
let vehicles try decoder.decode(Vehicles.self, from: jsonData)
@rwbutler
rwbutler / json-key-decoding-vehicles-snake-case.json
Created August 21, 2020 21:55
json-key-decoding-vehicles-snake-case.json
{
"vehicles": [{
"name": "car",
"travels_on": "road",
"number_of_wheels": 4
}, {
"name": "boat",
"travels_on": "water",
"number_of_wheels": 0
}, {
@rwbutler
rwbutler / json-key-decoding-vehicles-2.swift
Last active August 21, 2020 21:51
json-key-decoding-vehicles-2.swift
struct Vehicles: Codable {
let vehicles: [Vehicle]
}
struct Vehicle: Codable {
let name: String
let travelsOn: Medium
let numberOfWheels: Int
enum CodingKeys: String, CodingKey {
let jsonData = try Data(contentsOf: jsonResourceURL)
let decoder = JSONDecoder()
let vehicles try decoder.decode(Vehicles.self, from: jsonData)
{
"vehicles": [{
"name": "car",
"travels-on": "road",
"number-of-wheels": 4
}, {
"name": "boat",
"travels-on": "water",
"number-of-wheels": 0
}, {