SlideShare a Scribd company logo
1 of 12
Download to read offline
© DeNA Co., Ltd. 1
Flutter.Thursday@DeNA TechCon2024
うちのアプリのデバッグ機能
杉山 優悟
技術統括部プロダクト開発部モバイルグループ
株式会社ディー・エヌ・エー
© DeNA Co., Ltd. 2
杉山 優悟 / すぎー
1. 2023年7月からDeNA入社
2. iOSエンジニア
a. try! Swift楽しみ!
3. 現在はFlutter製の新規ライブ配信アプリを開発中
4. 年末からプレイ中の桃鉄100年があと20年で終わる
技術統括部プロダクト開発部モバイルグループ
@u5-03
@u5_03
https://ulog.sugiy.com
© DeNA Co., Ltd.
自己紹介
© DeNA Co., Ltd. 3
みなさん、アプリの開発中の
デバッグ機能はどうしてますか?
© DeNA Co., Ltd. 4
1
1. Flutter標準の機能、開発ツールのもの、3rd Partyのもの、自作のものなど色々ある
a. Flutter標準
i. Hot reloadやDevTools、Widget Inspectorなど
b. VSCodeの場合
i. VSCode自体の設定、Flutter-Auto-Importなどの拡張機能
c. 3rd Partyのもの
i. ChatGPT, Copilot?
d. 自作
i. 文字通り自作したもの
デバッグ機能は開発を補助・効率的にするためのツールや機能
© DeNA Co., Ltd. 5
2
1. 実装している機能
a. デバッグ情報
b. 指定ページを開く
c. アプリ内ステータス変更
d. デバッグステータス変更
e. Mockタイプ切り替え
f. アプリ強制クラッシュ
g. キャッシュクリア系
h. アプリ内の機能動画確認
2. 端末をShakeすることで、どこからでも表示できる
弊アプリで自作している効率化のためのDebugMenu
© DeNA Co., Ltd. 6
3
1. デバイスやアプリ情報などをまとめた画面
2. 画面上で確認できない情報を表示
a. Shared Preference
b. Remote Config
c. アプリ内のフラグ
d. ユーザーIDなど
3. 全ての値はタップでコピーできる
4. iOSの配布用アプリのビルド番号は日時に設定
a. Ref: https://ulog.sugiy.com/change-build-number/
DebugMenu - デバッグ情報
© DeNA Co., Ltd. 7
4
1. 開発中の画面や特定の画面を開くための機能(一部の画面は導線が遠かったりする)
2. 複数の状態を持つ画面をパターンごとに出し分ける
3. freeScreen→ちょっとした動作確認に使用
4. designAsset→Design系の仕様を確認しやすいようにまとめ(兼デザイナーの確認用)
DebugMenu - 指定ページを開く
© DeNA Co., Ltd. 8
5
1. 特定の画面でその画面で使っている変数・フラグをOverlayに表示する
a. watchしているのでリアルタイムで更新される
b. 特にライブ配信はフラグが多いので、管理が大変
c. 自分でDebugする時もバグがあった時に原因を特定しやすい
i. 開発中のBugFixにかなり役立っている
d. DebugMenuから表示/非表示を切り替えられる
2. タップすると、このフラグ情報とDebugInfoの情報をコピーする
a. チーム内のバグ報告やQA起票時に添付してもらう運用にしている
画面のステータスを表示するOverlay Widget
© DeNA Co., Ltd. 9
6
1. MaterialAppのフラグ
a. showPerformanceOverlay(→画面上部に表示, QAでも利用)
b. debugShowMaterialGrid⚙
i. レイアウト確認用のgridを表示する
2. Globalに定義されているフラグ(flutter/rendering.dartに定義)
a. debugPaintSizeEnabled⚙(→Widgetの表示領域を表示)
b. debugPaintBaselinesEnabled⚙
i. TextなどのBaselineを表示
c. debugRepaintRainbowEnabled⚙
i. 再描画されると、bounding boxの色が変わる
3. VSCodeのWidget Inspectorからも変更可能→
Flutter標準のDebug機能のフラグ(⚙: DebugMode only)
© DeNA Co., Ltd. 10
7 まとめ
1. Debug機能を充実させると、開発やテストがはかどる!
a. 実装するなら、早めの方が複利的に効果が出る!
i. 実際今の機能の恩恵はとても大きい
b. 開発が始まって7ヶ月のアプリにしてはだいぶ充実していると思う
2. メインの機能開発に影響が出ない範囲でやる!
3. Flutterは標準のDebug用機能が充実していて、その辺はありがたい!
a. iOSエンジニア的にはXcodeにHotReload入らないかなーと切望
b. それかPreviewがもう少し安定してくれると!
© DeNA Co., Ltd. 11
うちではこんな実装をしている!
という方は教えてください!!🙋
© DeNA Co., Ltd. 12

