iOSDC Japan 2022 感想

はじめに

iwillblog するために note のアカウントを作成したアイカワです。
普段は iOS アプリエンジニアをやっていて、今は Cookpad 株式会社で働いています。
今回 iOSDC Japan 2022 に登壇・参加してきたので、その感想ブログを書いてみようと思います。

登壇しました

「SwiftUI Navigation のすべて」というタイトルで登壇しました!

SwiftUI の Navigation (画面遷移) について色々とまとめたので、もしよろしければ見ていただけたら嬉しいです🙏
発表の中で時間の都合上削ってしまった Case Paths の話については、After Party iOSDC Japan 2022 というイベントで話させてもらおうかなと思っています!

当日は Twitter, Discord, ニコニコ動画のコメント、実際に話した方など色々な感想をいただけて本当に嬉しかったです!!発表してよかった。来年も頑張ってプロポーザル出したい。

イベント全体の感想

自分自身の iOSDC の参加履歴は以下のような感じです。

初めてオンラインで参加した時はワクワクしながら色々なトークを見ていました。その時は「何年か後に自分もトークできるようになったら良いな」と思っていましたが、2021 年の iOSDC のタイミングで書いてみたプロポーザルを採択していただき、初登壇させていただくことができました。
今年は同僚とプロポーザルのアイデア出し会などをしつつプロポーザルを出して、無事採択していただくことができたので、非常に嬉しかったです。

オンラインで登壇した時は、収録のタイミング・自分の収録が当日流れるまですごく緊張していた記憶があります。
今年は結果的にオフラインで登壇できましたが、元々は早くプレッシャーから解放されたい思いから収録されたものを流す予定でした。
しかし、発表当日は会場に行くし、せっかくなら現地登壇したいという思いが直前になって膨らんできて、メールさせて頂いて現地登壇できることになりました。(直前だったのに OK して頂きありがとうございました🙇)

結果的に現地登壇できてすごく達成感もありましたし、トーク後に現地の方と発表について意見交換したりもできたので、現地登壇を選択してよかったと思いました。

現地では 3 日間通して、色々な方と交流したり、クックパッドのブースで色々したりして非常に充実した 3 日間になりました。
自分から話しかけるのが苦手ではあるのですが、それでも色々な方と交流できて嬉しかったです。
来年は自分からも話しかけに行って、もっと交流を広げたい...

見たセッション (後追い含む)

まだ気になっているもので見れていないものがいくつかあるのですが、いつまでもブログが出せなくなってしまいそうなので、一旦今見ている分だけ感想を残そうと思います🙇

Day0

Objective-C 撲滅すごい。テキストエディタの複雑な実装をわかりやすく説明されていて勉強になりました。また、UIKit で View を構築する時にどう実現するか悩む気持ちが蘇ってきました。テキストエディタを実装する時がきたら見返したいです。

Deep Link 自体の説明と、実際の施策を例に説明されているので、エンジニアだけでなく施策に関わる方にも参考になりそうだと思いました。また、Deep Link について曖昧な理解だったので勉強になりました。Deep Link 対応する時に見返したい。

スライドかわいい。発表中にコミュニケーション取ってるのが凄すぎました。また、ウホーイさんのセルフツッコミで終始ニコニコしながら視聴できました。他の開発者の方が SwiftUI の View をどういう思考で開発するのかあまり聞いたことがなかったので勉強になりました。

試作品を作りながら PiP の可能性を探るの実験的で面白かったです。PiP は動画を再生しなければ実現できないので、実は裏で動画が再生されていたり、描画のパフォーマンスをしっかり考えつつ、メンテできるコードに保ったり。iOS の機能を駆使した実装とそのチャレンジングさがわかってワクワクしました。

怠惰を突き詰めて何も CI/CD が導入されていないところから徐々に導入していくという流れで CI/CD の導入について説明されていました。Danger, fastlane, GitHub などの仕組みを使った自動化について、自動化を行う際の思考の流れも含めて紹介されていて勉強になりました。

