Posted at

【提案】シンプル&強力な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の再読み込み
}
}