More Related Content

Similar to Flutter.Thursday@DeNA TechCon2024 うちのアプリのデバッグ機能

ニフクラmobilebackend_セミナー_配布用.pdf
ニフクラmobilebackend_セミナー_配布用.pdfニフクラmobilebackend_セミナー_配布用.pdf
ニフクラmobilebackend_セミナー_配布用.pdfssuser347f24
 
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テストSTFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テストToshiyuki Hirata
 
楽楽精算iOSアプリのCI/CD紹介
楽楽精算iOSアプリのCI/CD紹介楽楽精算iOSアプリのCI/CD紹介
楽楽精算iOSアプリのCI/CD紹介KazukiHirayama
 
ネイティブマーケティングカンパニーにおけるプロダクトマネージャー
ネイティブマーケティングカンパニーにおけるプロダクトマネージャーネイティブマーケティングカンパニーにおけるプロダクトマネージャー
ネイティブマーケティングカンパニーにおけるプロダクトマネージャーTomotake Nakamura
 
オープンハードで、こんなガジェット欲しくね~?(2010 03-06)
オープンハードで、こんなガジェット欲しくね~?(2010 03-06)オープンハードで、こんなガジェット欲しくね~?(2010 03-06)
オープンハードで、こんなガジェット欲しくね~?(2010 03-06)博宣 今村
 
受託案件を通じてみたWIndows8ストアアプリ
受託案件を通じてみたWIndows8ストアアプリ受託案件を通じてみたWIndows8ストアアプリ
受託案件を通じてみたWIndows8ストアアプリIkkai Takeshi
 
Lync 2013 API カスタマイズアプリ開発
Lync 2013 API カスタマイズアプリ開発Lync 2013 API カスタマイズアプリ開発
Lync 2013 API カスタマイズアプリ開発adachiyosuke
 
classmethod devio2015 J-1 iBeacon
classmethod devio2015 J-1 iBeaconclassmethod devio2015 J-1 iBeacon
classmethod devio2015 J-1 iBeaconHiraku Komuro
 
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話和也 大木
 
スマートフォンで加速する「GREE」グローバル開発の現場
スマートフォンで加速する「GREE」グローバル開発の現場スマートフォンで加速する「GREE」グローバル開発の現場
スマートフォンで加速する「GREE」グローバル開発の現場Chiaki Hatanaka
 
iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境Toshiyuki Hirata
 
技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)Toru Yamaguchi
 
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~Developers Summit
 
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービスマスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービスToshiyuki Hirata
 
Androidアプリ開発を楽にするために
Androidアプリ開発を楽にするためにAndroidアプリ開発を楽にするために
Androidアプリ開発を楽にするためにShuichi Takaya
 

Similar to Flutter.Thursday@DeNA TechCon2024 うちのアプリのデバッグ機能 (20)

ニフクラmobilebackend_セミナー_配布用.pdf
ニフクラmobilebackend_セミナー_配布用.pdfニフクラmobilebackend_セミナー_配布用.pdf
ニフクラmobilebackend_セミナー_配布用.pdf
 
