Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
CameraXとCompose てべすてん 2024/03/04
Slide 2
Slide 2 text
自己紹介 てべすてん ● 専門学校 3年生 ● 4月からAndroidエンジニア ● Android歴 1年半 ● 趣味: 音楽鑑賞
Slide 3
Slide 3 text
CameraX
Slide 4
Slide 4 text
CameraXとは? https://developer.android.com/codelabs/camerax-getting-started?hl=ja
Slide 5
Slide 5 text
CameraXのアーキテクチャ 主なコンポーネント ● ユースケース ● PreviewView
Slide 6
Slide 6 text
CameraXのユースケース ● 利用したいカメラの機能 ● 現状は以下の4つが用意されている ○ プレビュー ○ 画像解析 ○ 画像キャプチャ ○ 動画キャプチャ ● ライフサイクルにユースケースをbindして使う more: https://developer.android.com/media/camera/camerax/architecture?hl=ja
Slide 7
Slide 7 text
CameraXのPreviewView ● PreviewView ○ プレビューユースケースを画面に表示するView
Slide 8
Slide 8 text
CameraXのつらみ
Slide 9
Slide 9 text
CameraXのつらみ ❌ Javaで書かれてる(っぽい) ● kotlinらしく書けない ● coroutineで書けない ❌ Composeに対応していない ● PreviewViewは Android Viewのみ... Composeのプロジェクトでは いい感じにラップする必要がある
Slide 10
Slide 10 text
Composeで 頑張って作ってみる
Slide 11
Slide 11 text
Composeで頑張って使ってみる
Slide 12
Slide 12 text
Composeで頑張って使ってみる
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
❌ CameraControlがFatになりがち ○ かといって意外と分離がむずかちい🥺 作ってみたけど...
Slide 16
Slide 16 text
❌ CameraControlと CameraPreviewが密結合 作ってみたけど...
Slide 17
Slide 17 text
❌ コールバック... 作ってみたけど...
Slide 18
Slide 18 text
CameraXをComposeでも 使いやすくしてほしい
Slide 19
Slide 19 text
ラッパーライブラリに まとめてみました (ここから宣伝ゾーン)
Slide 20
Slide 20 text
camerax-compose
Slide 21
Slide 21 text
☺ PreviewViewをラップしたCameraPreview Composable ☺ ユースケースをいい感じにラップしたUseCase helper ☺ ImageCapture.takePictureをいい感じにラップ camerax-composeの機能
Slide 22
Slide 22 text
CameraPreview Composable ⭕ onBindでユースケースと PreviewViewが疎結合に
Slide 23
Slide 23 text
UseCase helper
Slide 24
Slide 24 text
⭕ 各ユースケースの宣言が簡素に ⭕ previewUseCase() は自動で setSurfaceProviderしてくれる ● 同様にデフォルトでつけておいて欲しい機能をライブラリ側 から入れやすい UseCase helper
Slide 25
Slide 25 text
ImageCapture.takePictureのラップ
Slide 26
Slide 26 text
ImageCapture.takePictureのラップ
Slide 27
Slide 27 text
● ドキュメントの整備 ● Permission周りのヘルパー ● バージョン運用 ○ compose, cameraxとの相互運用 大変そう TODO コントリビュートしてくれてもいいんだぜ?(ボソッ
Slide 28
Slide 28 text
Thank you for listening !