Yappli Tech Blog

株式会社ヤプリの開発メンバーによるブログです。最新の技術情報からチーム・働き方に関するテーマまで、日々の熱い想いを持って発信していきます。

【参加レポート】 iOSDC Japan 2024

はじめに

みなさん、こんにちは!
2024年9月1日からヤプリにiOSエンジニアとしてジョインしました白数(@cychow_app)です!
現在は「Yappli On-boarding Program」と呼ばれる、新入社員を対象とした入社後3ヶ月間のフォローアッププログラムに参加しており、ヤプリのサービスや会社、働いている方々などについて情報をキャッチアップしています。

2024/08/22 (木) ~ 2024/08/24 (土)の3日間で、iOS関連技術をメインのテーマとしたテックカンファレンス「iOSDC Japan 2024」が開催されました。
私はiOSDC Japan 2020から毎年参加しており、今年で5回目の参加となりました。
例年通り、iOS関連のセッションも数多くありましたが、今年はvisionOS向けのセッションも複数あり、非常に興味深くセッションを聞いていました。
本記事では、今回参加したセッションの中で興味深いと感じたセッションを幾つかご紹介していきます!

セッションのご紹介

空間ビデオフォーマット、MV-HEVCが映し撮る世界

speakerdeck.com

■ セッションの内容について

こちらのセッションはApple Vision ProとvisionOSの登場によって注目され始めた空間情報を含むビデオ「空間ビデオ」に焦点を当てたセッションでした。 序盤では、どういった原理で空間ビデオが立体的に見えるのかを説明してくださっており、空間ビデオに潜む技術的な課題なども具体的にお話しされていたため、空間ビデオ初心者の私でも理解しやすい内容となっており、また空間ビデオの世界に非常に興味を持ちました!

先日参加した空間コンピューティング関連イベント「ARISE for Business #1」内でも、Apple Vision Proの試着をさせていただき、その中で空間ビデオの映像に感動したばかりだったこともあり、このセッションを参考にしながら、個人的にも空間ビデオを撮影しつつ、またソースコードレベルで中身を覗いてみたいと感じました。

セッション後には、Ask the speakerにも参加し、「どのようにして空間ビデオについて情報をキャッチアップされたのか」について、Speakerの@Ridwyさんにお話を伺ったところ、論文などを中心に読み、情報を得ているとのことでした。また、VITURE ProというXRグラスを試着させていただき、実際に空間ビデオを体験させていただきました!
VITURE Proは上のダイヤルを回すことで、度数を調節することができるため、実際に視差を調整していく過程を感じることができました。

続・SharePlayの歴史と進化:iOS18とApple Vision Proにおける新展開

speakerdeck.com

■ セッションの内容について

こちらも上記でご紹介しました「空間ビデオフォーマット、MV-HEVCが映し撮る世界」に引き続き、Apple Vision Pro関連のセッションとなっていました。
アプリで優れた共有体験を提供することを目的とした機能「SharePlay」を軸に、2021年登場以降SharePlayの歴史を辿りながら、現在のSharePlayがどのように進化したのかについて紹介されていました。

私自身もSharePlayはAppleのビデオ通話アプリケーションFaceTimeの一機能という印象を持っていたのですが、すでに2022年にはFaceTimeからメッセージアプリなどのその他のアプリケーションにも拡張されており、また離れた場所との人と使用するという概念も、2023年にはAirDropなどの登場により、近くの人を含めた、誰とでもアプリを共有することができるようになりました。 そして、2023年のWWDCにて発表されたApple Vision Proに搭載されているvisionOSでは、すぐにvisionOS向けのアプリケーションを他のApple Vision Proユーザーに対して共有できるように、全てのWindowの上部に常にSharePlayを利用できるような導線が用意されました。

Apple Vision Proは、デバイスにある複数のカメラで撮影された映像をリアルタイムに、ディスプレイに表示する「Video See-through方式」を採用しているため、どうしてもデバイスを装着する際には頭を覆わないといけないということもあり、人と人との間で心理的な距離を作ってしまうというデメリットがあると感じていました。ただ、SharePlayを駆使することで現状、Apple Vision Proユーザー間には限られますが、心理的な距離を取り去ってくれるメリットがあると感じました。

Mergeable Librayで高速なアプリ起動を実装しよう!

