Skip to content

Instantly share code, notes, and snippets.

View RyogaK's full-sized avatar

Ryoga Kitagawa RyogaK

  • Rights-Apartment, Inc.
  • Tokushima, Japan
  • 02:51 (UTC +09:00)
View GitHub Profile
//
// InsettedTextField.swift
//
// Created by Ryoga Kitagawa on 5/31/16.
//
import Foundation
@IBDesignable class InsettedTextField: UITextField {
@IBInspectable var insetX: CGFloat = 0.0
//
// UIViewController+ScrollWhenKeyboardAppear.swift
// LIFE
//
// Created by Ryoga Kitagawa on 8/8/16.
// Copyright © 2016 Givery Inc. All rights reserved.
//
import Foundation
//
// StateMachine.swift
//
// Created by Ryoga Kitagawa on 5/6/16.
//
protocol StateMachineEvent {}
protocol StateMachineState {}
class StateMachine<S: StateMachineState, E: StateMachineEvent> {
//
// FlattenedTableView.swift
//
// Created by Ryoga Kitagawa on 3/16/16.
//
import UIKit
@IBDesignable class FlattenedTableView: UITableView {
override func reloadData() {

iOS

Bases

  • Realm: Local DB
  • SwiftTask: Extended promise
  • SwiftBond: Data bindings
  • Alamofire: Http client
  • AlamofireImage: Image loader w/ image filter
  • Moya: Http API wrapper
  • Unbox: Json parser
  • Swinject: DI container
//
// LogFormatter.swift
//
// Created by Ryoga Kitagawa on 3/25/16.
// Copyright © 2016 Givery. All rights reserved.
//
import Foundation
import CocoaLumberjackSwift
import CocoaLumberjack.DDDispatchQueueLogFormatter
class Entity {}
struct Token {
let entity = Entity()
}
func asyncProcess() -> Token {
let token = Token()
weak var entity = token.entity
dispatch_async(dispatch_get_main_queue) {
// 重くてキャンセルできない処理
//
// AlertHasHeaderController.swift
//
// Created by Ryoga Kitagawa on 8/24/16.
// Copyright © 2016 Ryoga Kitagawa. All rights reserved.
//
import UIKit
final class AlertHasHeaderController: UIAlertController {
//
// UIAlertController+Rx.swift
//
import Foundation
import RxSwift
protocol RxAlertActionType {
associatedtype Result
@RyogaK
RyogaK / Result+RxSwift.swift
Last active March 24, 2017 11:58
Observable の のエラーをキャッチして Result に入れて受け取ってマッチングして、という作業がめんどくさいと感じたのでオペレータを生やしてみた。
import RxSwift
import Result
public struct ResultErrorEnvelope: ErrorType {
let originError: ErrorType
}
public extension ObservableType {
public func catchAndConvertToResult() -> Observable<Result<E, ResultErrorEnvelope>> {
return map(Result.Success)