ひつじのにっき

mhidakaのにっきです。たまに長文、気が向いたとき更新。

DroidKaigi 2016でCamera2 APIについて発表した話

ひつじです。

DroidKaigi 2016に「カメラアプリはじめの一歩」というタイトルで登壇しました。

Android 5.0以降からつかえるCamera2 APIがテーマです*1

なぜCamera2 APIを選んだの?

Camera2 APIの特徴は自由度の高さです(その分、難しいけど)。

新技術にありがちだけどプラットフォームの普及が進まない→なかなか利用されない→技術情報が少ないまま→利用が進まない→やっぱり難しいぞ!っていう不遇な状況をなんとかするため、まとまった技術情報として提供したい、と去年から考えていたのですがDroidKaigiで、ようやく結実しました*2。

サンプルコードもあるよ

資料で使ったサンプルは以下のリポジトリで公開してます

github.com

カメラアプリはじめの一歩

カメラ機能の要件からはじまり、Camera2 APIの解説、カメラのステートマシン例、プレビューや撮影シーケンスの説明などカメラアプリを作る上で困りがちなところを中心にまとめています。

Camera2にまつわる話題のなかでもスタンダードなものを議論の中心におきました。APIの解説に集中してもよかったのですが、利用の前提となるアプリケーションでの機能要件(とくにCamera1 APIやIntentとの使い分け)やハードウェア制御など普段なかなか気にしない部分についても触れることでただのHowToではなく、全体を理解できるように気をつけました(せっかくなので技術的背景もふくめて楽しんでもらいたかった)。

なお、Camera2 APIがカンタンだと言うつもりは毛頭なく、難しいものだとおもって知識を整理してチャレンジするとなんとか登れるもんだよ、ということが伝わったらいいな、とおもって構成を考えてます。リクエスト、セッション、パイプラインというCamera2用語を知っているだけでもソースコードの読みやすさは段違いに向上します。

当日の感想

現在、DroidKaigiの運営スタッフさんが順次動画を公開してくれてます。解説の際にパラメータの説明で列挙体といった気がしてるのですが、実際にはstatic intで実装されているので訂正します(録画を見る場合は注意してください)。

www.youtube.com

動画がアップされたらここに埋め込む予定なので詳しくはそれを見てくれたらわかるんだけど、新しい技術について話せる場があるっていうのはすごく楽しかったです。FAQも含めてもっとディスカッションできたら良かったなぁ、と思うセッションでした*3。

 

おつかれさまでした!

 

 

*1:ひつじは主催者でもあるんだけど今回はスピーカーの立場でのblogged!

*2:去年の夏コミの原稿をCamera2にしたばっかりに落とした経緯があるぞ!

*3:たぶん無限に会話する