web-dev-qa-db-ja.com

Roboguiceで依存性注入を使用しますか?

私はAndroidプロジェクトに取り組んでいます。Androidアプリケーションを構築するための優れたアーキテクチャとは何かについての推奨事項を知りたいです。

Roboguiceを使用して依存性注入を使用したいのですが、MVVMパターンまたはMVCパターン( Android MVVMデザインパターンの例 )について読んでいます。

また、roboguiceには、コードが分離されているため、非常にテストしやすいかなり優れたコンテキストベースのイベントの発生および処理機能があることも知っています。

機能するデザインパターンに関する推奨事項はありますか?使用または開発したテスト可能でスケーラブルなアーキテクチャは?

42
Jose R. Cruz

Androidプラットフォームは、共通の設計パターンのセットを提供します。Webアプリに比べてハードウェアリソースが限られているため、これらを直接プロダクションコードで使用することをお勧めします。基本プラットフォームを「ラップ」する他のフレームワーク。特定の目的(またはプロトタイピング/実験用)がある場合は、これらのフレームワークを検討する価値がありますが、最高レベルのサポートを得るには、通常、標準コンポーネントを使用するのが最善です。

これは、UIソリューションに取り組む際の優れたリソースです: http://www.androidpatterns.com/

特にDIの場合: Android用のSpringフレームワーク があります。私はそれを試してみましたが、非常に有望に見えます。これに対する別の代替手段として、Roboguiceについてはすでに説明しました。ただし、パフォーマンスとライブラリのオーバーヘッドを回避するために、最も簡単な方法は、独自のコード内に依存関係を登録および挿入する単純なリフレクションベースのクラスを記述することです。 このアプローチ に似ていますが、通常、注入コードを別のシングルトンに移動し、そこから参照します。

私の経験では、ほとんどのサードパーティ製品は、現時点では信頼できるほど成熟しておらず、基本プラットフォームが提供するものを十分に活用していません。彼らは常に進歩しているので、時々有名人と実験してください。

18
seanhodges