8/22、23 に iOSDC Japan 2024 に参加してきました。24日のDay2は残念ながら都合が悪く参加できませんでしたが、実際に聞いたり&話したりできた範囲で感想を書きたいと思います。ちなみに iOSDC は初参加でした。

Inner Source Practice
開発を加速する共有Swift Package実践 by el_metal | トーク | iOSDC Japan 2024 #iosdc - fortee.jp を見て、お恥ずかしながら Inner Source Practice という言葉を知りました。
Inner Source Practice はOSS開発におけるベストプラクティスを活用して、非OSSな開発にもオープンソースの手法を取り入れ品質を高めようねという理解をしました。サイボウズは異なる時期に開発されたアプリ(kintone、サイボウズ Office、Garoon?)で、認証機能などの共通部分がそれぞれ再実装されていたことが問題としてあったそう。プロジェクトごとに実装が分かれているため新しいメンバーへのオンボーディングにコストがかかってしまう課題もあると言っていて、これは複数プロダクトを抱えるとどうしてもある話だなと思いました。これらの課題を共通の Swift Pacakage を実装することで解決していったとのことでした。利用側のアプリ分バグもスケールしてしまうけど、SSoT になったおかげでバグ修正のスピードも早まったとおっしゃっていていい話でした。開発体制は OSS のように Owner 、Contributer などを定めて進めていて、ちゃんとワークさせているのがすごいなと。これはチーム内の理解もかなり必要そう。利用側のパッケージ更新はひとまず main 指定でやっていると言っていて、この辺りは今後の課題なのかな〜?という感想です。自分が所属するチームでも共通 Package を取り組む将来はあり得なくはないので、興味深く聞いていました。
Swift Concurrency
みんな大好き(?) Swift Concurrency。 Swift 6 もきて盛り上がっていますが、まだまだ理解が十分でない部分が多いので、それらを補完するようにトークを聞いてきました。
まず、大前提として Concurrency が防いでくれるのは Data race(競合)で、Race condition(競合状態)じゃないよというのは確かにでごっちゃになるので要注意ですね。個人的に印象的だったのは隔離境界(Isolation Boundary)を越えなければ難しくないという部分でした。所属チームのプロジェクト でも ViewModel は MainActor にしていこうねというところで、MainActor でいいところは怖がらずに MainActor にしていけばいいという話を聞けたのは良かったです。 境界を越えようとすると途端に難しくなるので、そういうシチュエーションになったらこの時のトークを振り返ったりしたいと思います。
Mergeable Library
WWDC23 で発表された Static/Dynamic に続く新たなライブラリの形式「Mergeable Library」のお話。
開発時に嬉しい Dynamic Framework と、 リリース時に嬉しい Static Framework のいいとこ取りしてくれるので最高ではという印象でしたが、ベンチマークはあんまりいい結果になっていない?ようでした(色々考察がある)。リソースバンドルもいい感じに扱ってくれるようなのでうまくいけば絶対嬉しいはずです。ワードは知っていたけど深く終えていなかった部分なので、とても面白かったです。 活用事例は大募集中のようなので、実際のプロダクトでやってみないとわからない部分も多いだろうし機会を作って試してみたいですね。
参加してみて
自分は残念ながらプロポーザルが採択されなかったので登壇することはできませんでしたが、プロポーザルに出した内容は、アフターイベントである iOSDC 2024 後夜祭 - connpass でお話しできる機会をいただいたのでLTで発表してきました。
来年こそはスピーカーとして参加したいですね。いいネタができるようまた一年頑張っていきたいと思います。