Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
アプリに開発者モードを用意する
Search
Hiroshi Kurokawa
January 15, 2015
Technology
1.8k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
アプリに開発者モードを用意する
Hiroshi Kurokawa
January 15, 2015
More Decks by Hiroshi Kurokawa
See All by Hiroshi Kurokawa
ART of Q
hkurokawa
3
1.3k
Chasing TransactionTooLargeException in The Wild
hkurokawa
0
570
Code Review as a Collaborative Journey
hkurokawa
3
1.1k
Room 2.1
hkurokawa
2
990
Introduction to Q#
hkurokawa
0
150
Surviving a discontinuous world
hkurokawa
1
3.1k
Making onActivityResult More Easy
hkurokawa
1
450
RxJava実践入門
hkurokawa
2
700
How to start a podcast
hkurokawa
1
470
Other Decks in Technology
See All in Technology
AI時代に求められる優秀なTechLeadの振る舞い
pospome
11
16k
Shared Signals Framework 仕様解説
oidfj
0
370
サボる子はいねぇがー!AgentCoreハーネスの脆弱性に学ぶ、エージェントの入力バリデーション
iwamot
PRO
5
320
ライフワーク「猫でもわかるDirectConnect」
kentapapa
0
310
AWS Quick 入門 | 目指せ Quick マスター 01
inariku
PRO
2
300
AI Agent 時代のデータ基盤: ClickHouse で実現する 超高速分析とコスト削減の両立
jozono
0
230
並列度を下げたら速くなった — go build の重複コンパイルを実測で見る
tomoaki25
2
1.1k
レガシーコードに対する loop engineering的なAI開発プロセス導入について
kubell_hr
0
320
令和の今、あらためて IAM を考える。アクセスキーを「無くせない現実」との向き合い方
kazzpapa3
0
600
AIエージェントの監視、思考を見るか行動を見るか / Monitoring AI Agents: Thoughts or Actions
yusukeshimizu
2
180
続・ソフトウェアアーキテクトのための意思決定術: Decision Readiness, Revisited — When AI Changes the Economics of Software Architecture
snoozer05
PRO
9
2.8k
2026-11-11 Tamachi.sre#7 PaCにインフラリソースの命を救われました。 / PaC saves the infra resource life
masasuzu
0
100
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
560
Darren the Foodie - Storyboard
khoart
PRO
5
4.1k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
520
We Are The Robots
honzajavorek
0
440
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
560
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
400
Writing Fast Ruby
sferik
630
63k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
330
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
330
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
380
Everyday Curiosity
cassininazir
0
400
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
Transcript
アプリに開発者モー ドを用意する 2015-01-15 Potatotips #13 黒川 洋 / @hydrakecat
こんなことはないですか ( その1) 開発者「 サー バー に◦◦ というログが送信されるのを確 認してください」 テスター「
どうやって確認すれば良いのですか?」 開発者「」 開発者「A/B 対象のユー ザー の場合は UI が◦◦ になって いることを確認してください」 テスター「 どうやったら対象ユー ザー になれますか?」 開発者「」( 新規登録を20 回くらいやれば...)
こんなことはないですか ( その2) 社内ユー ザー「 電車の中で使っていたら、 変な挙動が」 開発者「 すみませんすみません。 スクリー
ンショットと かありますか?」 社内ユー ザー「 ないです。 再現もできませんでした。」 開発者「」 開発者( 移動中)「 あ、 クラッシュした。」 開発者「 ログ見たいけれど、 手元にマシンがない。 家に 着くまで待つか。」 開発者「」( ログが流れてしまったときの顔)
開発者モー ドとは 開発/ テストに特化した機能を有効にした状態。 リリー スビル ドには含まれない。 たとえば、 以下のような操作を可能にす る。
ユー ザーID やトー クンなどの詳細情報の表示 A/B フラグなど本来はユー ザー が変更できない設定の変更 サー バー からのレスポンスの書き換え ログの取得/ 表示
例: デバッグオプション 通常時 開発者モー ド時
開発者モー ドの必要性 開発時 いちいちリモー トデバッグしたりコー ドを変更して、 サー バー のレスポンスを書き換えなくて済む 通常はユー
ザー に見せない情報を表示するので、 デバッグ しやすい テスト時 サー バー 側を変更したり複雑なプロキシの設定をせずにテ ストが可能 ⇒ テストを依頼しやすい ログなどの情報が取れるので、 デバッグが容易
開発者モー ドの注意点 開発用のコー ドがプロダクションに入らないようにする 実際のレスポンスとダミー レスポンスが乖離しないように ダミー レスポンスでのテストを信用しすぎない ⇒ mitmproxy
といったプロキシも併用する
実装方法 (Android Studio) Android Studio の flavor を使うと便利 以下は、testflight という
flavor を定義しているところ
フラグの切り替え SharedPreferences で管理 サー バー レスポンスを書き換えるようなものは、 後述のダ ミー レスポンスと併用する方が良い
詳細情報の表示 ユー ザー ID や、 トー クンなどデバッグに便利な情報 ダイナミックな情報を表示するときの工夫 トー ストの利用
印( マー ク) を付ける
ログの表示 Timber を使って、 ロー カルファイルにログを書き込む java.util.logger を使うと、 ログファイルサイズに上限を設け られる メソッド名を出したい場合は、
自分でスタックトレー スか ら取り出す必要がある @Override public void e(Throwable t, String message, Object... args) { final StackTraceElement[] stackTrace = new Throwable().getStackTrace(); final StackTraceElement e = stackTrace[5]; logger.logp(level, e.getClassName(), e.getMethodName(), String.format(message, args), t);
ダミー レスポンス Retrofit を使っているなら、Mock Client を使うと楽 API からファイルパスへのマッピングをしておく 例: GET
http://<hostname>/a/b ⇒ a/b/get.json private static class MockClient implements Client { ... @Override public Response execute(Request request) throws IOException { String path = "dummy/platform" + uri.getPath() + "/" + request.getMethod().toLowerCase() + ".json";
今後やりたいこと スクリー ンショット + ログファイル + 設定のダンプを一発 で取れるようにする 録画 ログレベルの制御