2016-05-14 10 views
0

Androidのモジュールの概念を理解しようとしています。私はthis article on the official documentationを読んだが、私はちょっと混乱している。アプリのモジュールのAndroidスタジオのベストプラクティス

Androidアプリケーションモジュールは、モジュールレベルのビルドファイル、リソースファイル、Androidマニフェストファイルなど、アプリケーションのソースコード、リソースファイル、アプリケーションレベル設定のコンテナです。アプリケーションモジュールの内容は、最終的にデバイスにインストールされる.apkファイルに組み込まれます。

これは私がこれで見つけたすべてのドキュメントです。私はまだ、異なるモジュールを作成するのがどちらの場合に意味があるのか​​理解していません。私はそれが事件ごとに異なるかもしれないが、理想的にはモジュールの最小論理サイズは何かを知っていますか?

実用例

私は引き出しビューでアプリケーションを構築しています。ドロワーの各ボタンは、いくつかの論理を持つフラグメントを開きます。フラグメントだけを含むモジュールとそれにアクティビティのないいくつかのJavaクラスを作ることは理にかなっていますか?

私は本当にこれに関するベストプラクティスを知りたいと思います。

ありがとうございます。

+1

本当に遠く離れているのであれば、分けるのが理にかなっています。一般的な規則として、後でそのモジュールをオープンソースライブラリとしてリリースする予定がある場合に限り、別のモジュールを開始します。あなたが提案するこのレベルの分離は、IMHOを意味します。 – Budius

+0

フィードバックいただきありがとうございます。あなたは「遠く離れている」とは何を正確に意味していますか? – Aurasphere

+0

私は本当の例を挙げます。私はRecyclerViewのLOADを使って非常に大きなアプリで作業します。我々は、私が働いている他のプロジェクトでも使用できるような、多くの機能(ローダーのスクロール、ヘッダーのフッターなど)が必要です。私はこれらのツールを別のモジュールで開発しました。それがすべて機能していて、別のプロジェクトに移してGithub(https://github.com/eyeem/RecyclerViewTools)でリリースしました。 – Budius

答えて

2

おそらく、コードとリソースをモジュールに分解するための最良の議論は、再利用性です。そのようなモジュールの複数の扶養家族でない場合、なぜこのコードをモジュールに分割する必要がありますか?アプリケーションが1つしかない場合、このコードをモジュールに分解する必要はあまりありません。

同じコードを複数のアプリケーションが共有すると、すぐにモジュールが正当化されると思います。モジュールには多くのものがあります。大量のコードを含む基本アプリケーションである可能性があります。これには、アプリケーションの「モデル」の側面、またはAPIやネットワーク層が含まれている可能性があります。独自のアルゴリズムのコンテナになる可能性があります。それは、オープンソースを計画している一般化されたコードです。知るか?

反対の角度から考えてください。あなたが本当に必要がない場合、今これを行うリスクは何ですか?多分精神的なオーバーヘッドですか?あなたが最初にそれを行う良い理由がない場合は、このモジュールを考え、維持することは価値よりも難しいかもしれません。

この決定を延期する費用はいくらですか?このコードを主なアプリケーションからモジュールにリファクタリングすることができないという説得力のある理由はありますか?

単一のUIコンポーネントの単一のフラグメントと同じくらい小さなものは、独自のモジュールにある必要がないもののように聞こえる。

関連する問題