AndroidAPPを設計する方法

  1. 開発ツールの選択

私はそれがGoogleの公式のAndroid開発ツールで、開発ツールを選択しAndroidStudioなり、現在の安定版である1.3で、プレビューバージョン1.4もリリースされています。あなたのAndroidStudio利点は、非常に簡単に統合されたオープンソースのライブラリすることができAndroidStudioを使用し、GitHubの上でAndroidのオープンソースライブラリのほとんどはまた、jarファイルを提供していないとき、アップAndroidStudioに移行、言う必要はありません。最も重要なのは、Googleは(GoogleがAndroidのEclipseツールのサポートを終了しEclipseAndroid開発ツールのすべてのサポートを中止すると発表した ) 今年の末までに、それほどまでAndroidStudioために、できるだけ早く転送を行います。
2.Appデザイン

これは何の決定、製品部門の手の中に最終決定がないように見えます、開発者のためです。それにもかかわらず、私は、App設計された製品部門MaterialDesignスタイルを説得しようとします。それは、iOSのAppのスタイルを開発するAndroidの開発者として、それはより多くの涙ああ、言ったが、一日中、私はコストと時間を節約するために、AndroidとiOSのUIのセットを共有し、多くの企業がこのようであると考えています。私は、IOSの必須ですAndroidAppバックボタンに入れて、各ページのタイトルバーの左上隅に、一つの共通の例を挙げてみましょう、しかし、Androidのは、Androidが完全に不必要であるために設計されたリターンキーああ、持っています。敬具各オペレーティングシステムのプロダクトデザイナーのスタイルや習慣を尊重するが、目立たない製品を設計していないことを願っています。MaterialDesignは、まさにこのような仕様を提供MD仕様がリリースされて以来、そのエレガントなデザインと新鮮なスタイルは、Android(公式ライブラリのサポート、既存のMDスタイルにデザインMDよりも今より多くのデザイナーや開発者の多数を、集めています)、でもCSSで、HTML、JavaScriptのWebデザインは、より多くの火災です。このため、アプリケーション設計スタイルのために、MaterialDesignは私の一部、多分あなたは見逃しているAndroidDesignをやって、材料設計を逃さないでください。
3.バージョンのサポート
サポートするAndroidの最小バージョンについては、実際には、市場シェアのさまざまなバージョンを参照することができ、現在では、統計によると、当社の最低限のアプリケーションサポート4.4を、独自のアプリケーションを決定する可能性が最も高いです。個人ビューは、バージョン4.xのユーザーの一部がまだあるものの、ということですが、実際には、携帯電話の交換素早く、より優れたユーザーエクスペリエンスのために、そして(バージョンが必要な多くのサードパーティのライブラリを持っている)APIのアップデートを適用するために、すべきサポートされる最小バージョン、約3.0適切な、そのAPIレベル11を上げます。
4.Appフレーム設計
私は良いアーキテクチャが存在しない場合、コードは機能モジュールの結合度が高くなります維持が肥大化し、困難となり、アプリケーションが成長し、機能モジュールの増加に伴って、私たちは経験を持っていると信じています。アプリは、それがモジュール間の結合は、また多重化を容易に低減することができるように、完全なアプリは、いくつかの独立したモジュールに分割し、モジュール式であるようにすることができます。

1.ネットワークモジュールは
、それらのほとんどはネットワーキング、サーバからの要求データを必要とし、それのアプリケーションの非常に少数のスタンドアロンバージョンを持っているので、ネットワークモジュールモジュールが不可欠です。あなたは今、私はokHttpやボレーを選ぶだろう、オープンソースのフレームワークを使用することができ、個々の、特に多数のGitHubのオープンソースのWebフレームワークは、多分私はより良いネットワークフレームが表示されています。バグが発生したとき、彼らは何もしないように、それを制御することができなければならない、あなたはオープンソースのフレームワークを使用している場合、あなたがソースコードを読まなければならないことに注意してください。もちろん、あなたはまた、独自のネットワークモジュールを書くことができ、私たちの現在のAppネットワークモジュールは、完全に自分の書き込みになるようにバグが早くネットワーキング・プロセスの詳細に対処するために世話をして、問題を見つけることができたときに書かれたコードに精通メリット自身、例えば:

HTTPS、HTTPS証明書の検証のための(1)のサポート(現在の慣行の多くは、すべてのHTTPS証明書デフォルトで許可され、実際には、そうすることは安全ではないと本当に証明書の検証を行う必要があります)

(2)サポートのWAPアップインターネットアクセス、モバイル、チャイナユニコム、テレコムのプロキシ設定

(3)リダイレクション、データ圧縮との伝送をサポート

(4)その他の注目すべき問題

独自のネットワークフレームワークは完全にこれらの詳細を扱うことができます書くが、時間コストは比較的大きいです。あなたは、オープンソースのフレームワークを使用する場合は、一般的にこれらの詳細に対処していないので、我々は、サードパーティ製のフレームワークにいくつかの変更を行うことができ、そのような費用は、多くの時間を節約します。ここで私はあなたがより一般的なネットワークライブラリのいくつかをお勧め与える:
OkGo:OkGo - OkHttpUtils-2.0.0アップグレードはOkGo、新しい完璧なサポートRxJavaと改名した後、

プロジェクト住所:https://github.com/jeasonlzy

