こんにちは!マンガアプリチームでiOSアプリエンジニアをしています id:fxwx23 です。
2024年3月22日から24日にかけてベルサール渋谷ファーストにて try! Swift Tokyo 2024 が開催されました。はてなは今回シルバースポンサーとして協賛させていただき、はてなの一員として参加してきました。聴講した中で印象深かったセッションについていくつかピックアップしてご紹介します。
try! Swift Tokyo 2024 に参加してみて
try! Swift Tokyo の開催は2019年以来となります。try! Swift Tokyo 2020 の開催も準備が進められていましたが、新型コロナウイルス感染症(COVID-19)の影響もあり残念ながら中止となってしまいました。今回の try! Swift Tokyo 2024 は5年ぶりの開催ということで、スポンサーブースを含め沢山の参加者で賑わっていました。786名の参加のうち250名が海外からの参加者というオーガナイザーからの発表もあり、世界的にも大きなSwiftのテックカンファレンスであることを実感しました。
世界中から異なるバックグラウンドを持つ人々が参加するということもあり、食事の配慮などの取り組みも紹介されています。こうした素晴らしい取り組みが国際的なカンファレンスの開催を支えているのだなと感じました。
try! Swift Tokyo 2024 では、Swiftの言語機能からアプリケーション開発に至るまで、多様なトピックについてのセッションが行われました。アプリケーション開発に関するセッションのテーマは、iOS だけではなく、macOS から Apple Vision Pro に搭載される visionOS、Web や Windows に至るまで多岐にわたりました。
今回はそのカンファレンスのセッションの中から一部を紹介したいと思います。
try! Swift Tokyo 2024 において印象深かったセッション
AIによる言語学習の変革:DuolingoのAIチューターを深掘る
x.com📣 try! Swift Tokyo 2024 Session Start 📣
— try! Swift Tokyo (@tryswiftconf) 2024年3月22日
"AIによる言語学習の変革:DuolingoのAIチューターを深掘る / Transforming Language Learning with AI: A Deep Dive into Duolingo’s AI Tutor"
🗣️ by @rubyxw3 👏 #tryswift pic.twitter.com/zornboqBfO
(Xingyu Wang 氏)
言語教育プラットフォーム「Duolingo」アプリでの GPT-4 を組み込んで開発したAIチューター機能開発の知見に関するセッションでした。
Duolingo MAX という有料プラン*1における GPT-4 を基盤とした「Roleplay」という機能を紹介し、AIチューターとインタラクティブに対話するシステムをどのように実現するか、工夫したポイントなどをお話してくれました。
ステートオブジェクトをそのままやりとりしてバックエンド側はステートレスにすることでシステム全体をシンプルに保つ、回答のレスポンスが返ってくるまでに次入力したいワードのサジェスチョン候補を取得しておいたり、欲しいタイミングに間に合わなければデフォルトの値を使うなどのテクニックが紹介されました。開発にはバックエンドシステムの経験が不可欠だったとコメントされていることも印象的でした。
チャットUI は UICollectionView を使っているとセッションの中では紹介されていましたが、アプリ全体でも9割近くは UIKit なんですと教えてもらいました。独自テイストのUIでもネイティブアプリケーションとして実装していく中での知見は他にも沢山ありそうですね!
Accessibility APIを使ってアプリケーションを拡張する
UIテストや自動化システムなどで使われている Accessibility API を使って別のアプリケーションを操作することで機能拡張するというセッションでした。
アクセシビリティというと自身をアクセシブルにすることをイメージしていましたが、他のアプリケーションが表示するテキストや画像を用いてAIアシスタントに指示を行うフローは目から鱗でした。アプリケーションにAIの機能が統合されていく流れは必然ですが、こうした仕組みを知っているかどうかでアプリケーション開発における発想のアプローチも変わっていきますよね。
macOS アプリケーションを作りたくなる素晴らしい内容でした。
Swiftの型推論を学ぼう
(@omochimetaru 氏)
Swift の型推論のわかりやすい解説でした。型推論は、静的型付けによる安全性と型の省略による記述コストを抑える素晴らしい言語機能ですが、どのように処理していくのかの知識は十分ではなかったので理解がより深まったセッションでした。
基礎的な双方向の推論アルゴリズムの説明から始まり、Swift の暗黙の型変換やオーバーロードに対応するためにどのように拡張していくかの解説、最後は Swift コンパイラを使って型推論の動作を出力させる方法とそのログの読み解く方法を紹介してくれました。
Aftrer Party でも直接お話させていただき、Protocol の Associated Types における推論の話も聞くことができました。Swift コンパイラ開発者の Slava Pestov 氏が執筆中の解説書「Compiling Swift generics*2」をぜひ読んでほしいとのことで、気になった方はぜひご覧になってみてください。
おわりに
以上より、この記事では try! Swift Tokyo 2024 における印象深いセッションを紹介しました。
今回の try! Swift Tokyo への参加を通して、技術的なキャッチアップはもちろん、エンジニア同士の交流も含めて大きな刺激を受けることができました。私自身オフラインカンファレンスの参加は初めてでしたが、Xでつながっていたり、普段利用しているライブラリの作者であったり、言語やその周辺エコシステムへのコミッター達、認知している方と直接コミュニケーションできたことは、とても貴重な経験でした。改めてこのカンファレンスが Swift コミュニティにおいて重要なカンファレンスであることを認識しました。
今回は聴講という形での参加となりましたが、次回以降の開催では登壇することを目標としてコミュニティへの還元と Swift のエコシステムへの貢献ができるように手を動かしていきたいですね!次はぜひワークショップも参加したいと思います。
最後に、try! Swift Tokyo 2024 を運営してくださったみなさまありがとうございました!
x.comはてなエンジニア(Apple Vision Pro所有率75%) #tryswift #tryswift_photo pic.twitter.com/quVljf73mp
— Hiroki Kato (@cockscomb) 2024年3月23日