speakerdeck.com

■ セッションの内容について

こちらのセッションは、Dynamic FrameworkとStatic Frameworkのリンクについての前提知識から、それぞれが抱える問題、その解決策の一つとしての「Mergeable Library」についてなど、ビルド設定周りについて深くまで掘り下げたものとなっていました。

「Dynamic Framework」としてビルドされる場合は、ビルド済みのフレームワークをアプリに内包しており、起動時にそれぞれのフレームワークをリンクする(Dynamic Link)ようになっています。そのため、ビルド時にはリンクは行わないことから、ビルド時間は短いという特徴があるため、開発時に複数回ビルドを行う場合はDynamic Frameworkとしてビルドする方が良いという特徴があります。 ただ、起動時にリンクを行うため、ターゲットが多い場合はアプリ起動に時間を費やしてしまうというデメリットもあります。

一方、「Static Framework」としてビルドされる場合は、ビルド時に必要な実装を探索して解決、リンクを行います。そのため、ビルド時間はビルド時にリンクを行うことから、時間を費やしてしまう傾向にあるため、開発時に複数回ビルドを行うこともあり、Static Frameworkとしてビルドするのは不向きといえます。ただ、起動時間には影響がないため、リリース時には適していると言えます。

これまでの方法だと、「Build Settings > Linking - General > Mach-O Type」からDebugあるいはRelease時によって、Dynamic Libraryとしてビルドするか、Static Libraryとしてビルドするかを指定することにより設定することができましたが、DebugビルドとReleaseビルド時の Mach-O Type設定が異なる場合、バイナリのSymbolが重複することで不具合調査時などに複雑化するということ、Resource Bundleの扱いに関してBundle(for:)のランタイムの挙動が異なってしまうなどの問題を抱えていました。そこで活躍するものが「Mergeable Library」とのことでした。

私自身は「Dynamic Framework(Dynamic Link)」や「Static Framework(Static Link)」といったフレームワークの知識が疎いこともあったため、こちらのセッションによって、アプリのパフォーマンスを考える上でも今後理解しておくべき内容だなと感じました。

Appleの新しいプライバシー要件対応:ノーコードアプリのアプリプラットフォームの実践事例

speakerdeck.com

■ セッションの内容について

こちらのセッションは、弊社ヤプリの取り組みの一環として対応した「プライバシー要件対応」に焦点を当てたスポンサーセッションとなっています。

WWDC 2023にて、新たなプライバシー要件が発表され、App Storeにアップロードしているアプリケーションが新たなプライバシー要件に準じているかを、アプリケーションの開発者が確認し、対応する必要があります。新たに発表されたプライバシー要件は大きく以下の2つとなります。

  • 必要に応じてプライバシーマニフェストをプロジェクト内に保持していること。
  • SDKを提供する開発者はコード署名を行うこと。

プライバシーマニフェストに関しては、別途Appleから作成方法が公式ドキュメントとして提供されています。ただ、具体的にどのようにプライバシーマニフェストをプロジェクトに追加し、どのような項目を追加すべきなのかを把握するためには時間を要します。こちらのセッションでは、プライバシーマニフェストの具体的な対応内容なども深くまで紹介されており、これからプライバシー要件を対応される方々には非常に心強い内容になっているという印象を受けました。

(以前私が携わっていたiOSアプリのプロジェクトでもプライバシー要件の対応が必要だったことを思い出し、その時にこれぐらいの粒度でまとまったセッションがあれば、対応も非常に楽だっただろうなとひしひしと感じながら、セッションを聞いていました...)

Speakerの@Nao_RandDさんがテックブログを執筆されていますので、より詳しい内容にご興味がある方は、ぜひこちらも一読いただければ幸いです!

tech.yappli.io

最後に

今年も去年に引き続き会場参加しましたが、会場内も非常に賑わっており、スポンサーブースでも多くの方々とコミュニケーションをとることができました!
セッションも幅広い分野で発表されており、よりiOS周辺分野の技術に興味を持ちました。(興味を持った内容をキャッチアップしていくのは非常に大変ですが....)
Apple IntelligenceやvisionOS、Swift6など今後も注目すべき内容のセッションやポスター、パンフレットなども数多くあり、まだまだ見れていないものも沢山あるので、引き続き情報のインプットに勤しんでいきたいと思います!