iOSDC 2019 に参加してきました!
2019年9月5〜7日に開催されたiOSDC 2019に参加してきました!!
2.5日間で体験してきたことをブログにしたいと思います!!
今年がiOSDCが初参加で緊張しましたが、多くの学びや感動、出会いがありました。初参加ではありましたが、しっかりと2.5日間参加させて頂いて、最後までいることができました。
その2.5日間を時系列順におって行きたいと思います!!
前夜祭 - day0(9/5)
会場に入場した際のiOSDCの横断幕に初っ端から感動しました!!しかも、iOS13でのダークモード実装ということでライトモードとダークモードが用意されていました!!
ノベルティバックも横断幕同様にライトモードとダークモードが用意されていました。僕は、ライトモードをもらいました。
最初のトークが始まるまで、企業さんが出しているブースを見学。
普段開発しているiOSのバージョンやプロダクトのSwift率、プロダクトの設計事情などのアンケートにも回答。社会人の方々のiOS事情をアンケートで見ることができて、本当に幸せだと思いました。
teamLabさんの真剣衰弱は難しかったww。
iOSDC初のトークは、FromAtomさんの
スクリーン配信機能の実装が大変だったので知見をお伝えします
でした。
ライブ配信が流行になってきている現代にピックアップして、iOSではどのようにライブ配信を実装していくかをトークしてくださいました。
ReplayKitを使用したライブ配信でもiOSのバージョンごとにできることが違う(iOS9では、録画機能しかない)ため、最低でもiOS11以上から実装しなくてはいけないこと、iOS11からはコントロールセンター経由で配信できるためBroadcast SetupUI Extentionを経由しなくてもCMSampleBufferを送ることができるなどがお話の内容でした。サマーインターンでライブ配信を実装しましたが(バックエンドの実装だが、、、)、iOSでもデータのリサイズや音声などの関係はやはり難しいなと感じながら聞いていました。
続いては、所友太さんの
Advanced Segue (2019年のSegue事情)
を聞きました。
SegueのPros・ConsやiOS13ではSegueはどのように扱っていけばいいかなどのお話でした。
iOS13からのSegueActionでViewControllerのinitializerが簡単に呼べることがとても使いやすく、さらに実用例を用いることでとてもわかりやすくSegueActionを活用するメリットをお伝えすることで、使ってみたいという気持ちになりながら聞いていました。
この2つのトークを終えて、ブースを再見学。
Wantedlyさんのブースで、SwiftUI本がもらえるキャンペーンをやっていたので、問題に挑戦!!
2問目がかなり難しかったけど、なんとか正解して、ゲットしました!!
帰って、しっかりと勉強しよう。
以上で、前夜祭は終了。0日目だったけどかなり濃かった。
本編 - day1(9/6)
この日は朝から会場に行き、ドーナッツと無限コーヒーを堪能しました。
本編最初のトークをKishikawaさんの
ライブラリのインポートとリンクの仕組み完全解説
を聴こうと思いましたが、流石の人気!!
満席で入れなかったため、2番目に気になっていた六々さんの
縦書きエディタを6プラットフォームで開発してみて
を聞きに行きました。
縦書きができるテキストエディタを6プラットフォームに対応させるための開発の苦労話やiOSではどのように実装するのかのお話でした。
「文字」をソフトウェア内で表示する仕組みを一から教わった感じでかなりためになるお話を聞かせてもらったと思う。
トークが終わった後は、ランチをとってそのままランチセッション。
美味しいご飯を食べながらのトークはよかったです。
午後最初のトークはshizさんの
Swiftクリーンコードアドベンチャー ~日々の苦悩を乗り越え、確かな選択をするために~
を聞きに行きました。
iOS開発でのクリーンコードを書く上での心構えや意識すること、Protocolの使い方を理解してジェネリックにしていくことがお話の内容でした。
スライドがかなり凝っていてとても見入ったお話を聞くことができました。また、「わかりやすい」「安全である」「変更に強い」ことがクリーンコードの大原則であると改めて感じる内容でした。
続いては、栗山徹さんの
画像処理における、UIImageとCGImageとCIImageの効果的な使い分け
です。
Sansanさんのプロダクトで使われている実装を元にiOSのリアルタイム画像処理でのUIImageとCIImageの扱い方やどのようにやっていくかなどのお話をしてくださいました。
リアルタイム画像処理を行った個人アプリを作成したいと考えていた折に、このような話を聞くことができて本当によかったと思っています。特に、UIImageとCIImageで処理速度が倍以上違うということに驚きました。この技術を早速使ってみたいです!!
day1ラストのトークは、ダンボー田中さんの
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた
です。
前半は、自動テストがなく入れられる設計でない時のテストはどのように模索するのかを実例でお話していただきました。後半は、そもそものテストは「何」をテストしているのかやどのくらいテストするべきなのかなどのテスト戦略のお話をしていただきました。
学生であまりテストを書く機会があまりない分、これから仕事していく上で欠かせないことのお話だったため、テスト外のバグを許容しなくてはいけに時もあるということがかなり深いものだと思いました。また、「全てをテストすることができない」というのは、去年のインターンでも経験したことで、どの企業さんも苦労しているのだなと感じました。その分だけ、プロダクトにおけるテストの優先順位がとても大事であると学びました。
トークが終わった後は、そのままLTを聞きました。
CoreMLを使用して、ARでの平面認識の処理速度をかなり早くするお話やプッシュ通知承諾をあげたお話、個人で開発したアプリを公開する際の意識するべき店などのお話など多くのためになるお話が聞けました。
LTが終わって、お茶会に参加。
ボードゲームがある席にお邪魔して、社会人の方とスタッフの方と一緒にボードゲームをしながら、お話しました。結構盛り上がって楽しかったし、Swift界隈でのお話も聞くことができて、よかったです!!
本編 - day2(9/7)
この日も朝からの入り。
day2最初は、tarunonさんの
テストケースで Ambiguous Layout を発見する
を聞きました。
AmbigunosLayoutを発見するためにメソッドの仕組みを理解して、テストケースを書くお話でした。
実際に目の前でデモをしてくださり、かなり面白かったです。メモリ部分やメソッドの中身などのかなり深いところまでのお話もあったため、おいていかれた部分もありますが、知っておいて損はない内容でためになりました。
次は、kenmazさんの
モバイル決済アプリの作り方
を聞きました。
キャッシュレスの仕組みから現代の本人確認、ApplePayやコード決済の仕組みなどのモバイル決済周りのことのお話でした。
モバイル決済が多く出ている中で、本人確認の方法が多様化になっており、また支払い方法もCPMとMPMで別れ、それぞれ仕組みが違うことや現代の法律や背景のなかでどのように提供していくかといった話がこれからエンジニアとして関わっていく中で重要だなと感じました。
前日に引き続き、ランチをとってランチセッションに参加。
英語が難しくてわからないこともあったけど、スライドがわかりやすくてよかった。
午後は、satoshin21さんの
iPhoneのカメラで写真撮影から現像までの技術を紐解く
を聞きました。
カメラの技術の話とiPhoneでのカメラの扱い、iOSアプリでのカメラを扱う AVFoundation周りのことのお話でした。
トークのほとんどが画素やシャッタースピードなどのカメラを扱う上での知識の話で、人からカメラに関して詳しく聞くことが初めてだったため、かなり新鮮で面白かったです。前々からカメラに興味があったため、こういうことが聞けて本当に嬉しかったです。また、iPhoneのカメラが進化しているため、アプリ側でできることが増えているということを改めて実感したトークでもありました。
2つめのトークは、akatsuki174さんの
すべての人のためのアクセシビリティ対応
です。
アプリのアクセシビリティ対応によって受けられる恩恵がかなり大きいというお話でした。
このトークの中で、アクセシビリティの対象者が全ての人のためにあるということが衝撃的でした。多くの恩恵がある中で、どうしても優先順位が落ちてしまうアクセシビリティ対応ですが、アプリの中ではかなり重要な機能としてなくてはいけないものであると考えさせられました。
今まで、アクセシビリティを対応させるということを考えもしませんでしたが、このトークで学生でありながらも考えなくてはいけないことだと感じました。
トークが終わって、そのままLT。
day2では、TrackAとTrackBの壁がなくなり、両方でLTをやるものでした。かなりの人がそこに集まり、圧巻でした。また、その大人数の中で発表する登壇者さんもかなり嬉しい気持ちで発表したと思うと、いい機会だなと感じました。
iOS12でのDarkMode実装やARKitでの壁認識、プロダクトのSwiftUIを対応させるために意識することなどの話がありました。
どれもいいお話で聞いててよかったです!!
最後にクロージングがあり、2.5日間の振り返りをして、
iOSDC 2019は無事終了しました!!
まとめ
今年が初参加でしたが、多くのことを体験できた貴重な時間を過ごすことができて幸せでした。それでも、オープニングパーティーや懇親会などのイベントに参加できていなかったため、十分に堪能できたと思っていません。
また、交流も全然できていない方だったので、来年のiOSDCにまたきて、交流の輪をもっと広げていきたいと思います。
来年は社会人になっているので、また違った視点でiOSDCを楽しむことgできると思います!!