アプリリリース後に後悔しないための20のこと

110
アプリリリース後に後悔しないための 20のこと 曽川 義英 赤峰 義明

Upload: leveragesevent

Post on 21-May-2015

2.786 views

Category:

Technology


4 download

DESCRIPTION

ユーザからのコメントを有効に活用し、アプリを効率よく運営していく方法。

TRANSCRIPT

Page 1: アプリリリース後に後悔しないための20のこと

アプリリリース後に後悔しないための

20のこと

曽川 義英赤峰 義明

Page 2: アプリリリース後に後悔しないための20のこと

チームEGGの紹介

チームEGG個人開発コラボ集団

待ち受けトラッパーよるにゃん

Page 3: アプリリリース後に後悔しないための20のこと

よるにゃん

Page 4: アプリリリース後に後悔しないための20のこと

待ち受けトラッパー

Page 5: アプリリリース後に後悔しないための20のこと

ブログ紹介

EGG 開発ブログhttp://eggdev.mobaegg.com/

Page 6: アプリリリース後に後悔しないための20のこと

はじめに

今回紹介するのは一例です

全てを満たせばいい・・・というわけではありませんが参考にしてください

Page 7: アプリリリース後に後悔しないための20のこと

アプリリリース後に後悔しないための

20のこと

Page 8: アプリリリース後に後悔しないための20のこと

開発者の胸を痛める言葉の数々

Googleユーザ

おもしろくない。即刻アンインストールした

Googleユーザ

単純すぎ、つまんね。

Googleユーザ

\(^o^)/

Page 9: アプリリリース後に後悔しないための20のこと

今日は耳をふさがずに聴いていきましょう

Page 10: アプリリリース後に後悔しないための20のこと

後悔しないために

Page 11: アプリリリース後に後悔しないための20のこと

設計・デザインは何を考えれば良い?

Page 12: アプリリリース後に後悔しないための20のこと

Androidぽくない

Googleユーザ

Webの方が使いやすい

Page 13: アプリリリース後に後悔しないための20のこと

1.Androidの流儀に従う

流儀とは?

Android Designhttp://developer.android.com/design/index.html

Page 14: アプリリリース後に後悔しないための20のこと

1.Androidの流儀に従う

こんなことや

Page 15: アプリリリース後に後悔しないための20のこと

1.Androidの流儀に従う

設定 ヘルプ

こんなことを書いてます

Page 16: アプリリリース後に後悔しないための20のこと

1.Androidの流儀に従う

 「でも、英語だから読むのつらい」「だれか訳してよ。」

なので作りました。Android Design 翻訳 by チームEGGhttp://android-design.mobaegg.com/

Page 17: アプリリリース後に後悔しないための20のこと

OSバージョンを考えてなかった

Googleユーザ

インストールできません。早く対応してください。

Googleユーザ

OSをバージョンアップしたら起動できなくなくなった

Page 18: アプリリリース後に後悔しないための20のこと

2.バージョンを決める

minSdkVersion● サポートする最小のバージョン● シェア見ながら決める

Page 19: アプリリリース後に後悔しないための20のこと

2.バージョンを決める

targetSdkVersion● 「テストした」バージョン● 「変えちゃっても大丈夫でしょ」はまずい

○ 11以上:configChangeにsmallestScreenSizeと      uiModeが追加   (縦横切替に影響)

○ 13以上:AsyncTaskがシリアル実行される   (非同期処理に影響)

○ 17以上:デフォルトでexported=falseになる   (アプリ連携に影響)

これはほんの一例

Page 20: アプリリリース後に後悔しないための20のこと

2.バージョンを決める

maxSdkVersion● 基本的に指定しない

Page 21: アプリリリース後に後悔しないための20のこと

2.バージョンを決める

ビルドターゲットバージョン● 最新バージョンで行う● 開発時にAPI差分を認識する

Page 22: アプリリリース後に後悔しないための20のこと

