【提案】シンプル&強力なUIViewControllerのテンプレートを作って見た


iOSのネイティブアプリのアーキテクチャーほど議論が尽きないものはない!

と思います。

普通にiOSのネイティブ開発を始めると、基本的には、ViewControllerが肥大化していきます。
それを防ぐために、MVVCとクリーンアーキテクチャーとか色々なデザインパターンが生まれては、消え、試しては消え、みたいな感じになっているのが現状ではないでしょうか?

ぶっちゃけ・・・

initData()
initViews()
updateData()
updateViews()

この4つを定義して、使い回すだけで結構いい感じになるのではないでしょうか?

もしよければどうぞ!わかる人だけわかってくださいw

import UIKit

class TemplateViewController: UIViewController {
    // 一回だけ呼ばれる
    override func viewDidLoad() {
        super.viewDidLoad()
        initData()
        initViews()
    }

    // 毎回呼ばれる
    override func viewWillAppear(_ animated: Bool) {
        // 画面が呼ばれるたびにデータが変わる可能性がある場合は、initData()とinitViews()をこちらにおく
    }

    // レイアウト処理終了
    override func viewDidAppear(_ animated: Bool) {
        // 画面が表示された後で実行する処理はこちら
    }

    func initData(){
        // データの初回読み込み
    }

    func initViews(){
        // Viewの初回設定
    }

    func updateData(){
        // データの再読み込み
    }

    func updateViews(){
        // Viewの再読み込み
    }
}