2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

try! Swift Tokyo 2025 2日目感想

Last updated at Posted at 2025-04-10

try! Swift Tokyo 2025 2日目の感想も1日目に続き、雑に綴っていきます。

1日目の感想はこちら。


visionOS 向け TabletopKit でゲームを作ろう

TableTopKit という VisionOS 向けのフレームワークを用いて、ボードゲームを実装する方法について紹介されていました。

TableTopKit はその名の通り「テーブル上で行うゲーム」の作成に特化しており、テーブルの生成や椅子に着席する動作などを表現する API が用意されています。そのため、直感的かつ簡単にボードゲームを構築できる印象を受けました。

WWDC のセッション動画や公式ドキュメントでも TableTopKit のデモが紹介されており、非常にリッチな UI のボードゲームが実現されていて、デモレベルでもここまでできるのかと感動いたしました。こういった事例を見ると、VisionOS のアプリ開発に対するモチベーションも一層高まります。


一度作れば、どんな入力でもプレイ可能な iOS ゲーム

iOS アプリで作成したゲームを、さまざまな入力方法で操作できるという内容でした。以下のような多様な入力が紹介されており、いずれも非常に興味深いものでした。

特に Eye Tracking 技術はまさに近未来的で、映画で見たような体験が現実になっていると感じ、非常に感動しました。いつかこの技術を使って何か作ってみたいです。


MSDF と Metal を用いた美しいテキストレンダリング

MSDF(Multi-channel Signed Distance Field)という技術を用いることで、ズームしても文字がぼやけることなく、美しくレンダリングできるという内容でした。

ただし、Metal や低レイヤーのグラフィックスに関する知識が求められるため、個人的には難易度が高く、すべてを理解することはできませんでした。グラフィックの専門知識をお持ちの方であれば、より深く理解できるのではないかと思います。

また、MSDF AtlasGen というライブラリを使えば、比較的簡単に実装できるとのことでした。


SwiftUI でレイマーチングシェーダー

こちらも Metal 関連のセッションで、Metal によってどのようなことが可能か、そしてその実装方法について紹介されていました。

レイマーチングなど初めて聞く用語も多く、前のセッションと同様に、私には少々難易度が高かったです。ただ、SwiftUI 内で #shader のようなマクロを用い、Swift 構文でシェーダーを記述していた点は非常に印象的でした。

SwiftGLSL というライブラリを利用しているっぽく、こちらのリポジトリ にも "Coming soon!" と記載があるため、今後は公開されそうで楽しみです。

Swift でシェーダーが書けるようになると、Metal の学習ハードルも下がりそうですね。


NeXTSTEP 向けアプリを作った話 ― Objective-C を恐れるのをやめ、愛するようになった理由

NeXTSTEP 時代の開発環境でプログラミングを行う様子を拝見できる、非常にエモい内容でした。

「NS」というプレフィックスが NeXTSTEP に由来することは知っていましたが、当時の IDE やビルドプロセスについては全く知らなかったため、非常に新鮮かつ興味深かったです。

特に驚いたのは、当時の IDE が非常に高速だったことと、シンプルながら完成された UI です。現在の Xcode は高機能である分、不安定な面もありますが、改めてその豊かな UI には感謝したいと感じました。


Vision Pro × Text to 3D Model: Swift と生成型 AI が切り拓く新時代の空間コンピューティング

テキストから VisionOS 上に 3D モデルを生成するアプリの実装事例が紹介されていました。

AI によって 3D モデルが生成されるというプロセスは、個人的に非常に驚きでした。「そんなことまでできるのか!」という気づきがありました。

以下のような AI モデルが紹介されていました:


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

Swift によるプロキシサーバーの構築が非常に高速に行われていて、非常に驚きました。

これまで Swift でサーバーを構築するイメージはありませんでしたが、Swift Package Manager を活用して、iOS 開発者でも手が届きそうな構成になっていました。

今回紹介されたライブコーディングのリポジトリはこちらです:

また、Swift でのサーバーサイド開発には Vapor というフレームワークが用いられるようです。個人アプリのバックエンドなどで、ぜひ使ってみたいと思いました。


Apple Vision Pro: ハンドトラッキングを基盤とした新インターフェース

VisionOS の特性を活かした UI コンポーネント SystemOverlay の実装方法が紹介されていました。

VisionOS の開発にとても興味を持ちましたが、Simulator 上では試せない機能もあるとのことで、やはり Vision Pro を持っていない開発者にとっては少しハードルが高いと感じました。今後、その辺りが改善されることを願っています。


RealityKit で iOS アプリに命を吹き込む

iOS アプリにおいて 3D モデルを扱う方法に関するセッションでした。

個人的にはまだ知識不足で、RealityKit や photogrammetryAPI など理解が追いつきませんでしたが、以下の公式リソースを参考に再度学習してみたいと思っています:


Swift × Android: Skip が切り拓くクロスプラットフォーム開発の未来

Swift でクロスプラットフォーム開発が可能になるという点に非常に魅力を感じており、このセッションを楽しみにしていました。

Skip を導入する上での疑問点に関する回答も紹介されており、非常に参考になりました:

  1. UI はどうなる?
    → Swift から Kotlin + Jetpack Compose への変換(トランスパイルモード)によって、プラットフォームに即した UI を実装可能。

  2. トランスパイルモードとネイティブモード、どちらがおすすめ?
    → ネイティブモード(Swift をそのまま使う)がおすすめとのことです。
    SwiftからKotolinへ変換できない構文もあるらしく、トランスパイルモードだと実装時に考えることが増えるみたいですね。

  3. 既存アプリへの導入は?
    → 技術的には可能ですが、難易度が高く、あまり推奨されないとのこと。

現在はまだ発展途上の段階ですが、今後の成長に非常に期待しています。次に個人アプリを開発する際には、ぜひ Skip を使ってみたいと思いました。


J1 プロサッカーチーム FC 町田ゼルビアの Immersive 動画を撮影し Swift で Viewer を実装し体験会実施した

VisionPro の持つユーザー体験のインパクトを強く感じられるセッションでした。

タイトルの通り、VisionOS 上で Immersive 動画を再生するアプリを実装し、実際に体験してもらったとのことでした。体験中のユーザーの感動した表情が非常に印象的で、やはり VisionOS の開発は魅力的だと再認識しました。

また、アプリ開発において「体験の目的に関係ない要素は極力排除する」という姿勢が徹底されていた点も非常に参考になりました。これは VisionOS に限らず、すべてのプロダクト開発において大切な考え方だと感じました。

不要なフィーチャーを排除し、目的に集中したシンプルなアプリに仕上げたことが、体験の質を高める上で重要なポイントだったように思います。


以上、1日目に引き続き、雑な感想でした!
2日目のセッションはグラフィックス関連の内容が多かったですね。
1日目に比べ、個人的にはかなり難しい内容が多かったため、グラフィックスの知識が全然足りないことに気づけました!
ここはこういう意味だよとかのコメントも大歓迎ですので、何かありましたらコメントください!!!

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?