あ、タブレットを忘れてた

Googleユーザ

タブレットなのに横向きにできない

Page 23: アプリリリース後に後悔しないための20のこと

3.縦画面・横画面を考える

Android Design「Multi-pane Layouts」

4パターン

Page 24: アプリリリース後に後悔しないための20のこと

こんな画面サイズあるの?

Googleユーザ

レイアウトが崩れている

Page 25: アプリリリース後に後悔しないための20のこと

HT-03A XperiaTM

SO-01BIS03 GALAXY

NoteHTC Jbuttefly

density 1 (mdpi) 1.5 (hdpi) 2 (xhdpi) 2 (xhdpi) 3 (xxhdpi)

解像度 320×480 480×854 640×960 800×1280 1080×1920

DPI 320×480 320×570 320×480 400×640 360×640

比率 2:3 9:16 2:3 10:16 9:16

4.崩れない画面デザインをする

解像度と画面比率

Page 26: アプリリリース後に後悔しないための20のこと

1. 最小の画面サイズ(320dp×480dp)でデザイン

・単位はdpで統一

4.崩れない画面デザインをする

320dp×480dp

Page 27: アプリリリース後に後悔しないための20のこと

2. 大きい画面サイズに合わせる

・weightやmatch_parentを利用する

4.崩れない画面デザインをする

360dp×640dp

Page 28: アプリリリース後に後悔しないための20のこと

*Android Designは別の手段で記載

「Devices and Display」

4.崩れない画面デザインをする

Page 29: アプリリリース後に後悔しないための20のこと

広告をいれる場所がないんだもの

Googleユーザ

広告が邪魔。間違って押してしまう

Googleユーザ

ボタンの上に広告が出てきて押せない

Page 30: アプリリリース後に後悔しないための20のこと

5.広告ありの画面で考える

ゲーム画面

ステージ2へ

タイトに組み込まれた広告(とにかく広告を入れた)

広告

広告

Page 31: アプリリリース後に後悔しないための20のこと

5.広告ありの画面で考える

ゲーム画面ゲーム画面

ステージ2へ広告ボタン

タイミングよく(悪く)出る広告(とにかくクリック率を上げたい)

Page 32: アプリリリース後に後悔しないための20のこと

5.広告ありの画面で考える

クリック単価減アンインストール罵倒コメント

みんな不幸になった

イライラ

効果が薄い

広告主

ユーザ

開発者

Page 33: アプリリリース後に後悔しないための20のこと

5.広告ありの画面で考える

・はじめから広告含めた画面デザインをする

・ユーザ操作を邪魔しない

Page 34: アプリリリース後に後悔しないための20のこと

実装するときに気をつけること

Page 35: アプリリリース後に後悔しないための20のこと

自分の端末だと大丈夫だよ?

Googleユーザ

アプリが固まります。機種はXXXです。

Page 36: アプリリリース後に後悔しないための20のこと

6.端末性能ごとに確認する

指針1・代表的な端末でテストする

Page 37: アプリリリース後に後悔しないための20のこと

6.端末性能ごとに確認する

指針2・よく売れている端末でテストする (アプリがターゲットとしている国)

Page 38: アプリリリース後に後悔しないための20のこと

6.端末性能ごとに確認する

指針3・RAM容量が小さい端末でテストする

Page 39: アプリリリース後に後悔しないための20のこと

いろんな端末で見たよ?

Googleユーザ

アプリが固まります。機種はXXXです。

Page 40: アプリリリース後に後悔しないための20のこと

7.GPUごとに確認する

GPU 代表機種

Adreno/Snapdragon EVO 3D, Xperia arc

PowerVR Nexus S, GALAXY NEXUS

Tegra Nexus 7, XOOM

Mali Galaxy S Ⅱ, Galaxy S Ⅲ,Nexus 4

OpenGLやカメラを使う時

Page 41: アプリリリース後に後悔しないための20のこと

この端末じゃきついよね…