デ部プレゼン資料20100306
デ部プレゼン資料20100306デ部プレゼン資料20100306
デ部プレゼン資料20100306
 
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テストSTFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
 
楽楽精算iOSアプリのCI/CD紹介
楽楽精算iOSアプリのCI/CD紹介楽楽精算iOSアプリのCI/CD紹介
楽楽精算iOSアプリのCI/CD紹介
 
ネイティブマーケティングカンパニーにおけるプロダクトマネージャー
ネイティブマーケティングカンパニーにおけるプロダクトマネージャーネイティブマーケティングカンパニーにおけるプロダクトマネージャー
ネイティブマーケティングカンパニーにおけるプロダクトマネージャー
 
オープンハードで、こんなガジェット欲しくね~?(2010 03-06)
オープンハードで、こんなガジェット欲しくね~?(2010 03-06)オープンハードで、こんなガジェット欲しくね~?(2010 03-06)
オープンハードで、こんなガジェット欲しくね~?(2010 03-06)
 
受託案件を通じてみたWIndows8ストアアプリ
受託案件を通じてみたWIndows8ストアアプリ受託案件を通じてみたWIndows8ストアアプリ
受託案件を通じてみたWIndows8ストアアプリ
 
Lync 2013 API カスタマイズアプリ開発
Lync 2013 API カスタマイズアプリ開発Lync 2013 API カスタマイズアプリ開発
Lync 2013 API カスタマイズアプリ開発
 
classmethod devio2015 J-1 iBeacon
classmethod devio2015 J-1 iBeaconclassmethod devio2015 J-1 iBeacon
classmethod devio2015 J-1 iBeacon
 
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
 
Pokelabo android web
Pokelabo android webPokelabo android web
Pokelabo android web
 
スマートフォンで加速する「GREE」グローバル開発の現場
スマートフォンで加速する「GREE」グローバル開発の現場スマートフォンで加速する「GREE」グローバル開発の現場
スマートフォンで加速する「GREE」グローバル開発の現場
 
iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境
 
2019年版 Infragistics Ultimate UI for WPF概要
2019年版 Infragistics Ultimate UI for WPF概要2019年版 Infragistics Ultimate UI for WPF概要
2019年版 Infragistics Ultimate UI for WPF概要
 
技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)
 
20110824 android apps_takekawa
20110824 android apps_takekawa20110824 android apps_takekawa
20110824 android apps_takekawa
 
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
 
Gadget1プレゼン資料20100206
Gadget1プレゼン資料20100206Gadget1プレゼン資料20100206
Gadget1プレゼン資料20100206
 
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービスマスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
 
Androidアプリ開発を楽にするために
Androidアプリ開発を楽にするためにAndroidアプリ開発を楽にするために
Androidアプリ開発を楽にするために
 

More from yugosugiyama

SwiftUIで本のUIにチャレンジしてみた!potatotips #87 iOS/Android開発Tips共有会 ...
SwiftUIで本のUIにチャレンジしてみた!potatotips #87 iOS/Android開発Tips共有会                   ...SwiftUIで本のUIにチャレンジしてみた!potatotips #87 iOS/Android開発Tips共有会                   ...
SwiftUIで本のUIにチャレンジしてみた!potatotips #87 iOS/Android開発Tips共有会 ...yugosugiyama
 
集まれSwift好き!Swift愛好会 vol.80 @DeNA 2024/03/07 try!Swift2019振り返る
集まれSwift好き!Swift愛好会 vol.80 @DeNA 2024/03/07 try!Swift2019振り返る集まれSwift好き!Swift愛好会 vol.80 @DeNA 2024/03/07 try!Swift2019振り返る
集まれSwift好き!Swift愛好会 vol.80 @DeNA 2024/03/07 try!Swift2019振り返るyugosugiyama
 
