Slide 1

Slide 1 text

デバッグや検証ツールを活用 した効率的なアプリ開発 Efficient app development using various debugging and verification tools

Slide 2

Slide 2 text

自己紹介 ● Joseph Iturralde (@epishie) ● モバイル基盤部 ● Androidエンジニア

Slide 3

Slide 3 text

Android Renewal Project

Slide 4

Slide 4 text

アイデア ● おすすめ記事 さがす ● レシピ検索、ハッシュタグ きろく ● クリップ、料理アルバム New 3-Tab UI

Slide 5

Slide 5 text

Debugging and Verification Tools Flipper

Slide 6

Slide 6 text

Flipper はモバイルアプリ用の デバッグツールで iOS, Android, ReactNative で利用 可能 Flipper https://fbflipper.com/

Slide 7

Slide 7 text

コア・プラグイン ● Layout ● Network ● SharedPreferences ● Database カスタム・プラグイン Flipper

Slide 8

Slide 8 text

複雑なレイアウトをデバッグすること は難しく、特に API から画像やテキス トなど多くのコンテンツを取得する場 合は非常に難しいです Flipper - Layout

Slide 9

Slide 9 text

Flipper では起動中の アプリの View ツリーを 簡単に覗くことができ ます Flipper - Layout

Slide 10

Slide 10 text

View ツリーでハイライトした View はデバ イス上でも同様に確認できます Flipper - Layout

Slide 11

Slide 11 text

Margin, Padding, Bounds を 確認できます Flipper - Layout

Slide 12

Slide 12 text

Flipper - Network HTTP リクエストと レスポンスも確認できます OkHttp の interceptor を 使っているので HTTPS も確 認できます

Slide 13

Slide 13 text

Flipper - Shared Preferences クックパッドアプリでは Spotlight と 呼ばれるカスタム View を新機能や 新しいUIを紹介する際に利用しています ユーザがすでに確認したかどうかの状態は SharedPreference に保存しています

Slide 14

Slide 14 text

Flipper - Shared Preferences SharedPreference の 内容を確認することが でき、アプリ起動中は 値の更新が反映されます

Slide 15

Slide 15 text

Debugging and Verification Tools Hyperion

Slide 16

Slide 16 text

Hyperion - App Inspection Tool Hyperion はプラグイン型のデバッグメ ニューライブラリでデザイナー、開発者、 QA間の認識のズレを埋めるためのツール です https://github.com/willowtreeapps/Hyperion-Android

Slide 17

Slide 17 text

Hyperion - App Inspection Tool コア・プラグイン ● Attribute ● Disk ● Measure ● Phoenix ● Recorder ● Shared-Preferences

Slide 18

Slide 18 text

Hyperion - App Inspection Tool 様々な用途に合わせてカスタムの プラグインを実装して追加することができ ます

Slide 19

Slide 19 text

Hyperion - App Inspection Tool クックパッドではデバッグや検証に 合わせて数多くのプラグインを実装 しました

Slide 20

Slide 20 text

Hyperion - App Inspection Tool 特にリニューアル時にはデザイナーの確 認を容易にするため、UI のデバッグメ ニューをいくつか追加しました

Slide 21

Slide 21 text

Hyperion - App Inspection Tool Button Style Verification リニューアル時にマテリアルテーマ (Theme.MaterialComponents)に 変更したため、既存ボタンスタイル 全てを確認する手段が必要になりました

Slide 22

Slide 22 text

Hyperion - App Inspection Tool Ken Burns* Transition Preview リニューアルで追加された機能の中で画 像をスライドショーとして表示しています * https://en.wikipedia.org/wiki/Ken_Burns_effect

Slide 23

Slide 23 text

Hyperion - App Inspection Tool Ken Burns Transition Preview この画像の動作をプレビューツールによっ て確認することができました

Slide 24

Slide 24 text

Hyperion - App Inspection Tool Navigation 開発のタイミングでリスト画面より先に詳細 画面が実装されることがありました こういった詳細画面は画面遷移の デバッグツールから直接遷移できるようにし ました

Slide 25

Slide 25 text

Demo Apps

Slide 26

Slide 26 text

Demo Apps クックパッドアプリは主要な機能ごと に独立した feature モジュールに分割されています

Slide 27

Slide 27 text

Demo Apps 開発時、特に特定のモジュールのみを 変更している場合はプロジェクト全体の ビルドには無駄な箇所をビルドしてしまう 可能性があります Photo by Jon Tyson on Unsplash

Slide 28

Slide 28 text

Demo Apps プロジェクト全体のビルドを避けるため に、特定の feature モジュールのみを ビルドするデモアプリを導入しました

Slide 29

Slide 29 text

Demo Apps

Slide 30

Slide 30 text

Demo Apps デモアプリを作る際は検証したい 各機能を起動する画面を作成します

Slide 31

Slide 31 text

Demo Apps 機能を選択すると実際の画面が 起動し、スタブしたレスポンスで機能を確 認できます 機能単体で検証できるように、 他の画面とのやりとりも スタブしています

Slide 32

Slide 32 text

Demo Apps デモアプリは iOS で導入した Sandbox アプリを元に作成しました 大規模なiOSアプリの画面開発を効率化するために動作確 認用ミニアプリを構築する https://techlife.cookpad.com/entry/2020/08/05/0900 00 大規模プロジェクトにおけるモバイル基盤の取り組み https://techlife.cookpad.com/entry/2020/12/04/1100 00#デモアプリモジュールの実装

Slide 33

Slide 33 text

まとめ

Slide 34

Slide 34 text

まとめ 巨大なプロジェクトの開発は難しい デバッグや検証はさらに難しい 便利なツールで効率化 使えるものがなければ自作しよう