Skip to content

Instantly share code, notes, and snippets.

@Herakleis
Herakleis / Scene.swift
Last active August 19, 2017 14:55
Scene+Template
import Foundation
enum Scene {
// Sub-group of scenes related to each other
// E.g.: all scenes part of a login process
case firstScene(FirstSceneViewModel)
case secondScene(SecondSceneViewModel)
// Another sub-group of scenes related to each other
@Herakleis
Herakleis / Singleton+Template.swift
Created August 18, 2017 20:58
Singleton+Template
final class Singleton {
static let shared = Singleton()
private init() { }
}
@Herakleis
Herakleis / Singleton+AuthManager.swift
Created August 18, 2017 20:56
Singleton+Template
import RxSwift
import RxSwiftExt
enum AuthenticationStatus {
case none
case error(AuthServiceError)
case user(String)
}
final class AuthManager {
@Herakleis
Herakleis / ViewController+Template.swift
Last active August 19, 2017 16:59
ViewController+Template
import RxSwift
import RxCocoa
import Action
final class ViewController: UIViewController, BindableType {
// UI Elements
fileprivate var aButton = ViewController._aButton()
fileprivate var anotherButton = ViewController._aButton()
fileprivate let logo = ViewController._logo()
@Herakleis
Herakleis / ViewModel+RealLifeExample.swift
Last active April 27, 2019 19:59
ViewModel+RealLifeExample
import RxSwift
import Action
enum SceneStateOutput {
case idle
case sendingNoRecipient
case sendingSomeRecipients(sendingList: [String: String])
case sending
}
import RxSwift
import Action
protocol MyViewModelInputsType {
// Inputs headers
}
protocol MyViewModelOutputsType {
// Outputs headers
}