Gunosy Tech Blog

Gunosy Tech Blogは株式会社Gunosyのエンジニアが知見を共有する技術ブログです。

iOSDC Japan 2024にGunosyから参加しました

こんにちは。iOSエンジニアの吉岡(@rikusouda)です。先日開催されたiOSDC Japan 2024にオフライン参加(リアル参加)してきました。

iOSDC Japanとは

公式サイトからの抜粋ですが、下記のような技術カンファレンスです。

iOSDC Japan 2024はiOS関連技術をコアのテーマとしたソフトウェア技術者のためのカンファレンスです。今年もリアル会場とオンライン配信のハイブリッド開催を予定しています。
日本中、世界中から公募した知的好奇心を刺激するトークの他にも、パンフレットに掲載された技術記事、自分のペースでゆっくり参加できるポスターセッション、気持ちを盛り上げるネイルアートやフェイスペインティング、オープニングパーティ & 懇親会などなど、初心者から上級者まで楽しめるコンテンツがみなさんを待っています。
8月22日(木)〜 8月24日(土)はお祭りです!お楽しみに!!

iosdc.jp

印象に残ったトーク

座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」 by shiz

座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」 by shiz | トーク | iOSDC Japan 2024 #iosdc - fortee.jp

speakerdeck.com

このトークは Swift Concurrency にまつわる課題を話し合う座談会形式でした。

社内だけでSwift Concurrencyを使っていても、ある程度の利用方針などを作ることはできますが他社のエンジニアの見解も気になります。このトークではそのような課題への答え合わせができたり、知らなかった知識を吸収できました。

特に共感できたのが「Objective-CからSwiftになったときに、Optional対応は大変だったけどnilに関するエラーから逃れることができた。Swift Concurrency対応は大変だけど、データ競合のような問題から逃れることができる」といった内容のお話です。Swift Concurrency対応をしっかりしようとするとアプリの広範囲にわたって対応が必要となり大変になりがちです。ですがSwift Concurrency導入が終わったあとの開発では、更に安全に簡単に開発ができるのは大きなメリットと共感しました。

さらに「ビジネスロジックのようにメインスレッドからは分離可能な処理であってもむやみにactor(バックグラウンドスレッド)に分離する必要はない。1フレーム(16.6msec)ごとの画面描画を阻害しない範囲であればMainActor(メインスレッド)で行うほうが作りがシンプルで良いという考えもある」というのは新しい視点でした。

Swift 6のTyped throwsとSwiftにおけるエラーハンドリングの全体像を学ぶ

Swift 6のTyped throwsとSwiftにおけるエラーハンドリングの全体像を学ぶ by koher | トーク | iOSDC Japan 2024 #iosdc - fortee.jp

speakerdeck.com

Swiftでは throws でエラーを扱うことができますが、具体的な指定することができず Error という抽象的な型での受け渡しとなっていました。Swift 6では具体的な型が指定できるようになり、その具体的な仕様や利用上の注意点を知ることができました。

後半ではSwiftでのエラーの表現方法を全般的に取り扱い、どのようなときにどのようなエラーが適しているのかの見解を聞くことができました。

いままでthrowsでErrorの型を指定できなかった理由として、形を指定しないほうがメリットが大きい場合が多いためということに気がつくことができました。Combineやthrowsではエラーの型が指定できないことをデメリットと思っていましたが、そのほうがメリットがある場合が多いことを理解しました。

今後のSwiftでのエラー処理の方針を決めるのに参考になるトークでした。

感想

技術がテーマのカンファレンスですが、全体的に「楽しいを作ろう」という雰囲気に包まれていると感じました。多くのトーク内容は聞いた人が楽しめるように作られており、イベント全体の設計も多くの人が楽しめるような配慮が多かったように思います。

有意義で楽しい時間を過ごしました。

iOSDCで関わっていただいたすべての皆様に、ここであらためてお礼を申し上げます。