皆さんご存知 kickstarter/ios-oss。
すでに公開されて1年以上経っていますが、当時いろいろ記事も書かれていました。
そんな kickstarter/ios-oss ですが、これに即したViewModelをつくろうとすると、
毎回InputとOutputのProtocolを書かないといけないのでめんどうです😞
というわけで、今更ですがXcodeで新規ファイル作成時に使えるテンプレートを作成してみました。
RxKickstarterViewModelTemplate
Xcodeに追加すると、ファイル作成画面にViewModelのテンプレートが出てきます。

これを使えば以下のようなファイルをシュシュっとつくれます🙂1
//
// HogeViewModel.swift
// TestProject
//
// Created by monoqlo on 2018/02/21.
// Copyright © 2018年 Your Company. All rights reserved.
//
import Foundation
import RxSwift
protocol HogeViewModelInputs {
func <#name#>()
}
protocol HogeViewModelOutputs {
var <#name#>: Observable<<#type#>> { get }
}
protocol HogeViewModelType {
var inputs: HogeViewModelInputs { get }
var outputs: HogeViewModelOutputs { get }
}
class HogeViewModel: HogeViewModelInputs, HogeViewModelOutputs, HogeViewModelType {
var inputs: HogeViewModelInputs { return self }
var outputs: HogeViewModelOutputs { return self }
private let disposeBag = DisposeBag()
// MARK: - HogeViewModelInputs
var <#name#>: Observable<<#type#>>
// MARK: -
init() {
}
// MARK: - HogeViewModelOutputs
func <#name#>() {
}
}
-
RxSwiftをよく使うので、いくつかそれを前提としたコードも足されています ↩