2016-10-17 6 views
1

私は自分のiOSプロジェクトでMVVMアーキテクチャを適用しようとしていると私はと言われてthis oneのようないくつかの記事を読んだ:私たちはアプリ全体のルータを作ることができますiOSのMVVM:誰が組立を担当していますか?

(...)を

しかし、私はこの種のクラスのコードサンプルは見つかりませんでした。誰かが適切な方法を説明できることを本当に感謝しています。 MVVMアセンブリのような "Router"クラスを実装するか、例を見つけてください。

+0

'MVVM'は' Router'を必要としません。 'VIPER'や' Clean Swift'のような 'Clean Architecture'のアプローチは一般的にそうしています。私は以下のクリーンスウィフトチュートリアルで、「ルータ」の説明とサンプルコードを見つけることができます:http://clean-swift.com/ – shallowThought

+0

@shallowThoughtありがとう。 'MVVM'が' Router'を必要としない場合、どのようにアセンブリを行うべきですか? – AppsDev

答えて

1

MVVMルータは通常またはClean SwiftのようなClean Architectureのアプリケーションは実行しません。 MVVM

あなたはViewModelを設定し、ビューコントローラviewModelプロパティに割り当てよりも、あなたのAppDelegateでルートUIViewControllerをインスタンス化します。後で、prepareForSegueにupcomming MVVMのシーンを設定する可能性のある場所が1つあります。

This is a good explanation of MVVMも、プロジェクト例にリンクしています。

これらの概念を確かにMVVMに追加できます。そうしたい場合は、this Clean Swift example projectを見て、実装のコンセプトをRouterConfiguratorに適応させ、独自のカスタマイズしたMVVMアプローチを開発することができます。この点で未定義の責任:あなたがMVVMの弱点の一つを特定しているよう


あなたの質問(複数可)Who is responsible for setting up my MVVM scenewho is responsible for routing in-between scenesは、しかし非常に良いです。

第2の大きな弱点は、ViewModelViewの間の双方向通信です。

双方向通信もVIPERView <-> PresenterおよびPresenter <-> Interactor)の問題です。

上記のすべての問題を処理する唯一のiOS固有のアプローチ(私が知っている)はClean Swiftです。私はそれがトピックから降りるようにここで書くことをやめます。

関連する問題