try! Swift Tokyo 2025に参加しました!

こんにちは、TVeriOSエンジニアを担当している福島です。 先日開催された try! Swift Tokyo 2025 に参加してきました!

今回、私たちはスポンサーとして企業ブースを出展し、セッション聴講や他社のエンジニアの方々との交流など、非常に充実した時間を過ごすことができました。この記事では、当日の様子を簡単にご紹介したいと思います。

try! Swift Tokyoとは?

try! Swift Tokyo は、Swiftに特化した国際カンファレンスで、日本国内だけはなく海外からも多くのエンジニアが一堂に会するイベントです。

セッションの多くは英語で行われ、最新技術の共有や、開発に関するナレッジの発表、エンジニア同士の交流の場としても毎年大きな注目を集めています。

今回のイベントも、業界の第一線で活躍されている方々による知見が詰まったセッションばかりで、大きな刺激を受けました。

企業ブースでの様子

TVerとして企業ブースを出展しました。ブースでは、TVerというプロダクトへのご意見ご感想や、開発に使っている技術スタックについての情報交換など、エンジニア同士での交流を楽しむことができました。

ユーザーの声

多くの方に「TVer使ってますか?」と伺うと、嬉しいことに利用してくださっている方が大半でした。 普段視聴している番組の話から、アプリの使い勝手や新機能への期待まで、ユーザーの生の声を直接聞く貴重な機会となりました。

日頃からアプリを使っていただいている方々の期待に応えるため、より一層真摯に開発に取り組んでいきたいと思います!

技術交流

TVerで現在取り組んでいるリアーキテクチャで採用しているTCAやSwiftUIに関心のある方も多く、画面遷移や状態管理等、踏み込んだ具体的な実装方法について情報交換できたことは非常に有意義でした。

TVerではiOS 15までサポートしていることから、SwiftUIの新機能を使えないケースでの代替アプローチや互換性の確保など、「iOS 15サポートあるある」で他社エンジニアと共感し合う場面もありました。

同じ技術スタックを使用している企業のエンジニアとの情報交換は、今後の開発にとって大変参考になりました。

ノベルティ

ブースを訪れていただいた方へのノベルティとして、「TVerのなかみ」(TVer内部の様子をお届けするX公式アカウント)をフォローしていただいた方には、タンブラーや充電アダプタなどノベルティをプレゼントするキャンペーンを実施しました。

この施策は予想以上の反響をいただき、多くの方に喜んでいただけたようでした。実際にノベルティを受け取られた方からは、Xでこのようなお声もいただきました。

こうした反響もあり、「TVerのなかみ」アカウントのフォロワー数はtry! Swiftの期間だけで約200人増加しました。多くの方々にブースに足を運んでいただいた証として、大変嬉しく思っています!

まだ「TVerのなかみ」アカウント(@TVer_Inside)をフォローされていない方は、ぜひチェックしてみてください。開発の舞台裏や、エンジニアの日常など、興味深い情報を発信しています。

印象に残ったセッション

Swift OpenAPIを使ったライブコーディング ― ゼロから構築するストリーミングChatGPTプロキシ

このセッションは、Swift OpenAPIの威力を体感できるとても有意義なものでした。 OpenAPIのyamlファイルからSwiftコードを自動生成し、プロキシサーバーを構築するデモがライブコーディング形式で行われました。

お題は、野球などのスポーツでの応援歌が「レッツゴー○○○」とワンパターンになりがちな問題を解決し、選手の特徴に合った個性的な応援歌を自動生成する「ChantGPT」というサービスです。

Xcode以外の選択肢

開発環境にXcodeではなくVS Codeを採用していた点が興味深かったです。 SwiftとOpenAPIの拡張機能を活用したこの選択は、OpenAPI関連の開発においては非常に効率的だと感じました。

Xcodeしか使ったことがない身としては、業務でも活かせそうだなと、とても参考になりました。

Swift OpenAPIの素晴らしさ

発表者はまず、ChatGPTのAPIを直接呼び出すクライアントの作成から始めました。OpenAIが公開しているOpenAPIのyamlファイルからエンティティを自動生成し、API通信に必要な各種実装を行っていきます。

特に印象的だったのは、API定義に準拠した型安全なコードが自動生成される点です。 パラメータ設定のミスやレスポンスのパースエラーといった典型的なバグを未然に防げるため、開発工数の削減と品質向上に直結すると感じました。

TVerでもバックエンドでOpenAPIを採用し始めているため、この利点は非常に共感できました!

プロキシサーバーの威力

実際にChatGPTに特定チームの応援歌を作成してもらうデモでは、興味深い問題が発生しました。特定選手の応援歌を生成しようとした際、ChatGPTの情報が古く、選手が過去に所属していたチームの応援歌が生成されてしまったのです。