MLOps 何も知らなかったので勉強になりました。自分は機械学習ちょっとだけかじって Create ML 適当に触るくらいしかできていませんが、わかりやすい説明だったので Core ML の凄さがだいぶ理解できました。パイプライン化、CI/CD っぽくて楽しそうだと思いました。いつかこういうコアなことも勉強してみたいです。

Day1

様々な Animation API の利用方法や、どのように動いているかという仕組みについても丁寧に説明されていて、とても勉強になりました。Core Animation についてしっかり理解して扱ってこれたとは言えないので、知見の塊でした。アニメーションを実装する時に見返したい…。スライドも凄すぎます。

Actor model と Elm Architecture の基本的な説明から始まって、Actor model (オブジェクト指向)と Elm Architecture (関数型) に密接な関係があるという切り口が勉強になりました。また、自分自身 TCA を普段利用しているので多くの話に共感できました。後半の圏論っぽい話は理解できなかったので、勉強して今までの稲見さんの発表も含めて見直したい… (毎年思っている気がする)

SwiftUI をなぜ導入しようと思ったのか、どのように導入したのかについて丁寧に説明されており参考になりました。SwiftUI でできることとできないことをしっかり切り分けて実装されている点も参考になりました。Xcode Previews をより使いやすくするための工夫も読んでおきたい。

正規表現は自分自身スクレイピングや Vim 利用時くらいでしか利用したことがありませんが、Swift 5.7 から利用できるようになった Regex Literals と Regex builder によって、より正規表現が扱いやすくなることを学ぶことができてよかったです。WWDC も正規表現系はチェックできていなかったのでありがたいです。使い時で使っていきたい。

CoreGraphics 何もわからないのでとても勉強になりました。CoreGraphics の知見の塊だったので、CoreGraphics を利用した実装を行う時に見返したいです。LLDB, Xcode の機能を利用したメモリレイアウトの確認方法 (Debug > Debug Workflow > View Memory) なども勉強になりました。ちょうど Swift の pointer を利用した処理を読み解いていたので嬉しい…

SwiftUI Alignment Guide について非常に丁寧にまとめられており勉強になりました。サクッとしか Alignment Guide は活用したことがなかったので、単純に色々知見を吸収できてよかったのと、現在は Apple の Document がかなり充実しているという情報があり、見に行ってみたらほんとに充実していてよかった…

冒頭で Swift Concurrency と Reactive Programming の責務の違いを丁寧に説明された後で、Reactive Programming の基礎について図解を多用してイメージとして説明されており、とてもわかりやすかったです。Reactive Programming について学習する前に見ると、すごくスムーズに理解できる助けになりそう…

音声周りの処理を実装したことがないので、色々と知見を吸収できてよかったです。基本的な録音機能・再生機能について、順を追った説明だったので、自分でもスムーズに理解することができました。Agora もほとんど知らなかったけど、色々な機能があることを知れました。TCA の音声部分の Example はコードを読めていなかったので、その知見もありがたかったです。

NFC について詳細に説明されていて、NFC の仕組みなどをほとんど知らない自分でもよく理解できました。NFC と他の通信方式 (Bluetooth, QR・バーコード) などとの比較や OS ごとにできることなどもわかりやすかったです。未知の領域でしたが、NFC の可能性を感じたので Core NFC を利用して何かの機能を作ってみたくなりました。

UIHostingController, UIHostingConfiguration, UIViewRepresentable, UIViewControllerRepresentable について、レイアウト処理・iOS 16 からできるようになったことについて丁寧に説明されていてとても勉強になりました。アプリのライフサイクルとして利用できる API も色々網羅されていました。知らないことも多かったので見返したい

Google Maps SDK のさまざまな活用方法について、アプリでどう使っているかという実践的な形で説明されていてとても勉強になりました。想像以上に SDK で実現できることが多く、可視領域やパフォーマンスの調整・レンダリング方法の変更・バグ事例なども紹介されており、このスライドを参考に Google Maps SDK を利用している部分のコードを改善したくなりました。

