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

More Related Content

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

Trac Plugin Developement with Jenkins
Trac Plugin Developement with JenkinsTrac Plugin Developement with Jenkins
Trac Plugin Developement with JenkinsTakahisa Wada
 
テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1Hiro Yoshioka
 
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築CROOZ, inc.
 
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験についてRakuten Group, Inc.
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングterurou
 
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
リモート・スマホ・レンタル(第2回 Androidテスト祭り)リモート・スマホ・レンタル(第2回 Androidテスト祭り)
リモート・スマホ・レンタル(第2回 Androidテスト祭り)NTT Resonant Technology Inc.
 
Microsoft によるオープンなweb デバッグ環境 comm tech festival-
Microsoft によるオープンなweb デバッグ環境 comm tech festival-Microsoft によるオープンなweb デバッグ環境 comm tech festival-
Microsoft によるオープンなweb デバッグ環境 comm tech festival-Yoshihisa Ozaki
 
第5回札幌SoftLayer勉強会資料_20150311
第5回札幌SoftLayer勉強会資料_20150311第5回札幌SoftLayer勉強会資料_20150311
第5回札幌SoftLayer勉強会資料_20150311潤 川岡
 
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境Toshiyuki Hirata
 
バージョン管理勉強会
バージョン管理勉強会バージョン管理勉強会
バージョン管理勉強会Hiroaki Murayama
 
超簡単!バージョン管理入門 最初の一歩
超簡単!バージョン管理入門 最初の一歩超簡単!バージョン管理入門 最初の一歩
超簡単!バージョン管理入門 最初の一歩Shin Tanigawa
 
Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22Shota Umeda
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていくRyo Mitoma
 
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例健一 辰濱
 
nGrinder3 : だれもが簡単にできる性能テスト
nGrinder3 : だれもが簡単にできる性能テストnGrinder3 : だれもが簡単にできる性能テスト
nGrinder3 : だれもが簡単にできる性能テストJunHo Yoon
 
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニングKiyokazu Kaba
 
バージョン管理の断捨離
バージョン管理の断捨離バージョン管理の断捨離
バージョン管理の断捨離Kazushi Kamegawa
 

Similar to 落ちないアプリ開発の仕組み (20)

ドリコムJenkins勉強会資料
ドリコムJenkins勉強会資料ドリコムJenkins勉強会資料
ドリコムJenkins勉強会資料
 
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
 
Trac Plugin Developement with Jenkins
Trac Plugin Developement with JenkinsTrac Plugin Developement with Jenkins
Trac Plugin Developement with Jenkins
 
テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1
 
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
 
OSC福岡 20111203
OSC福岡 20111203OSC福岡 20111203
OSC福岡 20111203
 
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
 
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
リモート・スマホ・レンタル(第2回 Androidテスト祭り)リモート・スマホ・レンタル(第2回 Androidテスト祭り)
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
 
Microsoft によるオープンなweb デバッグ環境 comm tech festival-
Microsoft によるオープンなweb デバッグ環境 comm tech festival-Microsoft によるオープンなweb デバッグ環境 comm tech festival-
Microsoft によるオープンなweb デバッグ環境 comm tech festival-
 
第5回札幌SoftLayer勉強会資料_20150311
第5回札幌SoftLayer勉強会資料_20150311第5回札幌SoftLayer勉強会資料_20150311
第5回札幌SoftLayer勉強会資料_20150311
 
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
 
バージョン管理勉強会
バージョン管理勉強会バージョン管理勉強会
バージョン管理勉強会
 
超簡単!バージョン管理入門 最初の一歩
超簡単!バージョン管理入門 最初の一歩超簡単!バージョン管理入門 最初の一歩
超簡単!バージョン管理入門 最初の一歩
 
Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
 
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
 
nGrinder3 : だれもが簡単にできる性能テスト
nGrinder3 : だれもが簡単にできる性能テストnGrinder3 : だれもが簡単にできる性能テスト
nGrinder3 : だれもが簡単にできる性能テスト
 
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
 
バージョン管理の断捨離
バージョン管理の断捨離バージョン管理の断捨離
バージョン管理の断捨離
 

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