iOSDCに参加して、全部iOSにしゃべらせました(俺コンではちゃんと自分で話します)

今年もiOSDCに参加しました

これを書いている日からちょうど1週間前に徳島を発ち、iOSエンジニアの祭典であるiOSDC Japan 2018に行ってきました。前にも書きましたが、今年は3回目の開催で、なんと3.5日間(前夜祭を0.5日とカウント)のイベントです。前夜祭の0日目から最終日3日目まで参加しました。飛行機の手配の都合もあって(-1)日目のオープニングパーティには参加しませんでした。

最も印象に残ったトーク

個人的に最も印象に残ったトークは tarunon さんの「MicroViewControllerで無限にスケールするiOS開発」です。他のみなさんの印象にも残ったようで、ベストスピーカー賞の1位に選ばれていました。

以前から、子ビューコントローラーに分けてるような話をTwitterでお見かけしていましたが、テーブルビューの1つのセルの単位(もっと細かい単位?)でビューコントローラーに分けているというのを聞いてびっくりしました。

ビューコントローラーってどうしても「画面」という印象があったのと、ビューコントローラーを階層化できるようになったのもつい最近というイメージ(※iOS 5からなので実際はそんなに最近ではない)があったので、なんとなくそんなにいっぱいビューコントローラーを配置したら重くなるんじゃあ…と直感的に思いましたが、そうではなくて軽くなったということでした。

改めて考えると、ビューで細かく分けるのがOKならビューコントローラーを細かく分けても特に重くなる要素はなさそうですね。

まだちゃんと理解しきれていませんが、ビューじゃなくてビューコントローラーにするメリットは、ビューコントローラー自身から present(_:animated:) で他のビューコントローラーを表示できるのと、 viewDidLoad() などのライフサイクルイベントをハンドリングできる点のようです。

タイトルの「無限にスケールするiOS開発」とは、金の弾丸で無限にエンジニアを集めてもアプリ開発はコンフリクトしてスケールしないが、細かく分けた個々のビューコントローラーにエンジニアを配置すれば、コンフリクトが減って無限にスケールする、という意味のようです。しかし、少人数開発においてもこの手法は機能するはず、とのことでした。

アンカンファレンスとIRT

今年の新しい企画として、アンカンファレンスとIRT(Interactive Round Table)がありました。アンカンファレンスは去年のiOSDC.fm公開収録を思い出しますね(あれ、収録したものはどうなったんだろう? 🤔)

アンカンファレンス向けにTrack Eが開放されていて、いろんな発表があったようです。 というのも、ぼくは最初のうち、アンカンファレンスのボードがどこに設置されているのか把握できていなくてノーチェックだったのです。ですが、最終日にはボードの位置も完全に把握できていて、ランチタイムのわいわいswiftcに参加しました(思ってた以上に参加者が多かった)。

hakさんのも聞きたかったんだけどIRTと時間がぶつかってた

もう一つのIRTは少人数でテーブルに集まって、参加者同士で特定のテーマについて知見を共有しあうようなもので、毎日テーマが代わり、「テスト相談会」、「Storyboard/AutoLayout相談会」、「Firebase相談会」がそれぞれ3ラウンドずつ開かれていました。ぼくは3日目に開かれたFirebaseの、3ラウンド目に参加しました。

あまり深く考えずに参加したのですが、Firebaseって「データベース」の話から「プッシュ通知」、「A/Bテスト」など内容が多岐に渡るので、開始直後は参加者同士でそれぞれの持つ前提知識がわからず、探り探りになる感じでした。しかし、司会の 1amageek さんがいい感じに主導してくれたおかげで、楽しくいろんな話ができたように思います。

スポンサーブース

今年も空き時間にスポンサーブースを回らせていただきました。去年のような缶バッジコンプリートイベントがなかったので、去年ほどモチベーションが伴わなかったのは事実です…が、1つだけモチベージョンを持って頻繁に通ったブースがあります。

クックパッドさんのブースです。ランキングを競うゲームが展示されていたため、毎日、何回かは立ち寄ってプレイしました。自己ベストは248点。最終日にもっとプレイしたかったのですが、空き時間が作れず心残りだったほどです。

Overcooked…もといOvercookpad

LT登壇して、しゃべらせてきました

ぼく自身も、ネタで応募した「全部iOSにしゃべらせちゃえ!」のLTが採択されたので登壇しました。全部iOSにしゃべらせたので発表は楽でした。発表の準備は楽ではありませんでした。採択されたはいいものの、CfPにはそれらしい発表内容を書いてないし、やることは決まっているが何について話したらいいのかわからないという奇妙な状態から始まりました。ですが、タイムテーブルが公開された時に、LTセッションの先頭だとわかったので、これは会場を盛り上げて暖めなさいという運営からのメッセージだととらえ、できるだけふざけるようにしました(合ってたのかな)。

やってみると、いちいち内容を文章に起こす必要があるので、自分で話すよりも資料作りが面倒でしたが、一度書いてしまえば何度でも発表させられるのは便利ですね。自動化バンザイ。なお、ぼくの発表練習は、どのタイミングでぼく自身がどんなふざけたことをするかという練習でした。独りで部屋を撮った自撮り写真がスマホの削除された写真のところに溜まっています。演技力がないので恥ずかしいのですが、動画が公開されたら自分でも見てみたいと思っています🙂

このとき撮った自撮り写真、いろんな人が一緒に ✌️してくれててうれしい

ぼくのおふざけがiOSの発表をジャマしていたと思うので(特に前半)、見てくれていたみなさんの頭に何も入らなかったかもしれませんが、そこらへんの技術情報をQiitaにまとめたので「よかったら見てみてください。ついでにいいねください。」

まとめ

こんなすごいカンファレンスが、ボランティアスタッフによって運営されているというのは本当にすごいことだと思います。スタッフのみなさん、スポンサー企業のみなさんにいくら感謝してもしきれません。

去年も同じようなことを書きましたが、やっぱり、来年も行くぞ!

宣伝:俺コンDay.1に登壇します

実はぼくが出したCfPの本命は「シンボリケート/クラッシュログを人間が読めるようになるまで」だったのですが、残念ながら採択されませんでした。しかし、俺コンの運営の方からお声がけいただき、Day.1にこの話で登壇させていただくことになりました。ありがとうございます!

Xcodeに付属するツール「symbolicatecrash」を使った話になります。タイムテーブルを見ると同じ時間帯に人気のある方も登壇するし、ぼくの話はだいぶニッチだし、誰も聞きに来てくれないじゃないかなあという不安でいっぱいなのですが、かわいそうに思ったそこのあなた、ぜひ聞きに来てください(切実) 🙇