web-dev-qa-db-ja.com

Androidコーディングのベストプラクティス/デザインパターン

最近の質問で、私はこのウェブサイトに案内されました: http://developer.Android.com/design/index.html

すばらしいサイトですが、1つの特定の質問に答えませんでした:アプリケーションの設計にコード的に適用するためのベストプラクティス/設計パターンは何ですか?

私はMVC/MVPなどのルックアップを行いましたが、結果は得られますが、それは、他の利用可能なオプションなどではなく、上記のパターンの実際の実装のみに関するものです。

さまざまなアプリをデコンパイルして分析してみましたAndroidデフォルトで、マーケットなどのインストールですが、Googleのコードで構造を実際に見つけることができませんでした。設定方法に関するヒントはありますかAndroidアプリは、保守や拡張などができるようになっています。これらの単語の幅広い意味を認識しており、それらはプログラマにとって純粋に主観的なものですが、それを表現することはできません。違う。

私がすでに遭遇したベストプラクティスの1つは、アクティビティごとに1つのビューであり、バックスタックが適切に機能するようにアプリに多数のアクティビティがあることですが、それ以外には、アクティビティ自体を実際に設定する方法がわかりません。

30

あなたは見る必要があります(GoogleからIO 2011): http://www.youtube.com/watch?v=WGIU2JX1U5Y

ICSではなく、ハニカムについてですが、それでも非常に興味深いです...

ActionBar(以前のバージョンのAndroidにActionBarを実装するライブラリもいくつかあります)の重要性が増しており、Android向けのほとんどのGoogleアプリで見つけることができます...

また、ViewPagerは、市場のように(さまざまなタブ/ビュー間を水平にスワイプするために)たくさん使用されます...

プロジェクトをきれいに保つために、すべてのアクティビティに個別のxmlファイルを与えることができます。使用する定期的な要素は、他のすべてのxmlファイルに含めることができる個別のxmlファイルに保持する必要があります(フッター、ヘッダー、セパレーターなど)。

これがあなたに役立つことを願っています!

4
Ferdau

まず、 APIガイド 、特に アクティビティフラグメント の部分をお読みください。しかし、時間があれば、すべてのAPIガイドを読んでください。これらのガイドは、Android開発を理解するための非常に優れたリソースです。

サポートするAndroidデバイスに応じて、 v4 Support Library および v7 Appcompat Library を使用することをお勧めします。最初のもの(v4サポートライブラリ)ネストされたフラグメントのサポートのために常に使用しています(getChildFragmentManager()-<API 18ではネイティブでサポートされていません)および ViewPager 。 Appcompatライブラリは主に、4.0より前のAndroidバージョンのデバイスでアクションバーをサポートするためのものです。

ビルドシステムとして Gradle および[ http://developer.Android.com/sdk/installing/studio.html](Android Studio)(無料)についても検討しますまたは IntelliJ IDEA (商用)IDEとして。

サードパーティのライブラリを考えると、最近最もよく使用されている(そしてほとんどの場合自分自身を使用している)ライブラリスタックは次のとおりです。

  • Guava 一般的なJavaヘルパーライブラリとして。
  • Dagger および ButterKnife 依存関係注入。
  • OkHttp HTTPトランスポートライブラリとして。
  • RetroFit または Volley as RESTライブラリ。
  • Picasso 画像読み込みライブラリとして。サーバーから画像をダウンロード/表示する必要があるときに適切な画像読み込みライブラリを用意することは、Androidで非常に重要です。これは、メモリの処理とキャッシュを処理するためです。自分で。

よく使用される代替手段は次のとおりです。

私が使用し、推奨する他のライブラリ:

  • CommonsWare Android Components 、特に cwac-adapter および cwac-camera 。最後の方法は、インテントを使用する代わりに、アプリ内でカメラを使用するためのものであり、これも自分で行うのは非常に難しい場合があります。
  • HoloAccent を使用すると、HoloをテーマにしたAndroidアプリのスタイルを簡単に設定できます。

Chris Banes(有名なAndroid開発者)が最近リリースした 彼のアプリケーションの1つのソースコード は、Androidのビルド方法の例として使用できます上記のいくつかのライブラリを使用するアプリ。

19

あなたが最初に学んだことは、Androidアクティビティについては本当によくわかります。全体を理解してください。そこから先に進むのははるかに簡単です。Java設計パターンを使用するので、うまくいかないパターンに問題を適合させようとするので、Android開発者のWebサイトにある例を確認してから、できるだけ多くのコードを記述してください。

Android App Patterns- http://Android-app-patterns.com と呼ばれるこのWebサイトをまとめると、人気のあるさまざまなUI要素と対話パターンが表示されますアプリはAndroidに準拠しています。

上記のパターンを簡単に実装するのに役立つライブラリがいくつかあります。例:

  1. GreenDroid- https://github.com/cyrilmottier/GreenDroid
  2. ActionBarSherlock- https://github.com/JakeWharton/ActionBarSherlock
  3. Android View Badger- https://github.com/jgilfelt/Android-viewbadger -通知に使用されます
  4. NineOldAndroids- https://github.com/JakeWharton/NineOldAndroids -HoneyCombのアニメーションAPIを使用してバージョン1.0に戻る
  5. 点火: https://github.com/kaeppler/ignition -一般的なヘルパーがたくさんAndroidもの
18
Abhinav

Androidアプリケーションは高速でなければなりません。まあ、それが効率的であると言う方がおそらくより正確です。つまり、限られたコンピューティングで、モバイルデバイス環境で可能な限り効率的に実行する必要があります。電源とデータストレージ、画面の小型化、バッテリ寿命の制限このブログでは、パフォーマンスを設計するために従うべきベストプラクティスを提供しています。

http://www.onsandroid.com/2014/10/Android-application-designing-for.html

http://www.onsandroid.com/2013/01/Android-best-practices.html

0
suresh