Rodhos Soft

備忘録を兼ねた技術的なメモです。Rofhos SoftではiOSアプリ開発を中心としてAndroid, Webサービス等の開発を承っております。まずはご相談下さい。

iOS設計の参照先

以下のサイトが役に立った。

yuuxxxx.hatenablog.com

www.slideshare.net

yuuxxxx.hatenablog.com

http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html

medium.com


間違って理解したかもしれないが、以下に考えを述べる。

CをUIViewControllerと考えるとiOSMVCで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はビューごとにつくることになるらしい。ビューの適切な分割がキーになるのではないかと思われる。