potatotips#83iOS:Android開発Tips共有会_sugiy.pdf
potatotips#83iOS:Android開発Tips共有会_sugiy.pdfpotatotips#83iOS:Android開発Tips共有会_sugiy.pdf
potatotips#83iOS:Android開発Tips共有会_sugiy.pdfyugosugiyama
 
potatotips #81.pdf
potatotips #81.pdfpotatotips #81.pdf
potatotips #81.pdfyugosugiyama
 
開発作業やテストの時にMockでケースごとの UIチェックやテストを書きやすくする
開発作業やテストの時にMockでケースごとの UIチェックやテストを書きやすくする開発作業やテストの時にMockでケースごとの UIチェックやテストを書きやすくする
開発作業やテストの時にMockでケースごとの UIチェックやテストを書きやすくするyugosugiyama
 

More from yugosugiyama (7)

SwiftUIで本のUIにチャレンジしてみた!potatotips #87 iOS/Android開発Tips共有会 ...
SwiftUIで本のUIにチャレンジしてみた!potatotips #87 iOS/Android開発Tips共有会                   ...SwiftUIで本のUIにチャレンジしてみた!potatotips #87 iOS/Android開発Tips共有会                   ...
SwiftUIで本のUIにチャレンジしてみた!potatotips #87 iOS/Android開発Tips共有会 ...
 
集まれSwift好き!Swift愛好会 vol.80 @DeNA 2024/03/07 try!Swift2019振り返る
集まれSwift好き!Swift愛好会 vol.80 @DeNA 2024/03/07 try!Swift2019振り返る集まれSwift好き!Swift愛好会 vol.80 @DeNA 2024/03/07 try!Swift2019振り返る
集まれSwift好き!Swift愛好会 vol.80 @DeNA 2024/03/07 try!Swift2019振り返る
 
SwiftGarden.pdf
SwiftGarden.pdfSwiftGarden.pdf
SwiftGarden.pdf
 
potatotips#83iOS:Android開発Tips共有会_sugiy.pdf
potatotips#83iOS:Android開発Tips共有会_sugiy.pdfpotatotips#83iOS:Android開発Tips共有会_sugiy.pdf
potatotips#83iOS:Android開発Tips共有会_sugiy.pdf
 
potatotips #81.pdf
potatotips #81.pdfpotatotips #81.pdf
potatotips #81.pdf
 
K-Dev_LT0.pdf
K-Dev_LT0.pdfK-Dev_LT0.pdf
K-Dev_LT0.pdf
 
開発作業やテストの時にMockでケースごとの UIチェックやテストを書きやすくする
開発作業やテストの時にMockでケースごとの UIチェックやテストを書きやすくする開発作業やテストの時にMockでケースごとの UIチェックやテストを書きやすくする
開発作業やテストの時にMockでケースごとの UIチェックやテストを書きやすくする
 

