1
2

More than 3 years have passed since last update.

【Swift】MVVM勉強してみたPart2

Last updated at Posted at 2021-04-04

はじめに

前回に続き、MVVMを学習しておりますが、なかなか掴めません、、、
今回はiOSアプリ設計パターン入門のMVVM(第7章)を読んで学んだことを自分なりにまとめていこうかと思います!

MVVMアーキテクチャ

画面の描画処理とプレゼンテーションロジックとを分離したGUIアーキテクチャ
画面の描画処理をView、画面描画のロジックをViewModelにする
ViewとViewModelをデータバインディングで関連付けてViewModelの状態が変更されたらそれに同期してViewの状態も更新され、画面に反映されるのが特徴

データバインディング

二つのデータの状態を監視し、同期する仕組み
MVVMではViewがViewModelを監視する単方向バインディング
データバインディングによってViewModel内にViewに対する描画処理を書く必要がなくなる
->疎結合!!!

採用する理由

リアクティブプログラミングと相性がいいため

構造

0CCA4A5A-7882-4783-BF9B-686BADF2F7C6.jpg

Model

MVCなどと同じ
APIやデータベースへのアクセスなど

View

MVCなどと同じ
ViewModelが保持する状態とデータバインディングしてユーザーの入力に応じてViewModelが自身が保持するデータを加工、更新することでバインディングした画面表示を更新する

ViewModel

Viewに表示するためのデータを保持する
Viewからイベントを受け取り、Modelの処理を呼び出す
Viewからイベントを受け取り、加工して値を更新する
ViewModelはViewの参照を保持しない

おわりに

次回
MVVMをもっともっと勉強していこうかと思います!

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2