Skip to content

Swiftフレームワーク各種類

ntuf edited this page Apr 13, 2024 · 4 revisions

●フレームワーク

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

Clone this wiki locally