i will blog
というわけで書いています。3回目のiOSDC、オフラインでの参加は2回目でした。day0〜day2まで3日間いました!
Optional<Bar>がよかった
会場にあったバー「Optional<Bar>」がとてもよかったです!
3日間、それぞれ違うカクテルが提供されていました。

写真のとおり、底のほうが濃い青緑で、上に向かってすっと色が抜けていくグラデーション。しっかり炭酸。カップに刷られたロゴが基板のパターンになっていて、すごい…!! (語彙力)
シークレットLTの「Optional<Bar>うらばなし」で裏側がのお話しも聞けて、運営の皆さんに感謝です!
CallKitの通話、やっぱり大変だよね
技術面でいちばん刺さったのこちらです!
通話はつながれば終わりじゃない ― CallKitで通話機能の裏側(金 瑠加須 / @LucasGoldner さん)
Agoraを使った音声通話を例に、CallKitとの組み合わせ方、通話ステートの設計、ライフサイクル管理、実装上の落とし穴とデバッグ方法を扱うセッションでした。
私自身、Flutterで通話のアプリを作っていたので、共感できる部分が多かったです。というか、聞きながら何度も「わかる〜」となっていましたw
通話機能って、外から見ると「つながればOK」に見えるんですよね。
発信して、相手が出て、話せる。PoC的な形だと意外とすぐできます。
でも実際に作ってみると、大変なのはその先でした。。。
私が特に苦しんだのは、セッションでも触れられていたこのあたりでした。
- 着信(PushKit)まわり。アプリがバックグラウンドにいるとき、あるいは落とされているときに、ちゃんと着信させる。ここが動かないと通話アプリとして成立しないのに、ここがいちばん手元で再現しづらい。
- 通話ステート管理。発信中、呼び出し中、通話中、保留、終了。紙に書くとただの状態遷移図なのに、実機では「終わったはずの通話が残っている」「切ったのにUIが戻らない」みたいなことが起きる。ネットワークが切れたときの扱いを決めていないと、あっという間に破綻します。
- 音声ルーティング。AVAudioSessionの設定、スピーカーとイヤホンとBluetoothの切り替え。音が出ない、意図しない出力先から鳴る、途中でデバイスを繋ぎ変えられる。ここは本当に、地道に潰していくしかない領域でした。
(世の中の通話機能があるアプリってすげぇ!ってなりますよね!)
ペンライトを自動制御したい!
iOSDCのペンライトを自動制御したい!(akkey / AkkeyLab さん)
Swiftでペンライトを制御する、という話です。
ライブ会場のRF制御、テーマパークのIR・音声信号制御、Bluetooth制御と、用途ごとの制御方式を整理したうえで、AVFoundationとAVAudioEngineで制御信号をリアルタイムに生成・出力して、実際にペンライトを光らせてみる。
見ていて、素直に「自分もやりたい!」と思いました。
10年くらい前はよりハードウェアに近い部分の実装をしていたので、懐かしいな〜と思うと同時に、またやってみたいな〜と思ったりしていました!
次は、登壇したい!
というわけで、次回は登壇したい!!(ペンライトを制御して、LTで登壇する側に回りたい。)
とりあえずテーマを考えておきます!
i will blog、ちゃんと書きました!

コメント