web-dev-qa-db-ja.com

AndroidアプリのMVVM設計パターンを効果的に実装するには、テストケースの作成も簡単になるでしょうか?)

私は、AndroidアプリにMVVMアーキテクチャデザインパターンを実装することを計画しています。懸念事項を効率的に分離し、データモデル、UIなどのテストケースを簡単に作成するのに役立つことをオンラインで読みました。これにはいくつかの洞察/アドバイスが必要です。

12
Ian Pinto

まあ、MVVMを効果的に使用する方法を学ぶには、 Android MVVM Design Pattern Examples から始めます

ここにあなたはその投稿を見つけるでしょう:

私は Android-Binding の開発者です。 @Brentleyが言ったように、それは非常に新しいプロジェクトですが、改善できるようにもっと話題と経験を得たいと思っています。あなたの質問に戻って、Androidバインディングを使用したMVVMの簡単な紹介/チュートリアルを書きました:

潜在的な採用者は、 プロジェクトディスカッショングループにも登録してください。

トピック全体をお読みください。 MVVMは比較的新しいフレームワークであり、Googleのp Data Binding ライブラリおよび Roboguiceのような依存関係注入ライブラリと連携して作業することを強くお勧めします。 または Dagger2 ...

...しかし、これが一番です:

アプローチAndroid。データバインディングライブラリを使用したMVVMアーキテクチャアプリケーションの構築

著者が例としてデータバインディングライブラリでMVVMを使用することを説明しているところ-自分で作成したアプリを意味します。彼は結論付けている:

このアプローチがアプリケーションを開発する正しい方法であるかどうかを知るにはまだ時期尚早ですが、この実験により、将来のプロジェクトの可能性の1つを検討する機会が与えられました。それは間違いなくもっと遊んでみたいものです。

Model-View-ViewModelは興味深いものです。従来のAndroid=アーキテクチャでは、コントローラーがデータをビューにプッシュします。ビューをアクティビティで見つけ、コンテンツを設定します。

MVVMでは、ViewModelが一部のコンテンツを変更し、変更されたコンテンツについてバインディングデータフレームワークに通知します。フレームワークは、そのコンテンツにバインドされているビューを自動的に更新します。

2つのコンポーネントは、データとコマンドのインターフェースを介して疎結合されています。

MVVMを使用する次のアプローチは、実際にテスト可能です。 Android上のMVVMから:知っておくべきこと

ViewModelViewに依存しなくなったため、ViewModelがなくてもViewをテストできます。他の依存関係に適切な依存関係を注入すると、テストは非常に簡単になります。

たとえば、VMを実際のビューにバインドする代わりに、テストケースでVMを作成し、それにデータを与えてから、データが適切に変換されることを確認するために(...)これはすべて、実際のビューと対話する必要なく実行できます。

また読む: MVVM ON Androidデータ結合ライブラリの使用

それが役に立てば幸い

25
piotrek1543