狠狠撸

狠狠撸Share a Scribd company logo
株式会社エクストーン勉强会
                2012/09/28
                 高谷秀一

辛いANDROIDアプリ開発を少しで
も楽にするために。
自己紹介

主なお仕事:
MyDocomoアプリのメンテナンスをしてます。
(https://play.google.com/store/apps/details?id=jp.co.nttdocomo.mydocomo)

略歴:
デジタル放送 → iアプリ → ソーシャルゲーム
→ Androidアプリ(いまここ)

Twitter ID:@stakaya
アジェンダ

? 開発環境を改善しよう
? 仕様やデザインとのすり合わせをしよう
? アプリをどう作るべきか
? リリースしてから何をするべきか
? 補足
開発環境を改善しよう




エミュレータが重い。
Intel版のエミュレータを使おう

? Intel版のエミュレータが出たおかけでエミュ
    レータは実機並みのスピードになった
?   現状Android2.3?4.0?4.1のみですが、開発に
    は充分。
?   Windows?Mac?Linuxに対応
?   使用するには別途アプリIntel? Hardware
    Accelerated Execution Managerをインストー
    ルが必要
?   WindowsはBios上でVTを有効に
?   Virtual Boxとは相性が悪い
開発環境を改善しよう




共同作業がむずかしい。
共同作業の準備をする

? デバッグ用の署名を作る
? SVN/GITにeclipseが自動生成するファイル
  をアップしないルールを周知する
開発環境を改善しよう




機種が多くてテスト工数がハンパな
い。
バグが出やすい機種からテスト

? LGの機種(特にL-04C、L-06C)
? シャープの機種全般(やや癖がある)
? 新OSがリリースされた機種
? Sony、Samsungは開発しやすい
仕様やデザインとのすり合わせをしよう




画面作るのが面倒くさい。
画面は使い捨てと割り切る

? レイアウトファイルを再利用するのは手
  間
? 毎回作り直したほうが早い
? HTMLが書ければXMLのレイアウトファイ
  ルは難しくない
? 画面作成ツールはあてにならないので手
  書きで書くのが良い
? Fragmentsは慣れるまで使わないほうが良
  い
仕様やデザインとのすり合わせをしよう




解像度とか画面サイズが沢山あって
統一感が保てない。
デザインと同じには表示できない

? レイアウトは伸縮性を考慮して
? 縦横に伸びた時にも見栄えがするデザイ
  ンにする必要がある
? 画像は9patchを使う
アプリをどう作るべきか




アプリが落ちたら。
大体がメモリ不足か
AndroidManifestファイルの問題
? アプリが異常終了する時はManifestファイ
  ルを確認する
? 次にレイアウトファイルを確認(idのミス
  が結構多い)
? 異常終了しないで終了しない場合はメモ
  リ不足
アプリをどう作るべきか




動作がもっさりする。
普段から意識すること

? 使い終わった変数にはnullを入れる
? ダイアログ表示以外でActivityのthisは引数
  として渡さない
? Contextの参照はApplicationContextを使う
? 画面は5秒以内にレスポンスを返す(UI
  スレッドで重い処理をしない)
? BuildConfigを使ってデバッグとリリース
 のコードを切り分けておく
WebViewでUIを作ると遅い

? WebViewを過信しない
? WebView上でオーバレイしない
? フリックイベントはJavascriptでハンドリ
  ングしない
? Javascriptは極力使わないで、jqueryも必要
  な部分だけ読み込む
? HTMLを何度も読み込まない
リリースしてから何をするべきか




太っていると嫌われる。
容量の大きいアプリはすぐ消される

? リソースの大半が画像
? 画像は必要な部分だけ作る
? 解像度(mdpi?hdpi?xhdpi)?レイアウト
  (land?port)?画面幅(large?xlarge)を確認
? jpeg mini等を使って画像の容量を削る
リリースしてから何をするべきか




人の話をよく聞く。
础苍诲谤辞颈诲アプリ开発を楽にするために
Google Playのコメントをよく読む

? 大体はどうでもいいコメント
? 稀に的確な指摘が混じっている
? マメにコメントを読んで優秀なユーザの
 コメントを真摯に受け止める
? リリース後はバグ報告が無いかチェック
  する
? 権限変更にはかなりセンシティブ
まとめ

? 開発環境は日進月歩で改善されている
? だが時間と共に機種も増える
? OSや機種の変化も早い
? 全ての機種に対応するのは不可能!
? 開発サイクルも早くなり、機能を継ぎ足
  しで開発を進めがち
? 初期開発時にロードマップを作成してお
  くと良い(どのような機能が追加される
  可能性があるかを考えておく)
補足

? よく見ているサイト
  (http://y-anz-m.blogspot.jp/)
? インテルのHAXMダウンロードサイト
  (http://software.intel.com/en-
  us/articles/intel-hardware-accelerated-
  execution-manager/)

More Related Content

础苍诲谤辞颈诲アプリ开発を楽にするために