
iOSDC Japan 2025参加レポート|ブース出展の裏側と印象に残ったセッション4選
Posted on
KARTE for Appチームのエンジニアの悴田です。
プレイドは、2025年9月19日〜21日に開催された iOSDC Japan 2025 にゴールドスポンサーとして協賛し、ブース出展も行いました。
本記事では、当日のブースの様子と、聴講した中で特に印象的だった4つのセッションについてご紹介します。
ブースのご紹介
プレイドでは、モバイルアプリ向けのSDKを開発・提供しています。
現在は、モバイルアプリのエンゲージメント向上を目的とする「KARTE for App」と、Native UIの開発生産性向上を目的とした新規プロダクト (本記事公開時点ではクローズドベータ)、の2つを提供しています。
今回のブース企画・運営は、これら2チームの開発メンバーを中心に行いました。
ブースでは、「アプリグロースの課題に関するパネルアンケート」と「マーケティングSDKの利用状況に関するWebアンケート」の2つを実施しました。
アンケートにご協力いただいた方々には、弊社のノベルティグッズをプレゼントしました。
ノベルティグッズとして「ラムネ」「歯磨きセット」「携帯式のコップ」「米 (2合)」を用意し、特に「米」は物珍しさもあって好評でした。
また、Webアンケートは弊社の「KARTE」を用いて作成し、アンケートの回答後にはくじを引けるようにしました。
見事当たりを引いた方には、弊社のエンジニアが厳選した技術書の中から、お好きな一冊をプレゼントさせていただきました。
当選者の方々 (ブログ掲載許諾取得済み)
印象に残ったセッション
テストやビルドといったMobile SDK開発にも関係するセッションや、個人的に興味のある低レイヤー寄りのセッションを聴講しました。
1. 半自動E2Eで手っ取り早くリグレッションテストを効率化しよう
タイミー社での、E2Eテストの効率化に向けた現実的なアプローチが紹介されました。
当初、同社ではCI/CDとSaaSを活用した全自動のE2Eテストを目指していましたが、SaaSを使いこなす難しさや、SMS認証・QRコード読み取りといった実機特有のテスト項目が障壁となり、1年以上かけても安定運用には至らなかったそうです。
そこで、全自動化を諦め、以下のような「簡単にできる部分だけ自動化する」という半自動の方針に切り替えました。
- ローカルPCでアプリをビルドし、実機にインストールしてテストを実行する。
- テスト自動化ツールとして、Railsで使い慣れている「Ruby」で記述できるAppiumを使用する。
- 自動化できない処理は、手動で操作する。スクリプト内にsleepメソッドを入れ、一時停止中に手動で操作する。手動操作のタイミングは、音を鳴らす仕組みで伝える。
- うまく検出できないUI要素は、OCRを利用した画面タップで対応する。
このアプローチにより、わずか1ヶ月で運用を軌道に乗せることに成功したそうです。
私たちのチームにおいても、Mobile SDKのテスト自動化は重要な課題の一つです。
本セッションで語られている、完璧を求めず、最小の労力で最大の成果を得ることを目指すアプローチを取り入れたいと思いました。
2. Swiftビルド弾丸ツアー - Swift Buildが作る新しいエコシステム
XcodeならびにSwift Package Manager (SPM) において、Swiftコードがビルドされる流れと、その際に利用される各種ツール (`xcodebuild`, `swiftc`, `llbuild`など) の役割が紹介されています。
Xcodeでのビルドの場合、まずはXcodeが*.xcodeprojから「llbuildマニフェスト」を作成します。llbuildマニフェストとは、ビルドに必要なタスク一覧とそれらの依存関係を記述したファイルです。
続いて、llbuildマニフェストは「llbuild」に渡され、実際のビルド処理をコンパイラ (swiftc/clang) やリンカ (ld) を用いて実行します。
一方、SPMでのビルドの場合には、SPMがPackage.swiftからllbuildマニフェストを生成し、llbuildに渡します。
このような、llbuildマニフェストを生成するツールの違いが、XcodeとSPMの機能差の一因となっています。
その前提知識を踏まえた上で、最近新たに登場した「Swift Build」の立ち位置と可能性について解説されています。
Swift Buildは、XcodeおよびSPMの両方において「llbuildマニフェストの生成」を行えるツールです。これにより、機能差の軽減や新たな機能追加が見込まれています。
Swiftのビルドシステムの仕組みを、馴染みのない人でも難なく理解できるよう、丁寧に解説されています。
このテーマがここまで分かりやすく解説されるのは希少だと思いますので、ぜひアーカイブが公開されたら視聴をお勧めしたいです。
3. Embedded Swiftで解き明かすコンピューターの仕組み
このセッションは、Embedded SwiftとMMIO (メモリマップドI/O) を使い、OSのないベアメタル環境でコンピューターをゼロから動かす仕組みを紹介しています。
コンピューターの中心にはCPUがあり、機械語で書かれた命令を実行して動作します。
このCPUが実行できる命令セット (ISA) は、画面表示やネットワーク通信といった複雑な機能を直接含んでいる訳ではありません。
画面表示やネットワーク通信といった、周辺機器 (GPUやストレージなど) の制御に使われるのが、MMIO (メモリマップドI/O) です。
MMIOは、GPUなどの周辺機器をメモリ上の一領域とみなし、特定アドレスへデータの読み書きを介して、周辺機器をコントロールする技術です。
Embedded Swiftを使用することで、特定のメモリアドレスを直接操作できる、すなわちMMIOが可能となります。Embedded SwiftによるMMIOの実演として、Raspberry Piの画面を操作して、Swiftのロゴを画面に表示するデモが行われました。
コンピュータの動作原理の核心に迫る内容で、個人的に非常に面白かったセッションです。
説明が丁寧、かつ実演もあり、低レイヤに詳しくない人でも知的好奇心を満たされる内容かと思います。
4. アセンブリで学ぶCPUアーキテクチャ
Intel Macのサポート終了が発表され、Apple Siliconへの完全移行という転換点を迎えた今、アセンブリ言語を通じて、CPUアーキテクチャの仕組みを学ぼうというセッションです。
まず、これまでのMacにおけるCPUの歴史を振り返っています。
Macはこれまで、Motorola 68k (CISC) → PowerPC (RISC) → Intel x86 (CISC) → Apple Silicon (RISC) のように、命令セット (ISA) が複雑なCISCアーキテクチャと、命令が単純なRISCアーキテクチャの間を行き来してきました。このアーキテクチャ移行を裏で支えてきたのが、Rosettaのようなエミュレーション技術です。
続いて、アセンブリ言語の基礎が解説されています。アセンブリとは、機械語と1対1で対応する低レベルなプログラミング言語です。
このセッションでは、「Hello, World!」の出力をアセンブリで行うことで、CPUの動作原理を解説しています。同じ処理でも、 CISC と RISC でアセンブリの記述が変わることも示されました。
最後に、実務的な応用例として、アプリがクラッシュした際のスタックトレースを読む際に、アセンブリの知識がどのように役立つかが紹介されました。
3.のセッション (Embedded Swiftで解き明かすコンピューターの仕組み) と同様、コンピュータの動作原理を解説した内容ですが、異なるレイヤーにフォーカスした解説となっています。
両方のセッションを聴講したことで、コンピュータの動作原理をより立体的に理解できました。
アプリ開発をしていると、時たま「あるライブラリがApple Siliconでは動かない」など、CPUアーキテクチャを意識せざるを得ない場面に遭遇するかと思います。そういった場面に備えて、低レイヤーの理解を深める上で良いセッションかと思います。
おわりに
iOSDC Japan 2025の3日間、弊社ブースへ多くの方々にお立ち寄りいただきました。
アプリのグロースに関する課題感から、KARTEのご紹介まで、皆さんと直接お話しできたことは、私たち開発チームにとって大変有意義でした。
本記事でご紹介したセッションは、私の個人的な興味から低レイヤー寄りの内容が多くなりました。
私と同じくコンピュータサイエンスの探求が好きなモバイルエンジニアの方がいらっしゃいましたら、ぜひカジュアル面談でお話ししましょう!
プレイドでは、以下のポジションでモバイルエンジニアを積極的に採用しています。
ご興味のある方は、ぜひリンク先の募集要項をご覧ください。
最後に、この素晴らしいカンファレンスを企画・運営してくださったスタッフの皆様、そして私たちのブースに足を運んでくださった全ての参加者の皆様に、心より感謝申し上げます。