try! Swift Tokyo 2024に参加しました! #tryswift

こんにちは! iOSエンジニアの谷藤(@penguinsan_pg)です。

先日開催された try! Swift Tokyo 2024 に、フェンリルからは9人のiOSエンジニアが参加しました。私は今までにiOSDCなどのカンファレンスには何度か参加したことがありましたが、try! Swiftへの参加は今回が初めてでした。

初めてtry! Swift Tokyoに参加して感じた率直な感想や、印象に残ったセッションについて紹介したいと思います。

try! Swift のグローバルな雰囲気

会場について最初に感じたことは、「海外の人がとても多いな!」ということでした。過去にiOSDCやDroid Kaigiなどのカンファレンスには何度か参加したことがありましたが、try! Swiftほどグローバルな雰囲気のカンファレンスには参加したことがありませんでした。実際に、800名近い参加者のうち200名以上は海外からの参加だったそうです。

また、セッションのスピーカーも海外からの参加者が多く、英語での発表が多いこともすごく新鮮だなと感じました。私は英語が苦手なので話している内容を理解できるかがとても不安でしたが、トランシーバーで同時通訳の音声を聞くことができたので十分に理解することができました。なので、カンファレンスに興味はあるけど英語に自信がない...って方も、ぜひtry! Swift Tokyoに参加してみてください!

Day 1~2: カンファレンス

最初の二日間は、メインホールでのセッションを中心としたカンファレンスが開催されました。

try! Swiftでのスピーカーは著名な方が多く、自己紹介のときに「Xのタイムラインでよく名前を見る人だ!」や「よく使うサービスやライブラリの開発者だ!」と思うことが何度もありました。国内だけでなく、海外の有名なつよつよエンジニアの発表を生で聞ける機会は滅多にないので、これは国際カンファレンスであるtry! Swiftのすごくいいところだなと強く思いました。

また、メインホール以外の場所にはスポンサーブースなどが設置されており、セッションの合間などには各ブースをまわってエンジニア同士で意見交換ができました。使っているUIフレームワークについてのアンケートを取っているブースや、自社で採用しているアプリのアーキテクチャや開発体制についてブースにいるエンジニアと話すことができたりと、普段はなかなか知ることができないリアルな現場の状況を聞けてとても参考になりました。

他にも、会場ではVision Proのミニ体験会がいくつかの場所で発生していました。(try! Swiftの会場全体ではVision Proを持っている人が10人以上いたような気がします 😮 ) まだ日本では発売されていないVision Proを体験することができたので、個人的にはこれだけでも参加した価値があったなと思いました 😉

印象に残ったセッション

二日間で22個のセッションが行われ、どれも素晴らしいセッションでとても勉強になりました。
その中でも、私はJosh Holtzさんの「コード署名を楽しく乗り切る方法」というセッションがとても印象に残っています。

セッションの内容を、自分なりに要約しました。


コード署名と聞くと、多くのエンジニアは頭が痛くなると思います。
しかし、必要以上に難しく考える必要はありません。
コード署名では、たった4ピースのパズルを完成させるだけで問題のほとんどが解決します。

コード署名に必要な要素は以下の4つです。

  • Team ID
  • Application Identifier
  • Cert Type
  • Provisioning Profile

そして、これらの要素には依存関係があります。

  • Application Identifier
    • Team IDに依存
  • Cert Type
    • Team IDに依存
  • Provisioning Profile
    • Application Identifier, Cert Typeに依存

↑のように文字で書くと、とても複雑に見えます。そこで、図のようにパズルとして考えてみましょう。
パズルとして考えると、複雑なコード署名の関連性もかなり簡単に見えると思います。

ここで、開発中のアプリのApplication Identifierを変更する必要が発生しました。
あなたはApplication Identifierを変更しましたが、残念なことにXcodeではコード署名のwarningが発生してしまいます...

コード署名に苦手意識があると、このwarningを見ることはとても苦痛に感じますが、先ほどのパズルで考えると何も難しいことはありません。
Application Identifierが変わったということは、パズルで例えるとはめ込むピースが変わったということです。そのため、以前と同じピースを使っているとwarningが発生してしまいます。
これを解決するために、更新したApplication Identifierに合わせてProvisioning Profileも作り直しましょう。

Provisioning Profileを更新すると、Xcodeのwarningを消すことができました 🎉
これでもう、あなたはコード署名のことが大好きになったのではないでしょうか?


Day 3: ワークショップ

最終日はこれまでと内容が異なり、さまざまなワークショップが開催されました。

私は「Swiftでレゴを動かそう!」のワークショップに参加しました。このワークショップでは、Bluetooth通信ができるレゴのキットを使って、iOSデバイスからレゴを動かすデモンストレーションをしました。

ワークショップの前半は、Bluetooth Low Energyの概要とCore Bluetoothフレームワークを使ってBLEデバイスを制御するやり方について学びました。今までBLE通信の実装はとても難しいイメージがあったのですが、親デバイス(Central)と子デバイス(Peripheral)の関係や、各BLEデバイスが受け取ったイベントの処理はDelegateパターンで実装するというポイントを押さえておけばそれほど難しくはないなと感じました。

ワークショップの後半には、レゴのキットを使ってレゴブロックを動かすデモンストレーションをしました。デモンストレーションではBLEデバイスとのペアリングからBLEデバイスの制御(モーターの回転数の設定など)までを一通り体験し、Core Bluetoothが持つDelegateの動作について確認することができました。

おわりに

今回try! Swiftに参加して、とても多くのことを学ぶことができました。ここで紹介したもの以外にも、セッションや交流の中で気になる技術トピックはいくつもあったので、これからどんどん調べていきたいなと思っています。

また、会場で多くのエンジニアと交流ができたことも非常に刺激的でした。私は関西に住んでいてiOSエンジニアと交流する機会はなかなかないので、ブースや懇親会などでたくさんの人とさまざまな話ができたことはとても良かったです。

最後になりますが、今回try! Swift Tokyoの開催に携わった主催者・関係者の皆様に対して心から感謝を申し上げます。来年以降も、try! Swift Tokyoが開催されて、また参加できることをとても楽しみにしています!