DroidKaigi 2016でCamera2 APIについて発表した話
ひつじです。
DroidKaigi 2016に「カメラアプリはじめの一歩」というタイトルで登壇しました。
Android 5.0以降からつかえるCamera2 APIがテーマです*1
なぜCamera2 APIを選んだの?
Camera2 APIの特徴は自由度の高さです(その分、難しいけど)。
新技術にありがちだけどプラットフォームの普及が進まない→なかなか利用されない→技術情報が少ないまま→利用が進まない→やっぱり難しいぞ!っていう不遇な状況をなんとかするため、まとまった技術情報として提供したい、と去年から考えていたのですがDroidKaigiで、ようやく結実しました*2。
サンプルコードもあるよ
資料で使ったサンプルは以下のリポジトリで公開してます
カメラアプリはじめの一歩
カメラ機能の要件からはじまり、Camera2 APIの解説、カメラのステートマシン例、プレビューや撮影シーケンスの説明などカメラアプリを作る上で困りがちなところを中心にまとめています。
Camera2にまつわる話題のなかでもスタンダードなものを議論の中心におきました。APIの解説に集中してもよかったのですが、利用の前提となるアプリケーションでの機能要件(とくにCamera1 APIやIntentとの使い分け)やハードウェア制御など普段なかなか気にしない部分についても触れることでただのHowToではなく、全体を理解できるように気をつけました(せっかくなので技術的背景もふくめて楽しんでもらいたかった)。
なお、Camera2 APIがカンタンだと言うつもりは毛頭なく、難しいものだとおもって知識を整理してチャレンジするとなんとか登れるもんだよ、ということが伝わったらいいな、とおもって構成を考えてます。リクエスト、セッション、パイプラインというCamera2用語を知っているだけでもソースコードの読みやすさは段違いに向上します。
当日の感想
現在、DroidKaigiの運営スタッフさんが順次動画を公開してくれてます。解説の際にパラメータの説明で列挙体といった気がしてるのですが、実際にはstatic intで実装されているので訂正します(録画を見る場合は注意してください)。
動画がアップされたらここに埋め込む予定なので詳しくはそれを見てくれたらわかるんだけど、新しい技術について話せる場があるっていうのはすごく楽しかったです。FAQも含めてもっとディスカッションできたら良かったなぁ、と思うセッションでした*3。
おつかれさまでした!
Software DesignにソラコムさんのIoT SIMのSORACOM Airがオマケでつくかもしれないという話
本誌でもSIMカード付録やりたいなー。やりたいなー。問い合わせ待ってます!――などとアピール。ITに詳しく、そしてやる気のある読者をたくさん抱えておりますのでぜひ(誰に言っているのか?(w。
— SoftwareDesign (@gihyosd) 2016, 1月 7
IoT用のSIMもよいなぁ。付録。
— SoftwareDesign (@gihyosd) 2016, 1月 7
ここまで見て
これはソラコムの玉川さん案件では。。。 @KenTamagawa https://t.co/k0HkPrg451
— mhidaka@3日目東シ58aでした (@mhidaka) 2016, 1月 7
こうしたら
@gihyosd やりましょう!(SIM付録)
— 玉川憲 (@KenTamagawa) 2016, 1月 7
こうなった。
メンションからここまで5分強。
IoTのSIMっていったらソラコムさんだよなー、とおもって雑にメンションを送ったところ即決できまるのベンチャーっぽくて大好き。
— mhidaka@3日目東シ58aでした (@mhidaka) 2016, 1月 7
現場からは以上です
気乗りしない作業を効率よくすすめる方法
あれやらなきゃなー、と思いながらズルズルと着手を先延ばしにすることありませんか?僕はあります。特に単純作業に多いです。
単純作業つらい問題
逆に難易度の高い問題は壁が高いのがわかっているので、やる気が出やすい。圧倒的に倒してやるぞ、という気持ちが沸き起こって身構える感じ。なので手をつけやすいのだけど単純作業のほうはダメ。実際、着手するとそんなことはないんですが、手前にハードルがある。
というわけで年末年始にかけて工夫してみたのだけど、どうやら次の方法で効果が出た。
- ルーティーン化する
- ToDoを用意する
ルーティーンは単純作業は朝やろう、と決めて最初に作業する。それだけでも随分かわって作業するぞ!という気持ちになる。きっかけがあると全然やりやすい。
ToDoを用意するは、ルーティーン化しただけでは迷うことが多いので、寝るまえに「あれとこれがあったな、明日の朝やろ」みたいな感じで問題を先送りすると気持よく寝れる。
寝てリセットするという姿勢
この「気持ちよく寝る」っていうのがとても大事で気の重さがなくなって起きた時に晴れやかになる。僕の場合、睡眠時間に依存しないみたいで問題を先送りできるなら気持よく寝れている。「あー、やらなきゃいけなかったのにやってなかった・・・」っていう気持ちより「さー、起きて今からやるぞ!」のほうが精神が安定する。
ToDoリストをみて上から順番にやっていく。手が動き出せば効率良くなるループにはいりやすい。集中すると全部やっても30分もかからないことがおおい。
ちなみに普段は個人の課題管理にToDoリストはつかってない。たまに気になったことをGoogle Keepにいれてるけど、あんまり見返さない。基本は脳内で組み立ててるので些事を忘れてしまって後になって「あー、あれしたかったのに」はまれによく起きている(が、大事故にならないので気にしてない)。
今年の抱負
今年は脳内のタスクスケジューラの並列度を上げたい(結果的に浮いたリソースでいろんなことをしたい)。今までのやり方だと効率化の上限が見えてきたので、もう少し工夫してアレコレと他人の良い所を取り入れたい。
周りにはエンジニアが沢山いるので学ぶところは多い、、、はず。アドバイスをもらって色々ためしてみたい。挑戦するぞ!