Androidアプリケーションを構築する最良の方法は何ですか?


26

新しいAndroidアプリケーションを開始しています。使用するのに最適な構造は何ですか?

次のように、マルチパッケージ設計にする予定です。

  1. アクティビティを含むメインパッケージ
  2. サービスとデータ層
  3. エンティティクラスを含むエンティティパッケージ。

    何かアドバイス ?


回答:


11

まず、どのアプリケーションを実行しているかによって異なります。

ユーザーがアプリケーションをどのように使用するかについて、テキストまたは概略の説明を行う必要があります。考えられるすべてのシナリオを修正します。後でテストに使用する例を書き留めます。

機能に属するものと、変更可能な構成に属するものを決定します。シナリオから機能とデータエンティティを抽出します。

シナリオから、アプリが何であるかを決定します。それは、サービス、アクティビティ、ウィジェット、コンテンツプロバイダー、またはいくつかの異なるコンポーネントを含む複雑なシステムです。シナリオに対して決定をテストします。

複雑なシステムの場合、機能とデータエンティティをアプリケーションコンポーネントに分散します。コンポーネントとその内容(アクティビティまたはその他)のリストを作成します。

UIコンポーネントのリストを作成し、その機能の説明(まだHOWではない)を作成します。これらは、後でウィジェットとアクティビティ、またはフラグメントまたはレイアウトになります。

UIコンポーネントのドラフトレイアウトを作成します。簡単なパスを作成します。UIを見てください。シナリオに戻り、それらすべてをドラフトUIで再生します。すべてのUIコンポーネントとクラスは、パッケージまたはパッケージの1つの階層に配置されます。

データエンティティのリストを作成します。何に何が入るかを決定します。DBまたは異なるDBのコレクションまたはテーブルとしてそれらを計画します。それらをクラスとして作成し、パッケージの別の階層または別のパッケージに配置します。ここには、DBヘルパー(SQL by DBと通信するクラス)も配置します。

UIおよびデータエンティティにテストデータを入力して起動するためのテストクラス(JUNITまたはそれ以上のTestNG)を作成します。

アダプタは、親GroupViewでのみ使用されるため、パブリックである必要はありません。そのため、通常はアダプター用のファイルはありません。

すべてのグローバルを特別な静的クラスに入れないでください-それは悪い習慣です。あなたはコードと設定を混合しています。この非常に興味深いソリューションを使用してください。今のところ、Androidで知っている最高のものです。

構成データはリソースに配置する必要があります。それらの一部が複雑な場合は、XMLソースとパーサーを使用します。リソースデータのリーダーをグローバル変数にします。すべてが静的であるとは限りません!たとえば、メインのActivityインスタンスに属することができます。

コードで構成不可能な定数を使用しないでください!たぶん、あなたの名前だけ:-)。すべての定数は時々非定数になります。

一方、コードの一部が通常のJavaではなく、スクリプト -データと言語の混在である場合、データとコードを混在させることができます。

常にそうする:何かを書く-何かをバルクに接続する-この新しいものにテストを追加する-この新しいものをテストする-バルクをテストする-繰り返す 小さなステップのみ!

編集。テスト駆動開発を使用することもできます-適切なコードの前にテストを記述します。このように、コードの準備ができる前にテストを実行すると、二重のテストが行​​われます。したがって、テストが実際に不正なコードに反応するかどうかをチェックします。


7

はい、それはあなたが仕事に基づいて物事を分類すると開発が容易になります。あなたは正しい方向にいます。Androidでは、アプリケーションを開発する場合、次の構造を使用します

  1. すべての画面アクティビティを含むメインパッケージ
  2. BaseAdapterなどを必要とするListView、GridViewを使用している場合、アダプタークラス
  3. 解析ヘルパーが使用されている場合
  4. データベース
  5. エンティティクラスと静的変数を格納するクラス
  6. サービスと受信者
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.