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
0
130
CameraXとCompose
Jetpack ComposeでCameraXを扱うためのあれこれについて発表しました。
てべすてん
March 04, 2024
Tweet
Share
More Decks by てべすてん
See All by てべすてん
ComposeでWebアプリを作る技術
tbsten
0
160
脱 Material3 ?! lumo ui の紹介
tbsten
0
110
衝撃を受けた OSS Androidアプリ
tbsten
0
190
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Site-Speed That Sticks
csswizardry
10
660
Agile that works and the tools we love
rasmusluckow
329
21k
Become a Pro
speakerdeck
PRO
28
5.4k
Visualization
eitanlees
146
16k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Unsuck your backbone
ammeep
671
58k
GitHub's CSS Performance
jonrohan
1031
460k
How to Ace a Technical Interview
jacobian
277
23k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
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 !