0

http://code.google.com/p/iosched/と、使用したいくつかのライブラリのコードを確認しました。現在、私のプロジェクトは成長し、com.myapp.android.ui だけにフラグメント、アクティビティ、ダイアログを含む約 40 のクラスがあり、他の人がそれをどのように編成するかを知りたいです。そのため、ディレクトリ構造に重点を置いて、よく書かれたオープン ソース プロジェクトから学ぶことを提案する質問があります。

現在、私のものは次のように見えます:

com.myapp.android
com.myapp.android.adapter
com.myapp.android.browser
com.myapp.android.exception
com.myapp.android.misc
com.myapp.android.model
com.myapp.android.provider
com.myapp.android.ui
com.myapp.android.util
com.myapp.android.view
com.myapp.android.webview

ファイルをブロックごとに整理する必要があるのではないかと思います。ここでは、BrowserActivity のヘルパー クラスを保持する com.myapp.android.browser というブロックがあります。他のフラグメント/アクティビティは「小さい」ため、ヘルパー クラスは com.myapp.android.util にあります。それは人々がそれをする方法ですか?

4

1 に答える 1

1

特定の正しい方法や間違った方法があるとは思いません。それは、あなたや開発者のチームが必要としているものに最適なものです。

私は個人的にアプリのパーツをモジュールに分けています。たとえば、すべての GUI コントロールはメインのデフォルト パッケージ内にあります。ユーザーが入力した内容に基づいて実際に何かを行うアプリのロジック部分は、通常は別のプロジェクトに入れます。ロジックの特定のセクションが非常に大きくなる可能性がある場合、または少なくともいくつかのクラス ファイルが含まれている場合は、分離します。たとえば、私のアプリはバックグラウンド同期を実行するため、同期に関連するすべてのクラスが別のパッケージに含まれています。

例として、私のアプリには次のパッケージが含まれている場合があります。

com.company.myapp

これには、すべての GUI コントロール コード、アクティビティの開始/終了、およびユーザー入力が含まれます。このビットには、データの検証が含まれる可能性があります。つまり、必要な編集テキスト ボックスがすべて入力されているかどうか。そうでない場合は、エラーを表示するだけです。エラーの場合は、ロジック関数に渡します。

com.company.myapp.logic

これには、実際に何かを行うロジック部分が含まれます。つまり、ユーザーが GUI から入力した変数は、このパッケージ内の関連するクラスに渡されてデータを処理し、結果を GUI に返します (例: successor something has gonewrong)。

com.company.myapp.sync

複数のデバイス間のデータ同期に関連するすべてのコード

お役に立てれば

于 2013-11-14T15:23:31.513 に答える