iOS設計の参照先
以下のサイトが役に立った。
www.slideshare.net
http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html
間違って理解したかもしれないが、以下に考えを述べる。
CをUIViewControllerと考えるとiOSはMVCでCが中央で媒介している形になっている。
UIViewControllerを含めてVと考えるとVがMを触っている感じになる。これが問題の一つ。つまりVMになって疎結合でない。
そこでPを入れてMVPにする。VはViewとUIViewController。Pは新たに作ったクラス群。
PはIFを介してVと相互作用したり、Mとデータのやり取りをする。
ここでPをバインディングさせると、MVVMへと移行することになる。
恐らくPの肥大化の恐れがあるのでPを適切に分割する技術がいる。
あと、P内にMが混じらないようにする。
P内にVのコードを入れないようにするにはUIKITをimportしないようにするのが良いだろう。そのためプロトコルを用いる。
iOSでバインディングを実現するにはKVOだろうが癖がある。場合によるだろう。
追記
先輩に聞いたところ、Pはビューごとにつくることになるらしい。ビューの適切な分割がキーになるのではないかと思われる。