iOSDC 2019に参加してきました

2019/09/05〜07まで2.5日、iOSDCに参加してきました。
(iOSDCのCはカンファレンスのCなのですが、個人的にはiOS開発者のお祭りだと思っています。)

参加は今年で3回目、昨年に引き続き幸いにもプロポーザルが採用されたため登壇2回目です。

というわけで今年もSPEAKERチケットGETです。
f:id:ta_ka_tsu:20190908164858j:plain

昨年まではLT&15分トーク&30分トークという構成だったのに対し、今年はLT&30分トーク&60分トークという構成だったためか、昨年より開催日が1日少ないことを考慮に入れてもあっという間に終わった印象です。
1つのテーマについて深い内容でじっくり聞くことができ、慌ただしくトラック移動することも少なかったので良かったと思います。
その一方で、聞けた発表が例年より少なかったのは少し残念でした。うーん、アンビバレンツ。
(3.5日で30分&60分だと丁度いいかもとか無責任なことを言ってみる)

聞きに行ったセッションの中でも特に印象が強かったものを以下にいくつか。

スクリーン配信機能の実装が大変だったので知見をお伝えします。
非常に情報がレアなフレームワークReplayKitに関する話が聞けたのが興味深かったです。
動画というただでさえ情報量が多く、なおかつリアルタイム性の求められるデータを、さらに限られたメモリの中でどう扱うかという工夫を聞くことができて面白かったです。
携帯端末という計算リソースの限られたプログラムではこのようなリッチなコンテンツをいかにして自然に見せるかという知見はとてもためになります。

Advanced Segue (2019年のSegue事情)
著書である「詳解UIKit」「よくわかるAuto Layout」で散々(勝手に)お世話になった所さんのセッションです。
私は可能であればGUIでやってしまいたい派なのでSegueもきっと私の知らない便利な使い方があるはず、ということで聴講しました。
特にCustom Segueは使ったことがなく、static table viewの特定のセルにだけ特定の動作をさせたい時にtableView(_:didSelectRowAt:)内でindexPathのsection/rowを条件分岐して書くみたいなコードや、肥大化するprepare(for:sender:)といった常々ブサイクだと思いながらも仕方なく書いていたコードを回避できると知れて良かったです。

クロマキー合成を使い透過動画をAR空間に表示する
こちらも携帯端末の限られた計算リソースの中で動画、AR、クロマキー合成というヘビーそうな処理をどう行っているのか知見を聞きたかったので聴講しました。
実際に動画がクロマキー合成されてARで再生されるデモのインパクトは想像以上で、ユーザーに強い印象を与えられるコンテンツ作りへの夢が広がりました。

iOSアプリに「意識」は宿るのか?ディープラーニングの先にある人工知能(AI)
60分のセッションのうち1割も理解できていないと思いますが、脳の仕組みを模倣したモデルでパラメータを変えてセルオートマトンのパターンが有機的に変化するのは見ていて面白かったです。
何を以て「意識」とするかの定義は難しいですが、大変興味深いセッションでした。

今こそwatchOS
かつてApple Watchには「小型で高機能なコントローラー」としての役割を期待していました。watchOS1、watchOS2の頃に実際に開発をして「小型だがそれなりのことしかできない時計」以上の評価ができず、もう開発することはないと思っていました。
が、知らない間にソフト面ハード面で強化を果たし、SceneKitでぐるぐる3D描画が動作するのを見て、もうあの頃のAppleWatchではないのだなあと思い知らされ、まさに「今こそ」という可能性が見えました。
可能性が見えたら帰りに丸の内で買って帰るという旨のツイートをしましたが、すみません、数日後にAppleの発表があるのを忘れていました。新しいApple Watchが出てからにします。



「聞きたかったけれども諦めたトーク」も沢山あるのですが、ありがたい事にiOSDCは毎回後日YouTubeで動画が公開されるという安心感があります。
そのため「ぜひこれだけはライブで聞きたい」というものを重点的に選んで聞きに行きました。
ぜひライブで聞きたいというトークが集中している時間帯は流石にギリギリまで悩みましたが、それも一つの醍醐味ですね。


さて、今年初めての試みであるiOSDCチャレンジという随所に散りばめられたトークンを探すという企画は割と本気で上位を狙いに行くつもりでいました。
あらかじめスポンサー様のブログ、公式Webページをチェックして見つけたトークンを集めておき、受付とほぼ同時に入力しまくるという作戦で初日のしばらくの間は1位でした。
が、その後一向にトークンが見つけられず順位がズルズルと後退、そのまま11位まで転落しましたが「キリ番ラッキー賞」ということでTシャツを頂けました。結果オーライです。
f:id:ta_ka_tsu:20190908170511j:plain

Web黎明期に一時期流行ったWeb脱出ゲーム的なノウハウ(?)を駆使し、
・背景と同じ色の文字を全選択で浮かび上がらせる
・HTMLソースを表示し、ブラウザにレンダリングされない文字列を探す
といった方法が思い通りハマったのには懐かしさを感じました。

一方、絶対トークンが隠されているはずだとアタリをつけていたにも関わらず公式パンフレットのトークンを見つけられなかったのは悔しいと言うよりも改めて老眼を痛感して少ーしだけ切なくなりました。
(これ↓)
f:id:ta_ka_tsu:20190908164904j:plain
f:id:ta_ka_tsu:20190908170653j:plain

突然来ますからね、老眼。皆さんも目は大切にしましょう。


当たり前ですが皆さん様々なバックグラウンドを持ち、様々なアプローチで技術に取り組み、様々な技術分野での知見をお持ちで毎度のことながらとても刺激を受けます。
同じトークを聞いていても他の方の質問でそういう視点もあるのか、と気付かされることも少なくありません。
普段仕事をしているだけでは絶対に交流できない方々と交流できるこのような機会というのは何事にも変えられない機会だと思います。
面白そうだけど自分の仕事には関係なさそうだし…という方にこそ参加してみてほしいイベントです。

自分自信も、このようなイベントが無かったら片田舎で限られた人とだけ仕事をし、仕事に必要な限られた技術領域だけで生活をするためだけにプログラミングをして、そしてそのうちプログラムの楽しさを忘れていったかもしれません。
プログラミング・エンジニアリング・知識の吸収って本来楽しいものですよね。
そういう意味で私の人生に影響を与えたイベントだといっても過言ではないです。

最後に毎年協賛下さっているスポンサー様、ありがとうございます。
スタッフの方々、スムーズな運営で毎年とても楽しく快適に過ごさせてもらっています。お疲れさまでした。
発表者の皆さんも聴講者の皆さんも本当に気さくに交流させてもらってとても刺激になりますし、何より楽しいです。ありがとうございます。


来年も開催されるのを心待ちにしております。
またまた懲りずにCfP出します。

あと「アウトプット大事」というのはわかってはいたものの今回本当に痛感しましたので、できるだけアウトプットしていくようにします。