Swiftフレームワーク各種類 - ntuf/Tips GitHub Wiki
●フレームワーク
RxSwift MVVM MVC MVP Clean Architecture(VIPER) Flux Redux Micro View Controller
■RxSwiftってなに? 非同期イベントを受け取るための枠組み」を提供してくれるライブラリ https://qiita.com/usamik26/items/444d6dd7386b2949c06b
■なぜMVCから脱却したいのか? ViewControllerの肥大化 いわゆるFatViewController / MassiveViewController iOSアプリではController≒ViewController →View要素とController要素の2つの持つため、役割がわかりづらくなってしまう テストが書きづらい依存関係が絡み合ってモックとか作れない
各階層の役割がなんなのかを比較してみる
■ と思ったがSwiftUIでフレームワークそのものの存在が要らなくなったりしていないか? swiftUIで何ができるかの概要を確認してみる
SwiftUIhttps://qiita.com/tamadeveloper/items/3ea2696333725735fee8 従来のModel-View-Controller(MVC)のアーキテクチャにも影響がありそうです。MVCにおけるコントローラーの役割のひとつにモデルとビューの同期がありますが、SwiftUIでは前述の仕組みでこれが自動的に行われるからです。
Combineフレームワーク また現在はdelegateやtarget-action, key-value-observingなどに混在している非同期処理も、Combineフレームワークを使うことによって一連の流れにまとめることができる
・target-action Cocoa Touch ではイベント処理については Objective-C の API であるターゲット・アクション (target-action) を利用しています target-action では、Window イベントが発生した時に、どのオブジェクトのどのメソッドを呼び出すかを指定します。
・key-value-observing(KVO) プロパティーの値の変化を通知してくれる仕組み https://fortee.jp/iosdc-japan-2019/proposal/397c4fa6-1ae5-46ec-b069-472b6bd69d5f SwiftUI が登場し、Clean Architecture をもう一度見直すチャンスがやってきました。
https://note.com/masa7351/n/n22a327124497 「SwiftUIアプリ設計をReduxを使って開発する(Reduxの特徴をおさらいする)」SwiftUI + Combine Framework の発表は、MVCからMVVMへのAppleから開発者に向けて、「2年後には、開発のメインストリームがMVVMに移るからしっかり勉強しておいてね」といったメッセージのように感じました。MVC一択脳の方は、MVVM脳を構築する必要がありますMVVMの記事を書こうとも考えましたが、既に世の中にSwiftUIを使ったMVVMの良質な記事をいくつか目にするのでそれは見送ります。
https://qiita.com/shintax/items/6dcf6537cac81bb85d56 「Combineフレームワーク と RxSwift その1」 Combineフレームワークは 大枠ではRxSwiftのネイティブ実装といっても良い
⇨SwiftUi には何がいいのかいろいろ言われていて何がいいのかわからん