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 には何がいいのかいろいろ言われていて何がいいのかわからん