Might be handy when estimating work.
- Open Terminal
- cd to your Xcode project
- Execute the following when inside your target project:
import XCTest | |
struct Scenario: ScenarioGivenContinuation, ScenarioWhenContinuation { | |
init(_ description: String) { | |
print("Scenario: \(description)") | |
} | |
struct Given: ScenarioWhenContinuation { | |
fileprivate init(description: String, setup: () throws -> Void) rethrows { |
public class Channel<Value> { | |
private class Subscription { | |
weak var object: AnyObject? | |
private let notifyBlock: (Value) -> Void | |
private let queue: DispatchQueue | |
var isValid: Bool { | |
return object != nil |
extension KeyedDecodingContainer { | |
func decodeIfPresent<T: Decodable>(key: K) throws -> T? { | |
return try decodeIfPresent(T.self, forKey: key) | |
} | |
func decode<T: Decodable>(key: K) throws -> T { | |
return try decode(T.self, forKey: key) | |
} | |
} |
// Reference: https://github.com/asensei/AnyCodable/blob/master/Sources/AnyCodable/AnyCodable.swift | |
import Foundation | |
public struct AnyCodable { | |
// MARK: Initialization | |
public init(_ value: Any?) { | |
self.value = value | |
} |
enum Theme: String { | |
case light, dark | |
} | |
class UserSettings { | |
enum Message { | |
case didUpdateTheme(Theme) | |
} | |
extension Place: Unboxable { | |
static let dateAddedFormatter: DateFormatter = { | |
let formatter = DateFormatter() | |
formatter.dateFormat = "YYYY-mm-dd" | |
return formatter | |
}() | |
init(unboxer: Unboxer) throws { | |
name = try unboxer.unbox(key: "placeName") |
extension Place { | |
enum CodingKeys: String, CodingKey { | |
case name = "placeName" | |
case lat | |
case lon | |
case dateAdded | |
case info | |
} | |
protocol MovieListView: MovieListViewModelDelegate { | |
private var viewModel: MovieListViewModel | |
func updateWithMovies(_ movies: [Movie]) | |
func didTapOnReload() | |
func didTapOnMovie(at index: Int) | |
func showDetailView(for movie: Movie) | |
} | |
protocol MovieListViewModelDelegate: class { | |
func viewModelDidUpdate(_ model: MovieListViewModel) |