正規表現について数学の講義のような形で、集合・オートマトンなどを用いて説明されていて、大学時代の講義を思い出しました。オートマトンと正規表現に関連があることは全く知りませんでしたが、すごく丁寧な説明で何も知らなかった自分でもざっくりと理解することができました (後半は難しかった)。プログラミングにおける正規表現にしか触れてこなかったので、正規表現自体についての理論的な説明が聞けて良かったです。

Day2

Xcode が遅いという話について、感覚的な話ではなくしっかりと仕組みまで説明されていてとても勉強になりました。裏側で何が起こっているのか全く知らなかったので、色々と低レイヤっぽい話が聞けて楽しかった…。とりあえず Xcode 14 早く使いたくなったのと、XCBBuildService を見てももう動じずにいられるようになって良かったです。

iOS 15 から利用できるようになった即時通知について、概要とどのように即時通知について考えるべきかを実践的な話から学ぶことができました。とりえあえず即時通知にしようという考え方にならないようにしたい…。即時通知周辺の実装を触ったことがないので、触る時に見返したいです。

Objective-C 撲滅すごい。SwiftUI の欠点をしっかりと理解して、現実的に運用できる手段で SwiftUI を導入していく方法について紹介されていて勉強になりました。「UIKit にあるけど SwiftUI にないものは作らない」という話は負債を残さないためにできることとして、とても共感していました。また、どのように SwiftUI を導入しているかという話についても知ることができて良かったです。

QR コードを読み取る基本的な実装方法と、シーンに応じたポイントについて説明されていて勉強になりました。暗い場所や、普段使いする QR コードなど、シーンならではのポイントが興味深かったです。Zenn で発表するスタイルも良さそうなので、どこかのタイミングでやってみたいと思いました。

Bazel で CI のビルド時間が速くなっててすごい。実際に Bazel を利用して直面した多くの課題についても紹介されていてとても勉強になりました。ハックなどはありつつも Xcode 上で発生した課題やキャッシュの課題なども解決策を見つけていてすごい…。また、Bazel を本当に利用する価値があるのかをしっかりと考え直して、Bazel と xcodebuild を使い分けているのも現実的で良いなと思いました。研究開発楽しそう。

Swift Concurrency を利用した iOS アプリの作り方が非常にわかりやすく説明されていました。Swift Concurrency をただ利用するだけではなく、テスタブルな設計にするために View で Task.init するようにしたり、ViewModel から外界へのアクセスを抽象化したり、テスト自体についても厚い説明がありとても実践的な話で勉強になりました。

Wasm 何も知らなかったのでとても勉強になりました。Wasm によって何を目指そうとしているのか、現在どのようなことができているのかが何となく理解できて良かったです。低レイヤなことは理解できない部分もありましたが、実現しようとされていることが壮大すぎてめちゃくちゃすごいと思いました。わからないことがかなり多そうではあるものの、すごく楽しそうなので Wasm 周りで何か貢献できる日がくるように勉強していきたいなと思えました。Dynamic Member Lookup の本来の利用シーンも見ることができて貴重な発表でした。

クックパッドで働いている中で非常に整っていると感じていたログ基盤が絡む話。行動ログを取るフェーズ・検証するフェーズなどを快適にするための方法について紹介されていました。実際働いていて非常に快適にログ実装したりできているので、ありがたいです。

Web フロントエンド界隈のアーキテクチャの変遷についてや、リクエスト単位のキャッシュの課題・キャッシュを正規化することによる解決策などがわかりやすく説明されていて勉強になりました。自分は Apollo などを使って状態管理をしたことがなく、チュートリアル程度の知識しかないので、その辺りは実際に試してみたいなと思いました。

おわりに

LT は全てオフラインで視聴していましたが、勉強になったり面白いものばかりで自分は LT には絶対に挑戦できないなと改めて感じました笑

まだ見れていないトークで気になるものが結構あるので時間が空いた時に見るのと、トークへのフィードバックもやってしまおうと思います。

iOSDC のトークをこんなにガッツリ見たのは今年が初めてな気がするのですが、視野が広がって何もわからない状態になって、とても良い気分です!
来年も楽しみです!

この記事が気に入ったらサポートをしてみませんか?