ライブラリは、パッケージには、レトロフィットよりも使いやすいRxJavaの完璧な組み合わせすることができokhttpネットワーキング・フレームワークです。、大容量ファイルのアップロードとダウンロードをサポートしていますプログレスコールバックをアップロードし、進捗コールバック形式のアップロードをダウンロード(一緒に複数のファイルや複数のパラメータをアップロードする)、チェーンの呼び出し、あなたは戻りオブジェクトをカスタマイズすることができ、HTTPSをサポートして自己署名証明書、自動Cookie管理をサポートし、クワッドのサポートキャッシュモードのキャッシュネットワークデータの種類、301302リダイレクトをサポートする統合管理のアップロードを拡張し、管理機能をダウンロードするには、
改造:レトロフィットスクエアは、同社は、RESTfulなWebリクエストフレームをOkHttp基づいてデフォルトのパッケージのセットを生成し、RESTfulな願いの概念を理解していません研究の下で検索するには、RESTfulなAPIは、デザインスタイルではなく、標準の人気のセットであると言うことができます。レトロフィットパッケージは、デフォルトでは、HTTPを使用することですが、あなたは、別のHTTPクライアントを使用することができ、あなたが直接設定を要求する注釈を付けることができ、デザインパターンの束を伴う、非常に強力であると言うことができる、さまざまなJSON Converterは、データをシリアル化するために使用することができます使用RxJavaのサポートを提供しながら、+ OkHttp + RxJava + Dagger2を言うことができるレトロフィットは、ヒップの枠組みであるが、比較的高い閾値を必要とします。

ここにアドレス特定の用途を改造:

http://square.github.io/retrofit/
ボレー:バレーボールは小さいながらも賢い非同期リクエストライブラリーの、Googleの公式のセットで、パッケージのフレームワークは非常に強力で拡張し、HttpClientを、HttpURLConnectionのでサポートされている、でもOkHttp、特定のメソッドをサポートジェイクは、この文書の要旨の神を見ることができます:

https://gist.github.com/JakeWharton/5616899

そして、あなたが好きなら、あなたも額縁をロードする必要はありませんが、この機能は、いくつかの特殊な強力なイメージロードフレームではありませんので、また、ImageLoaderをカプセル化バレーボールは、もう少し複雑なニーズのために、簡単なニーズのために使用されるか、または必要になることができます画像は、特別なフレームにロードされます。

バレーボールはまた、大規模なデータなどの欠点、ポストをサポートしていないを持っている、ファイルをアップロードするためには適していません。しかし、バレーボール自体は、もともと生まれデータネットワーク要求を頻繁に、少量のために設計されています!

特定の使用バレーボールのために私は早くGitHubの中のデモを見ることができます:

https://github.com/stormzhang/AndroidVolley
OkHttp:OkHttp広場では、JavaとAndroidのアプリケーションのため、同社のオープンソースであり、高性能パッケージhttpリクエストライブラリなので、HttpURLConnectionの、サポートSPDYと同じ義務である、HTTP 2.0、 WebSocketを、同期、非同期、およびOkHttpをサポートし、スレッドプールをカプセル化し、データ変換をカプセル化し、使用する方が便利なパラメータ、エラー処理、APIをカプセル化します。これは、パッケージの後に何か似てHttpURLConnectionのものとして理解することができますが、あなたはまだ使用し、よりスムーズのように、フレームワークとして使用するように、パッケージの独自の層を行うために必要がある場合。

:ここOkHttp具体的な使用は、アドレス繰り返されていません

http://square.github.io/okhttp/

APPの開発において、APPは、画像の不可欠な要素であり、画像は、大容量メモリ集約的であるので、画像管理フレームワークが不良画像フレームは、メモリリークがあってもクラッシュを引き起こす原因となることは容易である、特に重要です。もちろん、あなたがダウンロード写真、デコード、キャッシングや他の重要な側面を達成するために、独自の額縁(私たちは現在、そうしている)を実装することができます。個人的な推奨事項がいくつかの良い素材を使用することができ、それは私たち自身の音と映像管理よりも効率的かもしれません。私は、次のいくつかの写真ギャラリーをお勧めします:
(1)グライド、などGooglephotosなど、Googleの公式アプリケーションのいくつかは、使用するだけでなく、より多くを説明していますか?

(2)フレスコ、Facebookのオープンソースのライブラリ関数を超強力な、WEBP、GIF、JPEG、プログレッシブ表示をサポートし、キーは画像メモリのオーバーヘッドが大幅に削減されながら、画像メモリの設計です。

(3)Androidのユニバーサル・画像・ローダーは、上記のギャラリーが表示されます前に、個人的なアプリケーションはまた、それを使用する前に、最もホットなように見えます。

(4)ピカソは、スクエア、オープンソースのライブラリーは、グライドはピカソデザインを参照すると言われています。
個人用APPはMVVMデザインパターンMVPパターンやデザインを使用しています。
セキュリティ10.Appは考える
ことが多い、これは確かに非常に深刻な問題である、セキュリティの問題がAndroidApp非常に少数の人々は注意を払うのAppいくつかの良い人を割りました。それは.soのライブラリで書かれたコアアルゴリズムのいくつかは、それが短い、などの予防策でAPKは、APKシェル・メカニズムを使用することも可能で、パッケージ、少なくとも難読化されたコードに加えて、サーバー側の重要なロジック、データの暗号化などの要求が、決してないことを示唆しましたあまりにも多く。

Scattershotは、論理的に息不足しているコンテンツがあるかもしれない、フォローアップを補完し、向上させる、そんなに書きます。上記の原理によれば、少なくともあなたが良いアプリケーションを開発することができればと思います。

おすすめ

転載: blog.51cto.com/xingxin2066/2437977