Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CameraXとCompose
Search
てべすてん
March 04, 2024
170
0
Share
CameraXとCompose
Jetpack ComposeでCameraXを扱うためのあれこれについて発表しました。
てべすてん
March 04, 2024
More Decks by てべすてん
See All by てべすてん
ててべんす独演会〜Flowの全てを語ります〜
tbsten
1
290
Kotlin の煩雑な データコピーを どうにかする
tbsten
0
130
ComposeでWebアプリを作る技術
tbsten
0
280
脱 Material3 ?! lumo ui の紹介
tbsten
0
170
衝撃を受けた OSS Androidアプリ
tbsten
0
220
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.6k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
130
Heart Work Chapter 1 - Part 1
lfama
PRO
6
35k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.3k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
190
BBQ
matthewcrist
89
10k
Docker and Python
trallard
47
3.8k
First, design no harm
axbom
PRO
2
1.2k
The browser strikes back
jonoalderson
0
1k
GitHub's CSS Performance
jonrohan
1032
470k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
440
Transcript
CameraXとCompose てべすてん 2024/03/04
自己紹介 てべすてん • 専門学校 3年生 • 4月からAndroidエンジニア • Android歴 1年半
• 趣味: 音楽鑑賞
CameraX
CameraXとは? https://developer.android.com/codelabs/camerax-getting-started?hl=ja
CameraXのアーキテクチャ 主なコンポーネント • ユースケース • PreviewView
CameraXのユースケース • 利用したいカメラの機能 • 現状は以下の4つが用意されている ◦ プレビュー ◦ 画像解析 ◦
画像キャプチャ ◦ 動画キャプチャ • ライフサイクルにユースケースをbindして使う more: https://developer.android.com/media/camera/camerax/architecture?hl=ja
CameraXのPreviewView • PreviewView ◦ プレビューユースケースを画面に表示するView
CameraXのつらみ
CameraXのつらみ ❌ Javaで書かれてる(っぽい) • kotlinらしく書けない • coroutineで書けない ❌ Composeに対応していない •
PreviewViewは Android Viewのみ... Composeのプロジェクトでは いい感じにラップする必要がある
Composeで 頑張って作ってみる
Composeで頑張って使ってみる
Composeで頑張って使ってみる
None
None
❌ CameraControlがFatになりがち ◦ かといって意外と分離がむずかちい🥺 作ってみたけど...
❌ CameraControlと CameraPreviewが密結合 作ってみたけど...
❌ コールバック... 作ってみたけど...
CameraXをComposeでも 使いやすくしてほしい
ラッパーライブラリに まとめてみました (ここから宣伝ゾーン)
camerax-compose
☺ PreviewViewをラップしたCameraPreview Composable ☺ ユースケースをいい感じにラップしたUseCase helper ☺ ImageCapture.takePictureをいい感じにラップ camerax-composeの機能
CameraPreview Composable ⭕ onBindでユースケースと PreviewViewが疎結合に
UseCase helper
⭕ 各ユースケースの宣言が簡素に ⭕ previewUseCase() は自動で setSurfaceProviderしてくれる • 同様にデフォルトでつけておいて欲しい機能をライブラリ側 から入れやすい UseCase
helper
ImageCapture.takePictureのラップ
ImageCapture.takePictureのラップ
• ドキュメントの整備 • Permission周りのヘルパー • バージョン運用 ◦ compose, cameraxとの相互運用 大変そう
TODO コントリビュートしてくれてもいいんだぜ?(ボソッ
Thank you for listening !