SlideShare a Scribd company logo
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
株式会社アンドパッド 開発本部 SWE 松川 知憲
CameraXへの安全なライブラリ移行手順
2022.11.8
後夜祭DroidKaigi2022
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
自己紹介
松川 知憲 / Tomonori Matsukawa
Confidential
施工管理アプリのAndroid担当
・Twitter: @_se_tomo
・GitHub: @mtkw0127
・株式会社アンドパッド
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
CameraXについて話す背景
Confidential
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
CameraXについて話す背景
Confidential
ある端末でANDPADアプリのカメラが起動しない不具合が発生
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
CameraXについて話す背景
Confidential
ある端末でANDPADアプリのカメラが起動しない不具合が発生
CameraXにライブラリを移行すれば解決することがわかった
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
CameraXについて話す背景
Confidential
ある端末でANDPADアプリのカメラが起動しない不具合が発生
CameraXにライブラリを移行すれば解決することがわかった
Android未経験の松川が入社してきた
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
CameraXについて話す背景
Confidential
ある端末でANDPADアプリのカメラが起動しない不具合が発生
CameraXにライブラリを移行すれば解決することがわかった
Android未経験の松川が入社してきた
CameraXへの移行作業に松川をアサイン
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
CameraXについて話す背景
Confidential
ある端末でANDPADアプリのカメラが起動しない不具合が発生
CameraXにライブラリを移行すれば解決することがわかった
Android未経験の松川が入社してきた
CameraXへの移行作業に松川をアサイン
他のエンジニアやPMの協力があり安全に移行できた...!!!
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
発表の目的
Confidential
カメラライブラリ移行の際の参考にしてもらう
● 開発での注意点(Androidいろんな端末ありすぎ問題な
ど)
● QA
● リリース方法
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
発表の目的
Confidential
カメラライブラリ移行の際の参考にしてもらう
CameraXの詳しい説明はDroidKaigiの以下のセッションを見て下さい!
「Camera Xライブラリの魅力と最新機能を紐解く」
※実装の詳細に関しては触れない
● 開発での注意点(Androidいろんな端末ありすぎ問題な
ど)
● QA
● リリース方法
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
目次
Confidential
1. CameraXとは
2. ANDPADにおけるカメラ
3. 移行作業(開発面/リリース面)
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
CameraXとは 📸
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
CameraXとは📸
Confidential
Jetpackのカメラライブラリ
最新バージョン1.2.0-beta02(2022/10/28時点)
(※ targetSdkを33に上げる必要あり)
特徴
1. 簡単にカメラ機能をアプリに追加可能
2. Camera2より少ないコードで実装可能
3. ライフサイクルを考慮したカメラ起動可能
4. 色々なデバイスでテスト済み(Android5.0以降をサポート)
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
学習方法
Confidential
https://developer.android.com/codelabs/camerax-getting-started#0
■ CameraXのコードラボ
https://github.com/SimpleMobileTools/Simple-Camera
■ 参考リポジトリ
https://developer.android.com/training/camerax?hl=ja
■ ガイド
Camera Xライブラリの魅力と最新機能を紐解く(https://www.youtube.com/watch?v=AisOFRNGPGw)
■ DroidKaigi2022での発表
CameraX × ML Kit でパスポートOCR機能を実装(https://www.youtube.com/watch?v=SBu2J8blfac)
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
ANDPADにおけるカメラ📸
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
ANDPADでのカメラ
Confidential
撮影
黒板と重ね合わせた
写真を撮影可能
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
ANDPADでのカメラ移行前後
Confidential
ライブラリ移行なので
移行前後で動作に変更なし
移行前
Fotoapparat
移行後
CameraX
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
ANDPADでのカメラ(カメラを設定するUI)
Confidential
フラッシュ
ON/OFF/AUTO切り替え
明るさの取り込み量調整
ズーム切り替え
撮影
背面/内カメラとの切り替え
スライダorボタンのUIを
介してカメラの設定を変更
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
移行作業(開発/テスト/リリース)🚶
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
旧カメラと新カメラを共存させる
Confidential
(旧)CameraActivity
Fotoapparat
(新)CameraXActivity
CameraX
カメラは重要機能のため
不具合がでた場合に影響範囲が広い
懸念点
新旧版のカメラライブラリを共存させて
リリースなしで切り戻せるようにする
対策
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
旧カメラと新カメラを共存させる
Confidential
if (useCameraX) {
val intent = CameraXActivity.createIntent(context, options, setting)
cameraLauncher.launch(intent)
} else {
val intent = CameraActivity.createIntent(context, options, setting)
cameraLauncher.launch(intent)
}
Firebase RemoteConfigを利用し
Booleanの値をリリースなしで変更できるようにし切り替え
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
InstrumentalTestでノンデグ確認しながらの開発
Confidential
● CameraActivityとCameraXActivityは同じUI(xml内のidが同じ)
● CameraActivityのInstrumentalTestをCameraXActivityにも適用できた
例)
撮影ボタン押下後に
右上の撮影枚数が「1」になる
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
いろんな端末があることに注意する
Confidential
● インカメラが無い
● フラッシュ機能がない
● Autoフラッシュ機能がない
● インカメラにズーム機能がない
val canUserBackCamera =
processCameraProvider.hasCamera(CameraSelector.DEFAULT_FRONT_CAMERA)
インカメ存在チェック
val canUserBackCamera = camera.cameraInfo.hasFlashUnit()
フラッシュ存在チェック
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
端末固有の問題も発生する
Confidential
充電が10%以下でカメラを起動するとクラッシュする(arrowsF01H)
cameraXViewModel.camera?.cameraInfo?.cameraState?.observe(this) { cameraState ->
cameraState.error?.let { cameraErrorState ->
cameraErrorState.cause?.let { th ->
errorHandle(th)
}
}
}
以下でも例外をハンドリングできない
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
困ったらIssueTrackerに報告すると回答してくれる
arrowsF-01Hで充電が10%以下の状態でCameraXでカメラを起動するとクラッシュする。
例外もcatchできない
報告内容
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
困ったらIssueTrackerに報告すると回答してくれる
arrowsF-01Hで充電が10%以下の状態でCameraXでカメラを起動するとクラッシュする。
例外もcatchできない
報告内容
アドバイスをもらえた
CameraXでも吸収できないFatalExceptionのため、CameraXには取り込めない
デバイスのブランド名と端末のバッテリ残量を見て制御してはどうか?
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
困ったらIssueTrackerに報告すると回答してくれる
アドバイス通り端末固有の処理を書いた。
(※ハードコードはよく無いので今後修正予定)
private fun checkButtery() {
if (Build.BRAND == "DOCOMO" && Build.MODEL == "F-01H") {
fetchDeviceBattery()?.let { battery ->
if (battery <= 10.0) {
Toast.makeText(
this,
resources.getString(R.string.andpad_camera_low_battery),
Toast.LENGTH_LONG
).show()
cancelFinish()
}
}
}
}
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
困ったらIssueTrackerに報告すると回答してくれる
アドバイス通り端末固有の処理を書いた。
(※ハードコードはよく無いので今後修正予定)
private fun checkButtery() {
if (Build.BRAND == "DOCOMO" && Build.MODEL == "F-01H") {
fetchDeviceBattery()?.let { battery ->
if (battery <= 10.0) {
Toast.makeText(
this,
resources.getString(R.string.andpad_camera_low_battery),
Toast.LENGTH_LONG
).show()
cancelFinish()
}
}
}
}
1. 端末固有の問題があったらIssueTrackerに報告するとCameraXの改善に繋がるかもしれない
2. すぐ返事がきて対応方法を教えてくれるので諦めずに報告すると良いかも
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
QAで利用するデバイス
Confidential
● 会社のAndroid端末を総動員
● 最低サポートOS(Android6)で動作確認
● 当時最新のAndroid12で動作確認
(※Remote Test Kitはカメラ機能が使えない)
良い方法があれば教えて欲しいです。
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
慎重に進めてきたがそれでもリリースは不安...😭
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
アプリバージョンを限定したリリース
Confidential
5.36.0 5.37.0
(最新アプリバージョン)
新カメラをユーザに表示 旧カメラをユーザに表示
PMの方がアドバイス
RemoteConfigを以下のように設定
最新バージョンの1つ前でCameraX版をONに設定
最新バージョンでCameraXをOFFに設定
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
アプリバージョンを限定したリリース
Confidential
5.36.0 5.37.0
(最新アプリバージョン)
新カメラをユーザに表示 旧カメラをユーザに表示
問題があった場合はユーザにアップデートをお願いする
(※CXチーム(ANDPADのお客様窓口)と協力)
PMの方がアドバイス
RemoteConfigを以下のように設定
最新バージョンの1つ前でCameraX版をONに設定
最新バージョンでCameraXをOFFに設定
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
アプリバージョンを限定したリリース
Confidential
5.36.0 5.37.0
(最新アプリバージョン)
新カメラをユーザに表示 旧カメラをユーザに表示
問題があった場合はユーザにアップデートをお願いする
(※CXチーム(ANDPADのお客様窓口)と協力)
PMの方がアドバイス
RemoteConfigを以下のように設定
最新バージョンの1つ前でCameraX版をONに設定
最新バージョンでCameraXをOFFに設定
5.36.0でのCamera関係のCrashlyticsを収集して様子を見る
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
アプリバージョンを限定したリリース
Confidential
5.36.0 5.37.0
(最新アプリバージョン)
新カメラをユーザに表示 旧カメラをユーザに表示
問題があった場合はユーザにアップデートをお願いする
(※CXチーム(ANDPADのお客様窓口)と協力)
PMの方がアドバイス
RemoteConfigを以下のように設定
最新バージョンの1つ前でCameraX版をONに設定
最新バージョンでCameraXをOFFに設定
5.36.0でのCamera関係のCrashlyticsを収集して様子を見る
今のところ障害なし!変なクラッシュも上がってない!😁
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
まとめ
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
まとめ
Confidential
● CameraXへのライブラリ移行の進め方を共有
1. Instrumentalテストでノンデグ確認
2. RemoteConfigで切り戻し可能にする
3. 古い端末だと一部機能が使えないことに注意
4. 端末固有の対応も必要
5. 困ったらIssueTrackerに報告するとアドバイスがもらえる
6. QA時のデバイスの用意
7. アプリバージョンにより公開範囲を限定
Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止
後夜祭 DroidKaigi2022
株式会社 アンドパッド

More Related Content

Similar to CameraXへの安全なライブラリ移行方法.pptx

【A2iセミナー】できることからやってみたスマートフォン・Twitterのアクセス解析
【A2iセミナー】できることからやってみたスマートフォン・Twitterのアクセス解析【A2iセミナー】できることからやってみたスマートフォン・Twitterのアクセス解析
【A2iセミナー】できることからやってみたスマートフォン・Twitterのアクセス解析Masaki Saito
 
これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用Masaru Kurahayashi
 
AWS Black Belt Online Seminar 2018 Amazon Sumerian
AWS Black Belt Online Seminar 2018 Amazon SumerianAWS Black Belt Online Seminar 2018 Amazon Sumerian
AWS Black Belt Online Seminar 2018 Amazon SumerianAmazon Web Services Japan
 
アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~
アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~ アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~
アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~ CYBIRD Co.,Ltd.
 
Interop tokyo 2013 nc 04
Interop tokyo 2013 nc 04Interop tokyo 2013 nc 04
Interop tokyo 2013 nc 04亮介 山口
 
手軽に始める農業IoT みどりクラウドが実現したもの(ふくしまIo tビジネス共創ラボ )
手軽に始める農業IoT みどりクラウドが実現したもの(ふくしまIo tビジネス共創ラボ )手軽に始める農業IoT みどりクラウドが実現したもの(ふくしまIo tビジネス共創ラボ )
手軽に始める農業IoT みどりクラウドが実現したもの(ふくしまIo tビジネス共創ラボ )Kohei Mochida
 
JAWS-UG 初心者支部 #31 監視編 サーバーのモニタリングの基本を学ぼう
JAWS-UG 初心者支部 #31 監視編 サーバーのモニタリングの基本を学ぼうJAWS-UG 初心者支部 #31 監視編 サーバーのモニタリングの基本を学ぼう
JAWS-UG 初心者支部 #31 監視編 サーバーのモニタリングの基本を学ぼうHiroki Uchida
 
Why ANDPAD commit Ruby and RubyKaigi?
Why ANDPAD commit Ruby and RubyKaigi?Why ANDPAD commit Ruby and RubyKaigi?
Why ANDPAD commit Ruby and RubyKaigi?Hiroshi SHIBATA
 
How to create android's c to c EC APP !
How to create android's c to c EC APP !How to create android's c to c EC APP !
How to create android's c to c EC APP !Saiki Iijima
 
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話和也 大木
 
DRONE BORG 第一回ドローンビジネス勉強会資料
DRONE BORG 第一回ドローンビジネス勉強会資料DRONE BORG 第一回ドローンビジネス勉強会資料
DRONE BORG 第一回ドローンビジネス勉強会資料DRONE BORG
 
JAWS DAYS 2019 Amazon Sumerian によるユーザーインターフェイスへのアプローチ
JAWS DAYS 2019 Amazon Sumerian によるユーザーインターフェイスへのアプローチJAWS DAYS 2019 Amazon Sumerian によるユーザーインターフェイスへのアプローチ
JAWS DAYS 2019 Amazon Sumerian によるユーザーインターフェイスへのアプローチYuzo Oh’i
 
ゼロトラスト、やってみた。~そこにCOVID-19がやってきた~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ゼロトラスト、やってみた。~そこにCOVID-19がやってきた~(NTTデータ テクノロジーカンファレンス 2020 発表資料)ゼロトラスト、やってみた。~そこにCOVID-19がやってきた~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ゼロトラスト、やってみた。~そこにCOVID-19がやってきた~(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechconアバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechconDeNA
 
【HackerWars 】ニフティクラウドmobile backend
【HackerWars 】ニフティクラウドmobile backend【HackerWars 】ニフティクラウドmobile backend
【HackerWars 】ニフティクラウドmobile backend史識 川原
 
NVIDIA Jetson導入事例ご紹介
NVIDIA Jetson導入事例ご紹介NVIDIA Jetson導入事例ご紹介
NVIDIA Jetson導入事例ご紹介NVIDIA Japan
 
クラウドサービスの活用〜IDCFクラウド〜
クラウドサービスの活用〜IDCFクラウド〜クラウドサービスの活用〜IDCFクラウド〜
クラウドサービスの活用〜IDCFクラウド〜IDC Frontier
 

Similar to CameraXへの安全なライブラリ移行方法.pptx (20)

NVIDIA 入門
NVIDIA 入門NVIDIA 入門
NVIDIA 入門
 
【A2iセミナー】できることからやってみたスマートフォン・Twitterのアクセス解析
【A2iセミナー】できることからやってみたスマートフォン・Twitterのアクセス解析【A2iセミナー】できることからやってみたスマートフォン・Twitterのアクセス解析
【A2iセミナー】できることからやってみたスマートフォン・Twitterのアクセス解析
 
これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用
 
Cocos2d x talks
Cocos2d x talksCocos2d x talks
Cocos2d x talks
 
AWS Black Belt Online Seminar 2018 Amazon Sumerian
AWS Black Belt Online Seminar 2018 Amazon SumerianAWS Black Belt Online Seminar 2018 Amazon Sumerian
AWS Black Belt Online Seminar 2018 Amazon Sumerian
 
アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~
アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~ アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~
アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~
 
Interop tokyo 2013 nc 04
Interop tokyo 2013 nc 04Interop tokyo 2013 nc 04
Interop tokyo 2013 nc 04
 
手軽に始める農業IoT みどりクラウドが実現したもの(ふくしまIo tビジネス共創ラボ )
手軽に始める農業IoT みどりクラウドが実現したもの(ふくしまIo tビジネス共創ラボ )手軽に始める農業IoT みどりクラウドが実現したもの(ふくしまIo tビジネス共創ラボ )
手軽に始める農業IoT みどりクラウドが実現したもの(ふくしまIo tビジネス共創ラボ )
 
JAWS-UG 初心者支部 #31 監視編 サーバーのモニタリングの基本を学ぼう
JAWS-UG 初心者支部 #31 監視編 サーバーのモニタリングの基本を学ぼうJAWS-UG 初心者支部 #31 監視編 サーバーのモニタリングの基本を学ぼう
JAWS-UG 初心者支部 #31 監視編 サーバーのモニタリングの基本を学ぼう
 
Why ANDPAD commit Ruby and RubyKaigi?
Why ANDPAD commit Ruby and RubyKaigi?Why ANDPAD commit Ruby and RubyKaigi?
Why ANDPAD commit Ruby and RubyKaigi?
 
How to create android's c to c EC APP !
How to create android's c to c EC APP !How to create android's c to c EC APP !
How to create android's c to c EC APP !
 
Accel series 2019_spring
Accel series 2019_springAccel series 2019_spring
Accel series 2019_spring
 
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
 
DRONE BORG 第一回ドローンビジネス勉強会資料
DRONE BORG 第一回ドローンビジネス勉強会資料DRONE BORG 第一回ドローンビジネス勉強会資料
DRONE BORG 第一回ドローンビジネス勉強会資料
 
JAWS DAYS 2019 Amazon Sumerian によるユーザーインターフェイスへのアプローチ
JAWS DAYS 2019 Amazon Sumerian によるユーザーインターフェイスへのアプローチJAWS DAYS 2019 Amazon Sumerian によるユーザーインターフェイスへのアプローチ
JAWS DAYS 2019 Amazon Sumerian によるユーザーインターフェイスへのアプローチ
 
ゼロトラスト、やってみた。~そこにCOVID-19がやってきた~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ゼロトラスト、やってみた。~そこにCOVID-19がやってきた~(NTTデータ テクノロジーカンファレンス 2020 発表資料)ゼロトラスト、やってみた。~そこにCOVID-19がやってきた~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ゼロトラスト、やってみた。~そこにCOVID-19がやってきた~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechconアバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
 
【HackerWars 】ニフティクラウドmobile backend
【HackerWars 】ニフティクラウドmobile backend【HackerWars 】ニフティクラウドmobile backend
【HackerWars 】ニフティクラウドmobile backend
 
NVIDIA Jetson導入事例ご紹介
NVIDIA Jetson導入事例ご紹介NVIDIA Jetson導入事例ご紹介
NVIDIA Jetson導入事例ご紹介
 
クラウドサービスの活用〜IDCFクラウド〜
クラウドサービスの活用〜IDCFクラウド〜クラウドサービスの活用〜IDCFクラウド〜
クラウドサービスの活用〜IDCFクラウド〜
 

Recently uploaded

2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptxyassun7010
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptxssuserbefd24
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...atsushi061452
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルCRI Japan, Inc.
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)NTT DATA Technology & Innovation
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matchingharmonylab
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizesatsushi061452
 

Recently uploaded (14)

2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 

CameraXへの安全なライブラリ移行方法.pptx

  • 1. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 株式会社アンドパッド 開発本部 SWE 松川 知憲 CameraXへの安全なライブラリ移行手順 2022.11.8 後夜祭DroidKaigi2022
  • 2. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 自己紹介 松川 知憲 / Tomonori Matsukawa Confidential 施工管理アプリのAndroid担当 ・Twitter: @_se_tomo ・GitHub: @mtkw0127 ・株式会社アンドパッド
  • 3. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 CameraXについて話す背景 Confidential
  • 4. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 CameraXについて話す背景 Confidential ある端末でANDPADアプリのカメラが起動しない不具合が発生
  • 5. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 CameraXについて話す背景 Confidential ある端末でANDPADアプリのカメラが起動しない不具合が発生 CameraXにライブラリを移行すれば解決することがわかった
  • 6. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 CameraXについて話す背景 Confidential ある端末でANDPADアプリのカメラが起動しない不具合が発生 CameraXにライブラリを移行すれば解決することがわかった Android未経験の松川が入社してきた
  • 7. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 CameraXについて話す背景 Confidential ある端末でANDPADアプリのカメラが起動しない不具合が発生 CameraXにライブラリを移行すれば解決することがわかった Android未経験の松川が入社してきた CameraXへの移行作業に松川をアサイン
  • 8. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 CameraXについて話す背景 Confidential ある端末でANDPADアプリのカメラが起動しない不具合が発生 CameraXにライブラリを移行すれば解決することがわかった Android未経験の松川が入社してきた CameraXへの移行作業に松川をアサイン 他のエンジニアやPMの協力があり安全に移行できた...!!!
  • 9. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 発表の目的 Confidential カメラライブラリ移行の際の参考にしてもらう ● 開発での注意点(Androidいろんな端末ありすぎ問題な ど) ● QA ● リリース方法
  • 10. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 発表の目的 Confidential カメラライブラリ移行の際の参考にしてもらう CameraXの詳しい説明はDroidKaigiの以下のセッションを見て下さい! 「Camera Xライブラリの魅力と最新機能を紐解く」 ※実装の詳細に関しては触れない ● 開発での注意点(Androidいろんな端末ありすぎ問題な ど) ● QA ● リリース方法
  • 11. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 目次 Confidential 1. CameraXとは 2. ANDPADにおけるカメラ 3. 移行作業(開発面/リリース面)
  • 12. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 CameraXとは 📸
  • 13. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 CameraXとは📸 Confidential Jetpackのカメラライブラリ 最新バージョン1.2.0-beta02(2022/10/28時点) (※ targetSdkを33に上げる必要あり) 特徴 1. 簡単にカメラ機能をアプリに追加可能 2. Camera2より少ないコードで実装可能 3. ライフサイクルを考慮したカメラ起動可能 4. 色々なデバイスでテスト済み(Android5.0以降をサポート)
  • 14. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 学習方法 Confidential https://developer.android.com/codelabs/camerax-getting-started#0 ■ CameraXのコードラボ https://github.com/SimpleMobileTools/Simple-Camera ■ 参考リポジトリ https://developer.android.com/training/camerax?hl=ja ■ ガイド Camera Xライブラリの魅力と最新機能を紐解く(https://www.youtube.com/watch?v=AisOFRNGPGw) ■ DroidKaigi2022での発表 CameraX × ML Kit でパスポートOCR機能を実装(https://www.youtube.com/watch?v=SBu2J8blfac)
  • 15. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 ANDPADにおけるカメラ📸
  • 16. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 ANDPADでのカメラ Confidential 撮影 黒板と重ね合わせた 写真を撮影可能
  • 17. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 ANDPADでのカメラ移行前後 Confidential ライブラリ移行なので 移行前後で動作に変更なし 移行前 Fotoapparat 移行後 CameraX
  • 18. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 ANDPADでのカメラ(カメラを設定するUI) Confidential フラッシュ ON/OFF/AUTO切り替え 明るさの取り込み量調整 ズーム切り替え 撮影 背面/内カメラとの切り替え スライダorボタンのUIを 介してカメラの設定を変更
  • 19. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 移行作業(開発/テスト/リリース)🚶
  • 20. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 旧カメラと新カメラを共存させる Confidential (旧)CameraActivity Fotoapparat (新)CameraXActivity CameraX カメラは重要機能のため 不具合がでた場合に影響範囲が広い 懸念点 新旧版のカメラライブラリを共存させて リリースなしで切り戻せるようにする 対策
  • 21. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 旧カメラと新カメラを共存させる Confidential if (useCameraX) { val intent = CameraXActivity.createIntent(context, options, setting) cameraLauncher.launch(intent) } else { val intent = CameraActivity.createIntent(context, options, setting) cameraLauncher.launch(intent) } Firebase RemoteConfigを利用し Booleanの値をリリースなしで変更できるようにし切り替え
  • 22. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 InstrumentalTestでノンデグ確認しながらの開発 Confidential ● CameraActivityとCameraXActivityは同じUI(xml内のidが同じ) ● CameraActivityのInstrumentalTestをCameraXActivityにも適用できた 例) 撮影ボタン押下後に 右上の撮影枚数が「1」になる
  • 23. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 いろんな端末があることに注意する Confidential ● インカメラが無い ● フラッシュ機能がない ● Autoフラッシュ機能がない ● インカメラにズーム機能がない val canUserBackCamera = processCameraProvider.hasCamera(CameraSelector.DEFAULT_FRONT_CAMERA) インカメ存在チェック val canUserBackCamera = camera.cameraInfo.hasFlashUnit() フラッシュ存在チェック
  • 24. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 端末固有の問題も発生する Confidential 充電が10%以下でカメラを起動するとクラッシュする(arrowsF01H) cameraXViewModel.camera?.cameraInfo?.cameraState?.observe(this) { cameraState -> cameraState.error?.let { cameraErrorState -> cameraErrorState.cause?.let { th -> errorHandle(th) } } } 以下でも例外をハンドリングできない
  • 25. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 困ったらIssueTrackerに報告すると回答してくれる arrowsF-01Hで充電が10%以下の状態でCameraXでカメラを起動するとクラッシュする。 例外もcatchできない 報告内容
  • 26. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 困ったらIssueTrackerに報告すると回答してくれる arrowsF-01Hで充電が10%以下の状態でCameraXでカメラを起動するとクラッシュする。 例外もcatchできない 報告内容 アドバイスをもらえた CameraXでも吸収できないFatalExceptionのため、CameraXには取り込めない デバイスのブランド名と端末のバッテリ残量を見て制御してはどうか?
  • 27. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 困ったらIssueTrackerに報告すると回答してくれる アドバイス通り端末固有の処理を書いた。 (※ハードコードはよく無いので今後修正予定) private fun checkButtery() { if (Build.BRAND == "DOCOMO" && Build.MODEL == "F-01H") { fetchDeviceBattery()?.let { battery -> if (battery <= 10.0) { Toast.makeText( this, resources.getString(R.string.andpad_camera_low_battery), Toast.LENGTH_LONG ).show() cancelFinish() } } } }
  • 28. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 困ったらIssueTrackerに報告すると回答してくれる アドバイス通り端末固有の処理を書いた。 (※ハードコードはよく無いので今後修正予定) private fun checkButtery() { if (Build.BRAND == "DOCOMO" && Build.MODEL == "F-01H") { fetchDeviceBattery()?.let { battery -> if (battery <= 10.0) { Toast.makeText( this, resources.getString(R.string.andpad_camera_low_battery), Toast.LENGTH_LONG ).show() cancelFinish() } } } } 1. 端末固有の問題があったらIssueTrackerに報告するとCameraXの改善に繋がるかもしれない 2. すぐ返事がきて対応方法を教えてくれるので諦めずに報告すると良いかも
  • 29. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 QAで利用するデバイス Confidential ● 会社のAndroid端末を総動員 ● 最低サポートOS(Android6)で動作確認 ● 当時最新のAndroid12で動作確認 (※Remote Test Kitはカメラ機能が使えない) 良い方法があれば教えて欲しいです。
  • 30. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 慎重に進めてきたがそれでもリリースは不安...😭
  • 31. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 アプリバージョンを限定したリリース Confidential 5.36.0 5.37.0 (最新アプリバージョン) 新カメラをユーザに表示 旧カメラをユーザに表示 PMの方がアドバイス RemoteConfigを以下のように設定 最新バージョンの1つ前でCameraX版をONに設定 最新バージョンでCameraXをOFFに設定
  • 32. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 アプリバージョンを限定したリリース Confidential 5.36.0 5.37.0 (最新アプリバージョン) 新カメラをユーザに表示 旧カメラをユーザに表示 問題があった場合はユーザにアップデートをお願いする (※CXチーム(ANDPADのお客様窓口)と協力) PMの方がアドバイス RemoteConfigを以下のように設定 最新バージョンの1つ前でCameraX版をONに設定 最新バージョンでCameraXをOFFに設定
  • 33. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 アプリバージョンを限定したリリース Confidential 5.36.0 5.37.0 (最新アプリバージョン) 新カメラをユーザに表示 旧カメラをユーザに表示 問題があった場合はユーザにアップデートをお願いする (※CXチーム(ANDPADのお客様窓口)と協力) PMの方がアドバイス RemoteConfigを以下のように設定 最新バージョンの1つ前でCameraX版をONに設定 最新バージョンでCameraXをOFFに設定 5.36.0でのCamera関係のCrashlyticsを収集して様子を見る
  • 34. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 アプリバージョンを限定したリリース Confidential 5.36.0 5.37.0 (最新アプリバージョン) 新カメラをユーザに表示 旧カメラをユーザに表示 問題があった場合はユーザにアップデートをお願いする (※CXチーム(ANDPADのお客様窓口)と協力) PMの方がアドバイス RemoteConfigを以下のように設定 最新バージョンの1つ前でCameraX版をONに設定 最新バージョンでCameraXをOFFに設定 5.36.0でのCamera関係のCrashlyticsを収集して様子を見る 今のところ障害なし!変なクラッシュも上がってない!😁
  • 35. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 まとめ
  • 36. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 まとめ Confidential ● CameraXへのライブラリ移行の進め方を共有 1. Instrumentalテストでノンデグ確認 2. RemoteConfigで切り戻し可能にする 3. 古い端末だと一部機能が使えないことに注意 4. 端末固有の対応も必要 5. 困ったらIssueTrackerに報告するとアドバイスがもらえる 6. QA時のデバイスの用意 7. アプリバージョンにより公開範囲を限定
  • 37. Copyright © 2020 Present ANDPAD Inc. This information is confidential and was prepared by ANDPAD Inc. for the use of our client. It is not to be relied on by and 3rd party. Proprietary & Confidential 無断転載・無断複製の禁止 後夜祭 DroidKaigi2022 株式会社 アンドパッド