iOSにおけるMVVMの役回り

Ryoichi Izumita
Sep 3, 2018 · 2 min read

iOSにおいてMVVMは人気のあるアーキテクチャパターンです。

しかし一方MVVMの欠点から他のアーキテクチャパターンにも目が向けられています。

この記事ではMVVMの利点や欠点からMVVMの役回りについて最近の私の考えを述べてみたいと思います。


MVVMの最も重要な利点とはなんでしょうか。さまざまなネットの記事でいくつかの利点が上げられていますが、私が最も重要だと考えている利点は「Viewの抽象化」です。Viewの色を薄く設定することを考えてみます。なぜ薄くしているのでしょうか。例えば薄くするのはそのViewがdisableであったりします。そのViewに対するViewModelでの状態は「色が薄い」ではなく「利用できない」という状態を保持することになります。MVVMではViewを実装する前にViewModelを設計・実装してViewを抽象化することでViewの有り様を洗練させていくことができます。


ところでMVVMはモデルレイヤーの設計や画面遷移の管理の方法を定義していません。この点が欠点として挙げられることがあります。しかし一方で、それらが定義されていないため、MVCで開発しているプロジェクトにも比較的容易にMVVMを導入することができます。また、他のアーキテクチャパターンと同時に利用することができ、VIPER+MVVMやRedux+MVVMといったことも行われているようです。

MVVMのシンプルさ故に他のアーキテクチャパターンにMVVMの利点であるViewの抽象化を導入することができるようです。

これらのことから私は最近ではMVVMを再評価し、MVVMでViewの抽象化を行い、MVVMのみだけでなく、他のアーキテクチャパターンとのミックスによる活用も可能ではないかと考えています。

Ryoichi Izumita

Written by

iOS app programmer / Objective-C / Swift

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade