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
140
CameraXとCompose
Jetpack ComposeでCameraXを扱うためのあれこれについて発表しました。
てべすてん
March 04, 2024
Tweet
Share
More Decks by てべすてん
See All by てべすてん
Kotlin の煩雑な データコピーを どうにかする
tbsten
0
64
ComposeでWebアプリを作る技術
tbsten
0
190
脱 Material3 ?! lumo ui の紹介
tbsten
0
120
衝撃を受けた OSS Androidアプリ
tbsten
0
190
Featured
See All Featured
Visualization
eitanlees
147
16k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
A Modern Web Designer's Workflow
chriscoyier
696
190k
How GitHub (no longer) Works
holman
315
140k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
How to Ace a Technical Interview
jacobian
279
23k
Automating Front-end Workflow
addyosmani
1370
200k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
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 !