Googleユーザ

画像を読み込むとアプリが落ちます。機種はXXXです。

Page 42: アプリリリース後に後悔しないための20のこと

8.画像読み込みおさらい

OutOfMemoryOutOfMemory

Page 43: アプリリリース後に後悔しないための20のこと

8.画像読み込みおさらい

ダウンサンプリング(BitmapFactory.Options#inSampleSize)

Page 44: アプリリリース後に後悔しないための20のこと

8.画像読み込みおさらい

いろいろ難しいので

ダウンサンプリングは実際どうやる?

読み込みをキャンセルしたら?

4.0以前に向けてどうする?

画面回転したら?

ListView内で使うには?

どうやってキャッシュする?

Page 45: アプリリリース後に後悔しないための20のこと

8.画像読み込みおさらい

見てくださいCaching Bitmapshttp://developer.android.com/training/displaying-bitmaps/cache-bitmap.html

Y.A.Mの雑記帳http://y-anz-m.blogspot.jp/2012/08/android.html

Page 46: アプリリリース後に後悔しないための20のこと

8.画像読み込みおさらい

どういう動きになるか

「よるにゃん」をインストール

http://p.tl/HjjO「まえのねこ」を選択 サムネイル読み込み

Page 47: アプリリリース後に後悔しないための20のこと

ほぼちゃんと動いてたのに

Googleユーザ

課金が反映されない。

Page 48: アプリリリース後に後悔しないための20のこと

9.In-App-Billing v2おさらい

BroadcastReceiver

Activity

Page 49: アプリリリース後に後悔しないための20のこと

9.In-App-Billing v2おさらい

BroadcastReceiver

Service

速攻データを保存 Serviceまたは

 BroadcastReceiverActivity

Page 50: アプリリリース後に後悔しないための20のこと

9.In-App-Billing v2おさらい

BroadcastReceiver

Activity

Service

Activityは主にUIを処理させる

Page 51: アプリリリース後に後悔しないための20のこと

9.In-App-Billing v2おさらい

BroadcastReceiver

ActivityActivityダメなパターン

Page 52: アプリリリース後に後悔しないための20のこと

9.In-App-Billing v2おさらい

BroadcastReceiver

Activity

AsyncTaskAsyncTask

ダメなパターン

Page 53: アプリリリース後に後悔しないための20のこと

これから作るならv3

In-App Billing v3の記事(EGG開発ブログ)http://p.tl/p0vI

Page 54: アプリリリース後に後悔しないための20のこと

リリースの際に気をつけること

Page 55: アプリリリース後に後悔しないための20のこと

とりあえず入れておけばいいでしょ

Googleユーザ

なんでXXXの取得権限があるの?こわい。

Googleユーザ

アプリをインストールすると、個人情報を抜かれます。

Page 56: アプリリリース後に後悔しないための20のこと

10.パーミッションの見直し

● できるだけ少なく○ Intent連携で機能見直し○ ユーザーの誤解防止

● 必要なものだけ追加○ 不必要なパーミッション削除

● 利用の明記○ GooglePlay記載

Page 57: アプリリリース後に後悔しないための20のこと

10.パーミッションの見直し

【参考】 Google I/O 2012 - Ten Things Game Developers Should Know

Page 58: アプリリリース後に後悔しないための20のこと

そんなことしてないのにな…

Googleユーザ

ウイルスです。

Googleユーザ

このアプリを入れたらデータが消えました

Page 59: アプリリリース後に後悔しないための20のこと

11.セキュアな証明をする

セキュアなコーディング・日本スマートフォンセキュリティ協会(JSSEC) http://www.jssec.org/ - セキュア設計・セキュアコードガイド

- ネットワークセキュリティ実装ガイド

Page 60: アプリリリース後に後悔しないための20のこと

11.セキュアな証明をする

アンドロイダーの利用 - 公認デベロッパー制度

・アプリのパーミッションチェック

・ウイルススキャン

https://androider.jp/

Page 61: アプリリリース後に後悔しないための20のこと

11.セキュアな証明をする

Page 62: アプリリリース後に後悔しないための20のこと

英語が得意じゃない

Googleユーザ

ニホンゴよめない。エイゴおねがい。

Page 63: アプリリリース後に後悔しないための20のこと

12.多言語対応をする

世界のスマホ利用台数

Source:Flurry

1. アメリカ:

2. 中国:

3. イギリス

4. 韓国:

5. 日本:

6. ドイツ:

7. フランス:

8. ロシア:

9. インド:

2億2000万台

2億1000万台

4300万台

3000万台

2900万台

2700万台

2300万台

2300万台

1900万台

Page 64: アプリリリース後に後悔しないための20のこと

12.多言語対応をする

Source:Flurry

言語設定に応じたリソース切り替え● フォルダ名

○ 言語コード:「ISO 639-1」○ 地域コード:「ISO 3166-1-alpha-2」例:「values-en」、「values-en-rGB」、「values-ja」

● 英語/日本語で対応する場合○ values:英語(デフォルト)○ values-ja:日本語

Page 65: アプリリリース後に後悔しないための20のこと

12.多言語対応をする

Source:Flurry

Googleおすすめ例(EFIGS+CJK)

Page 66: アプリリリース後に後悔しないための20のこと

公開後どうすれば?

Page 67: アプリリリース後に後悔しないための20のこと

更新はどうやれば?

Googleユーザ

全然更新されない。

Googleユーザ

バグはいつ直りますか?

Page 68: アプリリリース後に後悔しないための20のこと

13.アプリ更新おさらい

1.パッケージ名を変更しない - 別のパッケージは別アプリ

- 一度公開したものは削除不可

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.egg.sample" android:versionCode="1" # バージョン番号

android:versionName="1.0.0" # バージョン名> ...</manifest>

Page 69: アプリリリース後に後悔しないための20のこと

13.アプリ更新おさらい

2.バージョン番号(versionCode)を上げる - 前回の数字より大きいもの(1 ⇒ 2) - バージョン名(versionName)は自由 例:<major>.<minor>.<point> <?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.egg.sample" android:versionCode="2" # バージョン番号

android:versionName="1.0.0" # バージョン名> ...</manifest>

Page 70: アプリリリース後に後悔しないための20のこと

13.アプリ更新おさらい

3.同じキーストアで署名 - キーストアは再発行できない

- パスワードを忘れると署名できない

 キーストアの管理・バックアップ

Page 71: アプリリリース後に後悔しないための20のこと

いっぱい起動してもらおう

Googleユーザ

通知がいっぱい来るので邪魔です。アンインストールします。

Page 72: アプリリリース後に後悔しないための20のこと

14.通知を知る

通知(ノーティフィケーション)の役割

● 重要なイベントを通知するもの● 発生したイベントを追うログ● 通知情報によって優先度を使い分ける(JB)

Page 73: アプリリリース後に後悔しないための20のこと

14.通知を知る

通知OK● タイムセンシティブ(期限がある)

○ カレンダーのイベント

● ほかの人が関係する○ チャット着信

中断するほど重要な情報か?1. 選択権を与える(ON/OFF)2. 優先度フラグを調整

Page 74: アプリリリース後に後悔しないための20のこと

14.通知を知る

通知NG● ユーザに向けられていない情報● 同様の通知が存在する場合(スタックさせる)● ほっておいても解決するもの● アプリを広告するため● ブランド浸透のため

不要な通知は失望とユーザ離れを起こす詳しくは『ノーティフィケーション』(Android Design)

Page 75: アプリリリース後に後悔しないための20のこと

いちゃもんつけられた

Googleユーザ

全然面白くない。即刻アンインストール

Googleユーザ

ゲーム内容が簡単すぎる。単純。

Googleユーザ

\(^o^)/

Page 76: アプリリリース後に後悔しないための20のこと

15.気持ちを強く穏やかに

厳しいレビューは覚悟 - いちゃもんに思うが、そう思われたのは事実

- コメントに感謝

- ユーザの声に耳を傾ける

Page 77: アプリリリース後に後悔しないための20のこと

アプリバージョンアップ時は?

Page 78: アプリリリース後に後悔しないための20のこと

アップデートのテストをしてなかった

Googleユーザ

アプリをバージョンアップしたら動かなくなった。

Googleユーザ

起動しない。早く対応しろ!

Googleユーザ

昨日まで使えてたのに…

Page 79: アプリリリース後に後悔しないための20のこと

16.バージョンアップ確認をする

・上書きインストールの確認1. Google Playから現行バージョンをインストール2. 署名済みの次期バージョンアプリを

    コンソールで上書きインストール

3. 動作確認a. 新機能/変更点b. プリファレンスc. データベースd. 課金周り

adb install -r [パッケージ名]

Page 80: アプリリリース後に後悔しないための20のこと

16.バージョンアップ確認をする

・UI AutomatorAndroid SDK Tools Rev21でサポート新しいUIテストフレームワーク

adakodahttp://www.adakoda.com/adakoda/2012/12/android-uiautomator-2.html

Page 81: アプリリリース後に後悔しないための20のこと

16.バージョンアップ確認をする

ガイドラインチェック・Androidアプリ品質ガイドラインhttp://googledevjp.blogspot.jp/2013/01/core.html

・タブレット向けアプリ品質チェックリストhttp://googledevjp.blogspot.jp/2013/01/tablet.html

・公開後にアプリ品質を向上させるhttp://googledevjp.blogspot.jp/2013/01/app-quality.html

アプリに応じたテスト項目

Page 82: アプリリリース後に後悔しないための20のこと

テストをちゃんとやったのに

Googleユーザ

アプリをバージョンアップしたら動かなくなった。

Googleユーザ

起動しない。早く対応しろ!

Googleユーザ

昨日まで使えてたのに…

炎上中

Page 83: アプリリリース後に後悔しないための20のこと

17.不具合を追跡する

テストを行っても防ぎきれない。 ⇒問題はボヤのうちに鎮火させる   煙は『GoogleAnalytics』で追跡

Page 84: アプリリリース後に後悔しないための20のこと

17.不具合を追跡する

Page 85: アプリリリース後に後悔しないための20のこと

17.不具合を追跡する

Page 86: アプリリリース後に後悔しないための20のこと

17.不具合を追跡する

テスト漏れは防ぎきれない。 ⇒問題はボヤのうちに鎮火させる   煙は『GoogleAnalytics』で追跡

【参考】・GoogleAnalytics:

http://www.google.co.jp/intl/ja/analytics/

・Google Analytics V2 翻訳 (EGG 開発ブログ)http://goo.gl/saeWY

・Google Analytics V1 を利用した追跡 (EGG 開発ブログ)http://goo.gl/pHJcg

Page 87: アプリリリース後に後悔しないための20のこと

17.不具合を追跡する

機種の動作差分も注意○ T-01C、IS04

      独自フォントが使えない

○ L-05D   Notification#DEFAULT_LIGHTSを   指定するとWAKE_LOCKが必要

他にもいろいろあります

Page 88: アプリリリース後に後悔しないための20のこと

使いやすいUIに直したのに

Googleユーザ

変わりすぎて使いづらい。ダウングレードしたい。

Googleユーザ

改悪

Page 89: アプリリリース後に後悔しないための20のこと

18.ユーザに合わせる

大きな変化は戸惑うユーザに合ったスピードで更新する

Page 90: アプリリリース後に後悔しないための20のこと

18.ユーザに合わせる

ユーザの反応を見ながら - 例:アップデート1回目 (レイアウト変更)

Page 91: アプリリリース後に後悔しないための20のこと

18.ユーザに合わせる

ユーザの反応を見ながら - 例:アップデート2回目 (アクションバー追加)

Page 92: アプリリリース後に後悔しないための20のこと

18.ユーザに合わせる

ユーザの反応を見ながら - 例:アップデート3回目 (オーバーフロー追加)

Page 93: アプリリリース後に後悔しないための20のこと

18.ユーザに合わせる

ユーザの反応を見ながら - 例:アップデート4回目 (タブ追加)

更新が早くて、

使いやすくなった

Googleユーザ

Page 94: アプリリリース後に後悔しないための20のこと

18.ユーザに合わせる

GoogleAnalyticsで変更前後の行動分析

Page 95: アプリリリース後に後悔しないための20のこと

新しいAndroidが発表されたら?

Page 96: アプリリリース後に後悔しないための20のこと

自分に関係ないと思ってた

Googleユーザ

OSバージョンをあげてから使えなくなりました。

Googleユーザ

ファイル保存出来ません。

Page 97: アプリリリース後に後悔しないための20のこと

19.APIを使い分ける

・Activity#showDialog →DialogFragment・Gallery →HorizontalScrollView →ViewPager・SlidingDrawer →オープンソースをコピペ

・DefaultHttpConnection(2.2↓) ⇔HttpURLConnection(2.3↑)

Page 98: アプリリリース後に後悔しないための20のこと

今まで動いてたから大丈夫

Googleユーザ

OSバージョンをあげてから使えなくなりました。

Googleユーザ

ファイル保存出来ません。

Page 99: アプリリリース後に後悔しないための20のこと

20.新しいOSの動作差分をチェック

Android 4.2まとめてみた

http://p.tl/yVCY

Page 100: アプリリリース後に後悔しないための20のこと

後悔しないためのまとめ

Page 101: アプリリリース後に後悔しないための20のこと

コメントはアプリへの期待?

Googleユーザ

面白い!XXXもできたら星5です!

Googleユーザ

すばらしい!

Page 102: アプリリリース後に後悔しないための20のこと

まずはコメントをもらう

Page 103: アプリリリース後に後悔しないための20のこと

ファンを作る

NEW

Page 104: アプリリリース後に後悔しないための20のこと

ご清聴ありがとうございました

Page 105: アプリリリース後に後悔しないための20のこと

補足

Page 106: アプリリリース後に後悔しないための20のこと

4.崩れない画面デザインをする

3. 画面の特性でリソースを切り替える

a.画面サイズ

修飾子 説明

small smallサイズ画面用リソース

normal normalサイズ画面用のリソース(ベースサイズ)

large largeサイズ画面用のリソース

xlarge extra largeサイズ画面用のリソース

Page 107: アプリリリース後に後悔しないための20のこと

4.安全な画面デザインを作る

3. 画面の特性でリソースを切り替える

b.密度

修飾子 説明

ldpi low密度画面用のリソース (~120dpi)

mdpi medium密度画面用のリソース (~160dpi) (ベース密度)

hdpi high密度画面用のリソース (~240dpi)

xhdpi extra high密度画面用のリソース (~320dpi)

xxhdpi extra extra high密度画面用のリソース (~480dpi)

nodpi 画面密度に関係なく、スケールされないリソース

Page 108: アプリリリース後に後悔しないための20のこと

4.安全な画面デザインを作る

3. 画面の特性でリソースを切り替える

c.画面向き

修飾子 説明

land 横画面方向の画面用リソース

port 縦画面方向の画面用リソース

Page 109: アプリリリース後に後悔しないための20のこと

6.端末性能ごとに確認する

Compatibility Definition Document(CDD)OSバージョンごとの端末メーカが最低限満たすべき要件

http://source.android.com/compatibility/downloads.html

Page 110: アプリリリース後に後悔しないための20のこと

8.画像読み込みおさらい

以下はあまり効果がない・SoftReference<Bitmap>(2.3以降)・WeakReference<Bitmap>(2.3以降)・System.gc();