<-- mermaid -->

try! Swift Tokyo 2024に参加してきました!

ソーシャル経済メディア「NewsPicks」でiOSエンジニアをしている金子です。

世界中のiOSエンジニアが集う国際カンファレンス try! Swift Tokyo 2024 に参加してきました!

tryswift.jp

弊社のNewsPicksアプリで採用しているTCA(The Composable Architecture)の作者であるPoint-Freeのお二人が来日されるということもあり、これは行かない理由がない!と社内で手を上げて、行かせていただきました。

本記事ではtry! Swift Tokyo 2024参加レポートをお届けします。

Kaigi Pass

弊社にはKaigi Passという制度があり、カンファレンスの参加費用を負担してもらうことができます。

プロダクトチームのメンバーがカンファレンスに参加し、様々な知見を得たり刺激を受けたりして、それをチームにフィードバックし、より良いプロダクト作りに繋げようという思いで作られた制度です。

元々コロナ禍以前に似たような制度があったのですが、徐々にオフラインで開催されるカンファレンスも増えてきたというのもあり、CPOの文字の強い思いで復活しました。

try! Swift Tokyoも2019年を最後に開催が見送られていたのですが、今年5年ぶりに開催されることになりました。

TCAの作者も来日するということがわかり、このタイミングでKaigi Passという制度が発表され、これは行くしかないだろ!と思い、Kaigi Pass制度に一番乗りさせてもらいました。

一日中楽しめる

Apple Vision Proを使ったクールな演出で始まったカンファレンス!オープニングから盛り上げてくれました。

スポンサーブースでは、各社が思考を凝らした展示で楽しませてくれました。

iOSエンジニア向けのクイズを用意しているところが多く、ブース前で多くの人が議論したりしていました。

自分が知らないこともたくさんあって、クイズを通して新しい知識を得ることもできました。

会場ではRevenueCatのキャラクターのぬいぐるみを持って歩いてる人が結構いましたねw

僕は残念ながらもらえませんでした😢

Swiftをテーマにしたバラエティ豊かなトーク

2日間トークを聞いて、Swift・iOSには本当に無限の可能性があるんだなと刺激を受けました。

普段自分が触れている技術というのは、Swift・iOSという世界においてはほんの一部でしかないんですね。

勉強意欲が掻き立てられました!

ここでは個人的に印象に残ったトークを2つ紹介したいと思います。

Accessibility APIを使ってアプリケーションを拡張する(Enhancing Applications with Accessibility API)

speakerdeck.com

Accessibility APIを使うと、任意のアプリのUI要素から情報を取得したり、情報を書き換えたりすることができるようです。

本トークでは、macOS標準アプリであるTextEdit.appに対し、Accessibility APIを通じてエディタ上のテキストを取得してAIにインプットして回答を得たり、AIの回答をエディタに書き込むことができるコマンドを実装するといった、簡易なAIアシスタントを実装する方法について解説してくださいました。

こんなことができるのか!と感動したのと、Accessibility API周りのまとまった情報はあまり無いと思うので、とても貴重な情報を提供していただきありがたいですね。

すぐに手元で試せるサンプルコードも用意してくださっていて、僕も早速試しました。コード量も少なくシンプルなので、Accessibility APIを始めるのに良い材料だと思います。

github.com

Swiftで次世代のウェブサイトを構築しよう(Build your next website with Swift)

Swiftの強力なAPIを駆使して、SwiftでHTMLを生成できるようにしようという意欲的なトークでした。

※残念ながらスライドは公開されていません(僕が見つけられてないだけかも?)

SwiftのresultBuilderを活用し、まるでSwiftUIでビューのレイアウトを実装するかのようにHTMLを実装する方法について、わかりやすく解説してくれました。

そして、最後にビックリ!なんとSwift製のHTMLジェネレーターをOSSでその日に公開したと発表されたのです。

それがこちら。

github.com

Swiftは主にmacOSやiOSアプリ開発で使われていますが、サーバサイドSwiftの実装もVaporというメジャーなものがありますし、最近SwiftでAndroidアプリが作れるSkipなるものも公開され、そして今回HTMLジェネレーターまで発表されたので、Swiftだけで全てのプラットフォームをカバーできる環境が整って来てたりします。

iOSエンジニアとしては嬉しい限りです!

ワークショップでTCAを学ぶ

3日目はTCAのワークショップに参加しました。

TCAの作者であるPoint-Freeのお二人から直接TCAを学ぶことができる、またとない機会でした。

ワークショップの資料自体は公開されているので後から自分で学習することができますが、現地参加してライブコーディングを見ることでしか得られないものがあるなと思いました。

実装の進め方(思考の過程が垣間見える)、デバッグのやり方などは、リポジトリに公開されているコードではわからない、ライブコーディングならではのノウハウだと思います。

また、ワークショップの進め方でうまいなと思ったのが、ライブコーディングで完成したコードを逐一Githubのリポジトリにプッシュして、参加者が自分で実装して詰まったときにリポジトリからコードをコピーできるようにしていたことです。

参加者は教えてもらったとおりに実装しているつもりでもタイポしていたりしてビルドがうまくいかないことがよくあるので、そうなったときにコピペできるものがあると便利ですよね。

完成版のコードが用意されていることはよくありますが、チェックポイントごとに動くコードを参照できるようにするという発想はなかったので、今後自分がワークショップをやる機会があれば真似しようと思いました。

もくもく会でコントリビューション

ワークショップ後はもくもく会に参加しました。

参加者と会話しながら、try! Swift公式アプリにプルリクエストを出すことができました。

github.com

ついでにTCAにもプルリクエストを出しました。

github.com

普段一緒に仕事をしていない方と開発をするというのも新鮮で楽しいですね。

TCAの有識者の方とアーキテクチャについての議論をすることもできて、とても有意義な時間を過ごすことができました。

カンファレンス参加の一番の効用はモチベーションアップ

カンファレンスへの参加の一番の効用は、なんといっても自分自身のモチベーションアップです。

セッションを聞いて新しい知識を得ることももちろん重要な目的の一つですが、セッション中にすべてを理解することはなかなか難しいですし、たいていの場合はスライドが公開されるので後から復習することもできます。

それ以上に、登壇者が生き生きと発表している様子に刺激を受けたり、参加者と交流したりして、自分ももっと頑張ろうと思えることがカンファレンスに参加する意味なのかなと思います(モチベ上がったー!という投稿をTwitter上でたくさん見かけました)。

僕は今回Point-Freeのお二人に自分から話しかけ、簡単な自己紹介程度ではありましたが、交流することができて、めちゃめちゃモチベーションが上がりました(3人で写真を撮ることができたのもめっちゃ良い思い出)。

カンファレンスに行きたくなりましたか?そう思っていただけたら本記事は大成功です。

最後に、try! Swift Tokyo 2024を運営してくださったみなさま、素敵なカンファレンスをありがとうございました!

Page top