この問題に対し、最新のチーム情報をテキストファイルとしてChatGPTに学習させる解決策が示されました。 このようなロジック修正をより柔軟に行うため、OpenAPIのyamlファイルでChantGPT(プロキシサーバー)のAPI定義を作成し、そこからプロキシサーバー側、クライアント側のエンティティの自動生成・通信処理の実装が行われました。このアーキテクチャにより、

  • クライアントがChatGPTに直接依存しなくなる
  • 認証情報の管理が一元化される
  • 事前学習などの複雑な処理をサーバー側に隠蔽でき、関心の分離が実現できる

などのメリットがあると感じました。プロキシサーバーの必要性が実際の問題解決を通して自然と理解できる流れは非常に説得力がありました。 私自身はiOSエンジニアとしてフロントエンド開発を主としていますが、今回のセッションを通じてバックエンド側の解像度も高まり、業務にも活かしていけると感じました。

Appleプラットフォームにおけるセキュリティリサーチとバウンティハンティング入門

このセッションでは、Appleプラットフォームにおける脆弱性の発見方法や、Apple Security Bountyプログラムについて説明されました。 普段の開発の視点から少し離れた内容で、新たな発見が多かったです。

開発者にもできるセキュリティリサーチ

セキュリティリサーチとは、ソフトウェア、OS、ハードウェアにおける悪用される可能性のある脆弱性を発見する活動です。 このような活動を行う人々は「Ethical Hacker(ホワイトハッカー)」と呼ばれています。

興味深かったのは、普段私たちがソフトウェア開発で行っていることとの違いです。 開発者は「どうやったらうまく機能させることができるか」を重視していますが、セキュリティリサーチでは「どうやったら壊すことができるか」という考え方にシフトするだけなのです。

つまり、開発者ならば誰でもセキュリティリサーチャーになれる可能性があるという点が印象的でした。

脆弱性発見のアプローチ

セッションでは、脆弱性を発見するための具体的なアプローチとして、リバースエンジニアリングの手法が紹介されました。 Appleフレームワークデコンパイルし、内部処理を解析するというものです。

最新のデコンパイル用ソフトウェアを使えば、かなり理解できるレベルの疑似ソースコードが得られるとのことでした。 これにより、開発者でもAppleの内部実装を理解し、脆弱性を発見できる可能性があることを知りました。 時間のあるときに実際に試してみたいと思います。

Apple Security Bountyの仕組みと実例

Apple Security Bountyは、Apple製品の脆弱性Appleに報告することで報奨金が支払われるプログラムです。 報奨金は脆弱性の種類や影響範囲によって異なり、5,000ドルから最大200万ドル(約3億円!)にもなるそうです。

特に興味深かったのは、発表者が実際に経験した報告事例です。Xcodeの内部処理でUserDefaultsのキーとしてユーザーのApple IDのメールアドレスが暗号化されずに保存されており、他のアプリからも閲覧可能な状態だったとのことでした。

発表者はこの脆弱性を利用してメールアドレスを取得できるサンプルアプリを作成し、詳細なレポートとともにAppleに報告しました。 結果として7,500ドル(約100万円)の報奨金を受け取ったそうです。

事例を聞くと比較的シンプルな内容であり、日常の開発の中でも発見できる可能性があると感じました。機会があれば自分も貢献してみたいと思います。

開発者としての新たな視点

このセッションから得た最大の学びは、私たち開発者が普段の業務の中で異なる視点を持つことの重要性です。 普段何気なく使っているApple標準のアプリやAPIも人間が作ったものであり、必ずしも完璧ではありません。

「このAPIは悪用できないだろうか?」「この実装に脆弱性はないだろうか?」という視点を持ちながら開発することで、自分たちのアプリのセキュリティ向上にもつながりますし、もし実際にApple製品の脆弱性を発見できれば、報酬を得ながらAppleエコシステム全体のセキュリティ向上に貢献できるという、まさに一石二鳥の可能性があります。

TVerの開発においても、このような「壊す視点」を時には取り入れることで、よりセキュアな実装ができるのではないかと感じました。 セキュリティはユーザー体験の重要な一部であり、万が一の情報漏洩などを防ぐためにも、常に意識しなければならないテーマだと再認識できました。

最後に

try! Swift Tokyoを通して交流してくださった皆様、本当にありがとうございました! こうしてエンジニア間での交流が気軽にできる場があるのは、とてもありがたいなと改めて感じました。

また、TVerでは現在、一緒に働く仲間を募集しています! 5/21(水)12:00~13:00に、iOSエンジニアの小森がFindy Job LTに登壇してTVerでのiOSアプリ開発の状況についてお話する予定です。ご興味のある方はぜひご参加ください!

findy-code.io

カジュアル面談も受け付けています。少しでもTVerのことが気になった方は、お気軽にご連絡ください!

herp.careers