2016-11-21 3 views
1

私はiOS開発の初心者ですので、私の質問が簡単に聞こえない場合には私をよろしくお願いします。iOSのモデル、ビュー、プレゼンターのフレームワークが異なりますか?

MVPまたはVIPERパターンを導入する予定です。私はWeb背景やWebアプリケーションから、さまざまなレイヤー/ DLL(モデル、ビュー、共通など)に従っています。 iOSで同じ階層化アプローチ(この場合はフレームワーク)を実行するのが理にかなっていますか?私はモデル、ビュー、プレゼンターのための異なるフレームワークを作成するサンプルプロジェクト(MVPベース)に出くわしたことはありませんか?誰かが(MVPに基づいた)サンプルプロジェクトを共有して、スタータープロジェクトとして使用することができれば幸いです。 Model/View/Controller - iOSのに予め

答えて

2

おかげで、我々は一般的にMVCを使用しています。あなたがiOSの世界でアナログを探しているなら、そうです。あなたがMVCを実際に掘り下げてしまったと言っていて、深く不満足なことがあるので、別のパターンを導入したいと思っているのであれば、それは別の質問です。

MVCのようなアプローチで見られる責任の論理的な分離は、過度のものではありません。実際、「ビュー」クラスと「コントローラ」クラスの分割は、私たちが行うすべての作業の中心的な部分です(例えばUIViewサブクラス、UIViewControllerサブクラスなど)。実際に行う必要があるのは、適切な「モデル」クラスを設計することだけです。あなたはレースに出ます。

しかし、あなたの質問に答えて、一般的に、モデル、ビュー、およびコントローラに別々のフレームワークターゲットを使用することはありません。それは恐らく過度のことだろう。通常、プロジェクト内のXcodeグループ/フォルダを適切に使用することで、すべてを追跡できます。私たちは一般的に、より技術的またはロジスティック的な理由(ライブビュー、アプリ拡張、複数のアプリケーション間のコード共有など)をフレームワークに取り込むだけです.WWDC 2015 Building Modern Frameworksを参照してください。

しかしMVC対MVPかVIPER(またはMVVMか何でも)の質問に。私はあなたが単にこれらすべてのパターンの共通の精神(すなわち責任の分離)を受け入れ、それをあなたのiOS MVCコードに適用することをお勧めします。あなたのベルトの下でいくつかのiOSの経験をしたら、このパターンの質問を再評価することができます。

+0

のために、それを使用する私はMVCに選択した場合でも、私は同じプロジェクトにモデルとビュー/ビューコントローラを維持する必要があります。または、モデル用に別のプロジェクト(iOSのフレームワーク)を作成しますか? – Pragmatic

+0

@Pragmatic - いいえ、あなたは通常、別々のフレームワークを使用しません。改訂版の回答を参照してください。 – Rob

1

iOS開発から始まり、優れたアーキテクチャをお探しの場合は、VIPERにお問い合わせください。それは限り、あなたのようにすべての行き過ぎではありません。

1 - VIPERファイルを自動作成

2 - 生成するには、このXcodeのプラグイン(https://github.com/natangr/ViperTemplate)を使用し、上記の両方の要件を達成するためにVIPERモジュールの初期化

を自動化VIPERファイルを自動的に初期化します。それは魅力のように機能します!

この記事を読むにはhttps://www.ckl.io/blog/best-practices-viper-architecture VIPERを使用する際に、物事を自動化する方法に関するヒントを入手する。

私も非常に小規模なプロジェクト(開発の160H)

関連する問題