Flutter.Thursday@DeNA TechCon2024 うちのアプリのデバッグ機能

  • 1. © DeNA Co., Ltd. 1 Flutter.Thursday@DeNA TechCon2024 うちのアプリのデバッグ機能 杉山 優悟 技術統括部プロダクト開発部モバイルグループ 株式会社ディー・エヌ・エー
  • 2. © DeNA Co., Ltd. 2 杉山 優悟 / すぎー 1. 2023年7月からDeNA入社 2. iOSエンジニア a. try! Swift楽しみ! 3. 現在はFlutter製の新規ライブ配信アプリを開発中 4. 年末からプレイ中の桃鉄100年があと20年で終わる 技術統括部プロダクト開発部モバイルグループ @u5-03 @u5_03 https://ulog.sugiy.com © DeNA Co., Ltd. 自己紹介
  • 3. © DeNA Co., Ltd. 3 みなさん、アプリの開発中の デバッグ機能はどうしてますか?
  • 4. © DeNA Co., Ltd. 4 1 1. Flutter標準の機能、開発ツールのもの、3rd Partyのもの、自作のものなど色々ある a. Flutter標準 i. Hot reloadやDevTools、Widget Inspectorなど b. VSCodeの場合 i. VSCode自体の設定、Flutter-Auto-Importなどの拡張機能 c. 3rd Partyのもの i. ChatGPT, Copilot? d. 自作 i. 文字通り自作したもの デバッグ機能は開発を補助・効率的にするためのツールや機能
  • 5. © DeNA Co., Ltd. 5 2 1. 実装している機能 a. デバッグ情報 b. 指定ページを開く c. アプリ内ステータス変更 d. デバッグステータス変更 e. Mockタイプ切り替え f. アプリ強制クラッシュ g. キャッシュクリア系 h. アプリ内の機能動画確認 2. 端末をShakeすることで、どこからでも表示できる 弊アプリで自作している効率化のためのDebugMenu
  • 6. © DeNA Co., Ltd. 6 3 1. デバイスやアプリ情報などをまとめた画面 2. 画面上で確認できない情報を表示 a. Shared Preference b. Remote Config c. アプリ内のフラグ d. ユーザーIDなど 3. 全ての値はタップでコピーできる 4. iOSの配布用アプリのビルド番号は日時に設定 a. Ref: https://ulog.sugiy.com/change-build-number/ DebugMenu - デバッグ情報
  • 7. © DeNA Co., Ltd. 7 4 1. 開発中の画面や特定の画面を開くための機能(一部の画面は導線が遠かったりする) 2. 複数の状態を持つ画面をパターンごとに出し分ける 3. freeScreen→ちょっとした動作確認に使用 4. designAsset→Design系の仕様を確認しやすいようにまとめ(兼デザイナーの確認用) DebugMenu - 指定ページを開く
  • 8. © DeNA Co., Ltd. 8 5 1. 特定の画面でその画面で使っている変数・フラグをOverlayに表示する a. watchしているのでリアルタイムで更新される b. 特にライブ配信はフラグが多いので、管理が大変 c. 自分でDebugする時もバグがあった時に原因を特定しやすい i. 開発中のBugFixにかなり役立っている d. DebugMenuから表示/非表示を切り替えられる 2. タップすると、このフラグ情報とDebugInfoの情報をコピーする a. チーム内のバグ報告やQA起票時に添付してもらう運用にしている 画面のステータスを表示するOverlay Widget
  • 9. © DeNA Co., Ltd. 9 6 1. MaterialAppのフラグ a. showPerformanceOverlay(→画面上部に表示, QAでも利用) b. debugShowMaterialGrid⚙ i. レイアウト確認用のgridを表示する 2. Globalに定義されているフラグ(flutter/rendering.dartに定義) a. debugPaintSizeEnabled⚙(→Widgetの表示領域を表示) b. debugPaintBaselinesEnabled⚙ i. TextなどのBaselineを表示 c. debugRepaintRainbowEnabled⚙ i. 再描画されると、bounding boxの色が変わる 3. VSCodeのWidget Inspectorからも変更可能→ Flutter標準のDebug機能のフラグ(⚙: DebugMode only)
  • 10. © DeNA Co., Ltd. 10 7 まとめ 1. Debug機能を充実させると、開発やテストがはかどる! a. 実装するなら、早めの方が複利的に効果が出る! i. 実際今の機能の恩恵はとても大きい b. 開発が始まって7ヶ月のアプリにしてはだいぶ充実していると思う 2. メインの機能開発に影響が出ない範囲でやる! 3. Flutterは標準のDebug用機能が充実していて、その辺はありがたい! a. iOSエンジニア的にはXcodeにHotReload入らないかなーと切望 b. それかPreviewがもう少し安定してくれると!
  • 11. © DeNA Co., Ltd. 11 うちではこんな実装をしている! という方は教えてください!!🙋
  • 12. © DeNA Co., Ltd. 12