iOSDC Japan 2022に参加してきました!
今年もiOSDCに参加してきました!
9/10(土)からの3日間の開催で、今年はオンライン・オフラインのハイブリッド開催でした。オフライン会場は例年通り早稲田大学のキャンパスで、オンラインはニコ生で配信されていました。
私はオンライン参加でしたが、去年と違って現地会場の写真がTwitterに流れてきて、現地の雰囲気を少し味わえました。やっぱりカンファレンスは現地の雰囲気や熱気がいいなと思いつつも、オンラインでないと参加が難しい人もいると思いますので、ハイブリッド開催は非常に良かったです。
今年もSwiftUIやSwift Concurrencyのトークが多く、アーキテクチャやビルド改善、開発体制の話もありました。以下いくつかピックアップして紹介したいと思います。
Day 0
ウーニャ、しってる。みんなふんいきでSwiftUIをつかってる。
SwiftUIのView「分割」と「命名」について、ツイートを拾いながら発表・コメントしていく非常にインタラクティブなトーク。Viewを拡張したい場合は基本的にextensionを使い、状態保持が必要な場合のみViewModifierを使う。また、「分割」も「命名」もプロジェクトごとにドキュメントに言語化することが大事としている。
SwiftUI Navigation のすべて
SwiftUIにはいろんなNavigation APIがあるが、OSバージョンによっては変化が激しい。また、状態管理などで課題があり、swiftui-navigationというライブラリによる解決方法を紹介している。
PWAの今とこれから、iOSでの対応状況
PWAの基本と導入方法、iOSでのサポート状況や導入事例を紹介している。
メタバースを支えるエンジニアの生態について
メタバースプラットフォームを提供するクラスター社のスポンサーセッション。オンラインMTGのアバター出席率や出勤時間帯、居住地などの社内アンケートを紹介し、採用しているepicという開発フローについても解説。PRD(Product Requirement Document)で開発する機能の目的や概要、ターゲットを明文化するのは大事。
Day 1
アニメーションAPIのすべて
iOSで提供されている様々なアニメーションAPIを実例を交えて使い方を紹介している。アニメーションだけあって、発表資料もSwiftで作られていて、実際にアプリとして動作・操作することで、アニメーションを体感できる斬新な発表。
Swift アクターモデルと Elm Architecture の融合
オブジェクト指向でスレッド安全なActorと、関数型でSingle Source of TruthのElm Architectureについて触れた後、それらのいいとこ取りをしたActomatonを紹介。
UIKit ベースの大規模なプロジェクトへの SwiftUI 導入
UIKitベースの大規模なプロジェクトでどのようにSwiftUIを導入したかを紹介。UberのRIBsアーキテクチャを採用していながら、どのようにSwiftUIを導入したかも。SwiftUIは書きやすい=楽しい、読みやすい=レビューしやすい、が印象的。
入門 SwiftUI Alignment Guide
基本的なalignmentGuideから、より複雑なalignmentができるCustom Alignment Guideまでを紹介。
SwiftUIとUIKitを仲良くさせる
UIKit vs. SwiftUIの一択ではなく共存がいい。既にUIKitで構築されている場合もあるし、SwiftUIではまだ手が届かないところがある。それぞれの長所を生かすことが大事。
神速iOSDC〜6年分〜
2016年から過去6年分のiOSDCを振り返り、それぞれの年のApple事情とトーク種類を分析している。
SF Symbolsの無限の可能性に迫る、SF Symbolsアートの世界
SF Symbolsを組み合わせていろんなアートを表現している。サンプルコードも公開しているので、どのような実装になっているかを確認できる。
レガシーなプロダクトからドメイン層を再設計する
リアーキテクチャしたがFat Presenterができてしまった失敗談から始まり、レイヤリングに意識が行きがちだが、本質や提供する価値に注目してドメインからモデリングすることが大事というトーク。
Day 2
Xcode が遅い! とにかく遅い!! 遅い Xcode をなんとかする方法
Xcodeが遅いのをなんとかする方法の紹介だが、Xcodeのビルドの裏側の処理を自前のものに差し替えるというハック満載のトーク。これでXcodeがビルドで止まっても、アレねとなる?
Feature Flagを使った開発で高速でストレスフリーなデリバリーを実現する
ブランチ運用では親ブランチ式が多いが、差分の取り込みや競合発生率が高いなどの問題がある。Googleでも紹介しているDevOps技術のトランクベース開発を導入して、細かく頻繁にアップデートをmainブランチにマージし、さらにFeature Flagと組み合わせることで効果を発揮する。とはいえ、常に小さくマージする設計や努力が大事で、Feature Flagは最終手段。
SwiftUI in UIKit で開発する世界
UIKitにあるけどSwiftUIにないものは、将来的にネイティブで提供される可能性があるから積極的に作らない。SwiftUIに合ったアーキテクチャを選びたいが、リアーキテクチャのハードルも高く、チームが開発状況を見て最適なものを検討すべき。
サーバーと同期してリアルタイムに更新する画面を実装する
メタバースプラットフォームを提供しているクラスター社のトーク。マルチプラットフォーム展開している関係もあって、リアルタイム更新にはサイレントPushやFirebaseではなく、WebSocketを利用。
Swift Concurrency時代のiOSアプリの作り方
ログイン処理を例に、具体的にどのようにSwift Concurrencyを使って実装するかを紹介。重要なポイントを押さえているものいい。
Effective PencilKit / 新聞スクラップ体験の実現
デジタル日経新聞の紙面にPencilKitを使って手書きハイライトをどのように実現したかを紹介。紙面画像の拡大縮小に合わせてパスを描画したり、自前で滑らかなテキストマーカーや文字座標抽出ロジックを作ったりと、ゴリゴリな拡張も。
大学で出席管理アプリ・掲示板閲覧アプリを開発・運用している学生の話
大学と連携して出席管理アプリを開発・運用している話。モダンな技術を導入している上に、卒業による引き継ぎコストを考慮した技術選定をしているのもすごい。
iPadOSDC Japan 2022
iPadOSDC 無限ビルド編!iPadのSwift Playgroundsを使ってタイムテーブルアプリを開発した話。ネタもりもりのLTでトリにふさわしいトークだった。
さいごに
毎年楽しみにしているiOSDCもあっという間に終わって、たくさんインプットした分、しっかりアウトプットしなければと思いながら参加レポートを書いてます。SwiftUIで開発もしているので、色々吸収するものがあって、早速コードをいじってみたくなりました。普段あまり触らないAPIの話や運用改善の話も刺激になりました。今までは一般参加でしたが、そろそろLTやトークセッションにも挑戦してみたいと思っています。
来年のiOSDCも楽しみに待っています!
運営やスタップの皆様、本当にお疲れ様でした。
この記事が気に入ったらサポートをしてみませんか?