web-dev-qa-db-ja.com

VIPERクリーンアーキテクチャを理解するには?

私は最近 VIPERクリーンアーキテクチャ を発見し、Androidプラットフォームにこのアーキテクチャを適用することに関するサンプルチュートリアルを探し始めました。しかし、私が見つけたのは、混乱しているサンプルプロジェクトだけでした。 VIPERの基本原理を理解するために簡単な例を使用したいのはそのためです。上記の優れたチュートリアルを誰かが共有できるかどうか疑問に思っています。

18

開発者は基本的に、MVC、MVP、またはMVVMアーキテクチャを要件に応じて開発に使用します。アプリケーションを開発するために選択するアーキテクチャは重要です。システム設計、要件、タイムラインなど、ソフトウェアアーキテクチャの選択に影響を与える多くの要因.

Viperアーキテクチャでは、各ブロックは特定のタスク、入力、出力を持つオブジェクトに対応しています。これは、組立ラインの作業員と非常によく似ています。作業員がオブジェクトの作業を完了すると、製品が完成するまで、オブジェクトは次の作業員に渡されます。

V(ビュー):ビューは、UIの更新を担当し、プレゼンターが伝える内容をすべて表示します。

I(Interactor):Interactorはモデルレイヤーからデータをフェッチする責任があり、その実装はユーザーインターフェイスから完全に独立しています。すべてのビジネスロジックInteractor内に記述されています。例えば。 Interactorで記述されたユーザーデータAPI呼び出しを取得します。

P(プレゼンター):プレゼンターは、インタラクションから役割を果たし、インタラクションからデータを取得してビューに渡します。 (データまたは任意のユーザーアクションである場合があります)

E(エンティティ):基本的に、Interactorで使用されるオブジェクトモデルが含まれます。例えば。学生、友人、大学など.

R(ルーター):アプリケーションのナビゲーションロジックが含まれています。例えば。次のボタンアクションは2番目の画面を表示します。

さらに、アプリケーションの特定のモジュールのすべてのルールとワークフローを含むプロトコルを使用しました。 iOSでは、各モジュールに個別のプロトコルSwiftファイルで記述されたすべてのプロトコル。

メリット:

-すべてのモジュールは独立しているため、VIPERは大規模なチームに最適です。

-ソースコードをより簡潔で再利用可能なものにします

-TDD(テスト駆動開発)を採用する方が簡単

-他のモジュールを変更することなく、既存のアプリケーションに新しい機能を簡単に追加できます。

-適用できるSOLID原則。

-マージの競合の数を減らしました。

-UIロジックがビジネスロジックから分離されているため、自動テストを簡単に記述できます enter image description here

参照: https://medium.com/@javedmultani16/viper-architecture-viper-64f6cd91e6ec

2

AndroidでのVIPERの基本原則に関する1つの長い記事があります。基本的に、ボブおじさんのクリーンアーキテクチャから取られた原則が最初にiOSに実装された方法と、Androidにどのように実装されたかについて話します。

http://luboganev.github.io/blog/clean-architecture-pt1/

5つのパーツで構成されています。うまくいけば、それはあなたにVIPERの基本原則とチュートリアルを提供します。

9
Kharda

簡単に言えば、Uncle Bobで記述されているように、すべてがClean Architectureです。

IOSの世界で一般的に使用されるVIPERの省略形、Android世界は元の名前Clean Architectureを使用します

[〜#〜] viper [〜#〜]は、Clean ArchitectureからiOSアプリケーションのアーキテクチャです。 Word VIPERは、View、Interactor、Presenter、Entity、Routingの代名詞です。

The clean waybyFernando CejasforAndroidアプリ。アイデアはシンプルです:クリーンアーキテクチャは、一連のプラクティスを表しています。

Androidby Fernando Cejasの一連の記事を読むことをお勧めします。

そこでは問題と議論のあるgitリポジトリを見つけることができます。

2
yoAlex5

VIPER設計パターン の導入実装について書かれた私のブログの1つを調べることができます。また、あなたはコードを見つけることができます ここ

1