Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
■目的
落ちないアプリ開発の仕組みを作る
■内容
①新Version申請前に必ず行うべきこと
②新Versionリリース後に必ず行うべきこと
③メモリー?ロジック?落ちバグの切り分け方
④メモリーで落ちてる際の対応方法
⑤意外と知らない便利な機能
落ちないアプリを作るために
新Versionを申請する前
に必ずやること
①本番環境に繋いでテストする
┗テスト環境で終了後、エンジニアに許可取ってから、
最終的には、変更箇所を本番でテストしてください。
ネイティブだけの変更なら、基本は問題ないです。
落ちたらcrashlyticsでログ追ってください。
②本番に近...
~サーバーversionとか関係なく必ず行うこと~
①申請前チェックリストは必ず確認
http://wiki.applibot.co.jp/pages/viewpage.action?pageId=6164337
②強化済ユーザでギルバトを8v...
落ちないアプリを作るために
新Versionをリリースした後
に必ずやること
crashlyticsのログ増加量を追う
┗リリース後にcrashlytics上で増えている数の変化を確認。
優先順位を付けて、JIRA化し、次回申請時までに
どこまで直すかを決め、実行していく。
※本番で起きている不具合の原因も特定できます
...
メモリーで落ちているか
ロジックで落ちているか
の切り分け方
How to 1
本番、デバッグ関係なく
これってメモリで落ちてるの?
それともロジックで落ちてるの?
ってなったら・・・
How to 1
①crashlyticsのログを見る
┗再現してみて、その落ちログが
crashlyticsに届いていればロジック修正が必要
※メモリー落ちの場合、 crashlyticsにログ届きません
※メール来ないことがあるので、管理画面で確認
②iFu...
メモリーで落ちている場合
の対処の仕方
How to 2
How to 2
①もう一度「本当にメモリー?」と疑う
┗何でもメモリーのせいにしない
②何をするとメモリを多く消費しているか、
原因をXcode上で数字で把握する
③原因が分かったら、対応方針を決める
How to 2
~メモリー消費の減らし方~
①周辺機能のメモリーリークを全て潰す
┗Leaksでエンジニアに確認してもらってください。リークの数だけ落ちやすくなります
②CCBを細かく分割する(アニメを使うシーンに遷移しようとして落ちてる場合...
意外と知らない便利な機能
How to 3
①デバッグメニュー
【ケイオス】
ギルバトの攻撃エフェクトの消費メモリー数が
分かる機能がある
【ケイオス・ギャング】
アバターの消費メモリー数が分かる機能がある
②メモリ圧迫アプリについて
アンドロイドにはメモリを圧迫してる状態に出来
るアプ...
Crashlyticsの見方
おまけ
1
2 3 4
5
= プロジェクト設定
= バージョンでソート
= ステータスでソート
1
2
3
4 = 発生時間でソート
5 = 発生時間が分かる
6
6 = 原因を確認できる
おまけ
■これからやりたいこと
アバターや攻撃エフェクト作成時の
メモリに関するレギュレーションづくり
Upcoming SlideShare
Loading in …5
×

落ちないアプリ開発の仕組み

1,393 views

Published on

  • Be the first to comment

落ちないアプリ開発の仕組み

  1. 1. ■目的 落ちないアプリ開発の仕組みを作る
  2. 2. ■内容 ①新Version申請前に必ず行うべきこと ②新Versionリリース後に必ず行うべきこと ③メモリー?ロジック?落ちバグの切り分け方 ④メモリーで落ちてる際の対応方法 ⑤意外と知らない便利な機能
  3. 3. 落ちないアプリを作るために 新Versionを申請する前 に必ずやること
  4. 4. ①本番環境に繋いでテストする ┗テスト環境で終了後、エンジニアに許可取ってから、 最終的には、変更箇所を本番でテストしてください。 ネイティブだけの変更なら、基本は問題ないです。 落ちたらcrashlyticsでログ追ってください。 ②本番に近いサーバー状態でテストする ┗本番のデータをダンプして、dev環境に持ってくるなど、 データがおかしいから落ちる、という状態は絶対に作らない。 テスト前にエンジニアと環境に関して、密に話してほしいです ~サーバーversion変わらないなら~ ~サーバーversion変わるなら~
  5. 5. ~サーバーversionとか関係なく必ず行うこと~ ①申請前チェックリストは必ず確認 http://wiki.applibot.co.jp/pages/viewpage.action?pageId=6164337 ②強化済ユーザでギルバトを8vs8以上で行う ┗ギルバトに変更なくても、必ず行ってください。 サーバーver上がらない ⇒ 本番環境 サーバーver上がる ⇒ テスト環境 テスト時は、企画職の責任者やエンジニアも出席させてください。 エンジニアはXcode上でプレイして貰ってOKです。(ログすぐ取れる) ③新機能実装時はLeaksでリーク確認 ┗エンジニアが機能実装完了時に、 instrumentsのLeaksでリーク箇所を検出してください 当たり前ですが、リークが多いほど落ちやすくなります
  6. 6. 落ちないアプリを作るために 新Versionをリリースした後 に必ずやること
  7. 7. crashlyticsのログ増加量を追う ┗リリース後にcrashlytics上で増えている数の変化を確認。 優先順位を付けて、JIRA化し、次回申請時までに どこまで直すかを決め、実行していく。 ※本番で起きている不具合の原因も特定できます ディレクターは1日5回以上、 crashlytics見た方が良いかと思います。 P、エンジニアと相談して、優先順位を決めて下さい
  8. 8. メモリーで落ちているか ロジックで落ちているか の切り分け方 How to 1
  9. 9. 本番、デバッグ関係なく これってメモリで落ちてるの? それともロジックで落ちてるの? ってなったら・・・ How to 1
  10. 10. ①crashlyticsのログを見る ┗再現してみて、その落ちログが crashlyticsに届いていればロジック修正が必要 ※メモリー落ちの場合、 crashlyticsにログ届きません ※メール来ないことがあるので、管理画面で確認 ②iFunboxのログをエンジニアに渡す ┗落ちたらデバッガーにiFunboxでログを取得して貰い、 エンジニアにそのログをみて貰い、原因を判断してもらう ※基本は①をエンジニアと確認するのが無難です How to 1
  11. 11. メモリーで落ちている場合 の対処の仕方 How to 2
  12. 12. How to 2 ①もう一度「本当にメモリー?」と疑う ┗何でもメモリーのせいにしない ②何をするとメモリを多く消費しているか、 原因をXcode上で数字で把握する ③原因が分かったら、対応方針を決める
  13. 13. How to 2 ~メモリー消費の減らし方~ ①周辺機能のメモリーリークを全て潰す ┗Leaksでエンジニアに確認してもらってください。リークの数だけ落ちやすくなります ②CCBを細かく分割する(アニメを使うシーンに遷移しようとして落ちてる場合) ┗1つのCCBに大量のタイムラインを持たせると、読み込み時に無駄にメモリ食います 必要なタイミングでCCBを呼ぶ実装にする ③パーティクルの使用量を減らす ┗パーティクルは使わなかった時に比べ、使用時は4~5倍メモリ食います。 アニメーション作成時に注意して貰ってください (例)ガチャ演出、ギルバトのユニークアビ演出など ④必要なタイミングで取ってくる実装を意識 ┗ギルバトに入ろうとして落ちるのは、(頻繁に使わないものも)入る際に一気に読んでいるためでした。 スナイパーチャンスなど、頻繁に使わないものは都度持ってきて、使用後はクリアして貰ってください。 企画が仕様を伝える際に、メモリのことを軽く触れると良いと思います。 (例)「この機能は頻繁に使わないので、都度呼んでもいいかも」と相談する ⑤アニメの画像素材に無駄がないかを確認する ┗ケイオスの場合、アバターのpngに「いずれ、相手が攻撃してくるときの実装が入るときの為の余分なアバター画像」が入ってました。 呼んでいる画像素材にも無駄がないかを確認してください。 ※①~⑤、全て定量的に変化を追えるようにしておいてください
  14. 14. 意外と知らない便利な機能 How to 3
  15. 15. ①デバッグメニュー 【ケイオス】 ギルバトの攻撃エフェクトの消費メモリー数が 分かる機能がある 【ケイオス・ギャング】 アバターの消費メモリー数が分かる機能がある ②メモリ圧迫アプリについて アンドロイドにはメモリを圧迫してる状態に出来 るアプリがある ⇒ケイオスで使用中 How to 3
  16. 16. Crashlyticsの見方 おまけ
  17. 17. 1 2 3 4 5 = プロジェクト設定 = バージョンでソート = ステータスでソート 1 2 3 4 = 発生時間でソート 5 = 発生時間が分かる 6 6 = 原因を確認できる おまけ
  18. 18. ■これからやりたいこと アバターや攻撃エフェクト作成時の メモリに関するレギュレーションづくり

×