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の再読み込み
}
}