iOSDC Japan 2024に参加しました!
目次
はじめに
「ニフティ不動産」のAndroid/iOSアプリの開発を担当している、TS-Elfenです。元々Androidのエンジニアなのですが、最近はiOS側の実装も任せてもらえており、非常に充実した日々を過ごしております。
この度、iOS開発の知見をさらに深めるために、2024年8月22日〜8月24日に開催された、iOS関連技術をコアのテーマとしたソフトウェア技術者のためのカンファレンス「iOSDC Japan 2024」に現地参加してきました!(このイベントには、当社もゴールドスポンサーとして協賛いたしました。)本記事では、イベントの概要・参加した感想や気づきなどについてお伝えしたいと思います。
iOSDC Japan 2024の開催概要
今回のiOSDC Japan 2024は以下のような日程で開催されました。
- 0日目(前夜祭)(8/22(木) 15:50-20:00)
- スポンサーや一般参加の方々による様々なトーク
- 1日目 (8/23日(金) 10:00-18:30)
- オープニング
- スポンサーや一般参加の方々による様々なトーク
- ルーキーズLT(初登壇の方向けのLightningTalkセッション)
- 2日目(8/24(土) 10:00-18:30)
- スポンサーや一般参加の方々による様々なトーク
- 通常のLT
- クロージング
iOSDC Japanは楽しい雰囲気で、エンジニア同士が交流を深められるのが特長です。メインのトークのほかに、以下のようなコーナーも毎年開催されており、これらを活用することで交流の輪を広げやすいと感じています。もし、モバイルエンジニアやモバイル開発に興味がある方で、エンジニア系イベントは敷居が高いと感じているなら、まずは『iOSDC Japan』から参加してみることをおすすめします。オンラインでの参加も可能です!
- オープニングパーティ
- DJの方を呼んでワイワイ楽しく交流を深められるイベントです!
- 懇親会
- Ask theSpeaker
- トークを終えたスピーカーに直接質問や相談ができるコーナーです!
- スポンサー企業ブース
- 常時、様々な企業の担当者やスピーカーの方がおり、お話ができます!
- ソフトドリンク・お菓子・アルコール飲料などの配布
聴講したトークの一部の感想
それでは、本カンファレンスのメインコンテンツであるトークの一部について紹介します。
Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?
Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?
Strict Concurrencyとは?
Strict Concurrency CheckingというXcodeのビルド設定があります。この設定を最も厳しい設定でONにすると、データ競合が発生しうる箇所でワーニングもしくはビルドエラーが起きるようになります。このセッションは、どのようにその設定に対応していくか?という事について有識者の方々が集まって解説・議論をするセッションでした。
内容のメモ
- 以前は、メインスレッド以外からUIを操作しようとすると、以前は実行時に原因が特定しにくいエラーが発生していた。Swift Concurrencyの登場で、 Global Actor(MainActorなど) を使用した際にスレッド指定が間違っていると、コンパイル時にワーニングとなって教えてくれるようになった
- また、スレッド間のデータ競合によるクラッシュはCrashryticsなどをみても原因が特定しにくく、対応が難しいものだったが、Swift 6ビルド対応を完璧にすると原因不明のクラッシュが少し減るかもしれない
- XCode16までに対応しなくても、Swift 5モードがあるのでそんなに急ぎでやらなくてもOK
- データ隔離については、Actor隔離/Grobal Actor隔離/非隔離の3種類がある。異なる種類の隔離ドメインで値を受け渡そうとしていた場合は、対応が少し難しくなる
- データが競合している箇所等でビルドエラーになっている場合は、データ競合の原因から考えて対応をしていくと良い。
- 登壇者の方がZennにありがたい記事を投稿しているので、それも参考にする
感想
当社でもCombineで実装していた非同期処理を段階的にSwift Concurrencyに置き換えています。私も最近実装したのですが、まだまだ理解が浅い部分があったな、と思いました。
Strict Concurrencyに対応するのはなかなか大変な作業です。ただ、以前の書き方に比べて圧倒的に可読性も向上していますし、データ競合などによるクラッシュのリスクを回避して、アプリの品質を向上できるのは非常に嬉しいことです。今後も引き続き、学習や理解を進めつつ、対応をしていきたいと思いました!
Kotlin MultiplatformでSaaS大規模アプリの生産性を向上させる技術的意思決定と導入効果を最大化するための取り組み
Kotlin MultiplatformでSaaS大規模アプリの生産性を向上させる技術的意思決定と導入効果を最大化するための取り組み
内容のメモ
- iOSとAndroidのアプリを別々に作っていたが、作業の重複と実装のズレで、生産性を下げていた
- Kotlin Multiplatformは、共通化の自由度が高い
- APIアクセスのみを共通化したり、UI含め全てを共通化することも可能
- 既存とコードを共有しつつ、段階的な移行も可能
- Kotlin Multiplatformの研修を2日間実施し、KMP専門のチームを作らないようにすることで、マネジメントラインなどのボトルネックを解消した
- KMP用のコーディング規約、用語集やトラブルシューティングなども作成し、iOSのメンバーがキャッチアップしやすいように進めていった
- Kotlin Multiplatformを導入してから、iOS/Androidのメンバーを2人ずつ混ぜたチーム体制に変更した
- ただし、SwiftからKotlin Multiplatformのコードを呼び出す時は、Objective-C扱いになってしまうので、Swiftから呼び出しやすいようにwrapperを作る必要があるのが難点
- 今後、Swiftにダイレクトに変換できるようにしようという動きはある
感想
当社では、iOSエンジニア/Androidエンジニアが、得意とするプラットフォーム領域に関わらず両方の作業を担当するように作業ローテーションを組んでおり、これにより、両方のプラットフォームの開発を誰でも担当できるようになってきています。しかし、今後新規メンバーが増えた時の教育コスト等を考えると、導入の検討をしてみた方がいいな、と改めて思いました。
最後に
昨年に引き続き今年もiOSDC Japan2024に現地参戦しました。昨年はiOS開発の実装に携わっておらず、発表の内容がかなり難しく感じましたが、今回は理解できる部分も増えてきて、社内メンバーとセッショントークの内容について議論を交わしたりすることも少しずつできるようになってきました。iOSの技術力に自信がなくても、自身の成長を知る意味で参加してみるのはアリだなと感じました。
今年からスポンサーブースの数が増え、モバイル開発をしている企業が多数参加していました。スポンサーブースではクイズやアンケート、実際に開発されたアプリのほか、業務内容をポスターにしたもの(!)などさまざまな展示が行われていました。もし学生のみなさんで、モバイルアプリ開発に興味がある方は、現地で企業担当者から直接お話を聞いてみるのも良いかもしれません。また、どの企業がモバイルアプリ開発を手掛けているのかを知ることにも役立つと思います。ぜひ参加してみてください!
当社ではiOSDC JapanやDroidKaigi、AWS Summitといった最新の技術を取り扱うカンファレンスへの参加を積極的に支援しています。気になった方はぜひ採用情報をご覧ください。
#ididblog
掲載内容は、記事執筆時点の情報をもとにしています。