blog

DeNAのエンジニアが考えていることや、担当しているサービスについて情報発信しています

2026.10.06 イベントレポート

あなたに憑いているのはどの妖怪? DeNAブースのiOS開発妖怪診断 iOSDC Japan 2026参加レポート

by TAAT

#iosdc #ios #visionos #swift #swiftui #mobile #swiftwednesday

こんにちは!DeNAでiOSエンジニアをしている TAAT です。

先日、2026年9月11日(金)から13日(日)の3日間にわたり開催されたiOSDC Japan 2026に、DeNAはゴールドスポンサーとして協賛し、イベント会場でブースの出展もさせていただきました!

本記事では、DeNAから登壇したエンジニアの発表と、ブースで実施した企画「iOS開発妖怪診断」およびその集計結果について、当日の様子を交えながらレポートします!

iOSDC Japan 2026概要

会場に置かれたiOSDC Japan 2026のロゴパネル

iOSDC Japan 2026

  • 日程:2026年9月11日(金)〜2026年9月13日(日)
  • 会場:有明セントラルタワーホール&カンファレンス + ニコニコ生放送
  • 主催:iOSDC Japan 2026実行委員会

iOSDC Japanは、iOS関連技術をコアテーマとする、ソフトウェア技術者のためのカンファレンスです。DeNAは2017年開催の第2回からスポンサーとして協賛しており、今年で10回目の参加となります。

DeNAからの登壇

今回のiOSDC Japan 2026では、DeNAから3名のエンジニアが登壇しました。また、iOSDC Japan 2026の運営コアスタッフに、DeNAから3名のエンジニアが参加していました。

Sugiy

Apple Vision Proを装着して登壇するSugiyさん

「いつかやってみたかった」を形にする -アニメのカードバトルを再現するまで-

2026/09/11 17:20〜 | Track B | レギュラートーク(20分)

アニメで見たカードバトルの体験を、Apple Vision Pro上で再現した個人開発についての発表です。腕に装着したディスクからカードを引き、フィールドに置くとモンスターが空間に現れるデモを交えながら、Blenderでの3Dモデル制作からReality Composer Proでのパーティクルエフェクト、RealityKitへの組み込みまでの流れを紹介しました。

Blenderでのモデリングでは、手首への固定点やカードを置く位置に「ロケーター」を仕込んでアプリから座標を参照できるようにする工夫と、BlenderのZ-upとRealityKitのY-upの違いでノードの向きがずれてしまう落とし穴を取り上げています。ハンドトラッキングでは、カードを「引く」「持つ」といった操作を手の動きで実現しました。さらにRealityKit側では、ディスクを手首に安定して装着するために、トラッキングを見失ったときは直前の姿勢を保ち、細かな揺れを指数移動平均でならして、腕に付いているように見せる工夫を解説しています。

3Dアセットの扱い方やRealityKitの知見はiOSやiPadOSにも応用でき、「いつかやってみたかった」を自分の手で形にするためのヒントが詰まったトークでした。

発表資料: 【iOSDC2026】「いつかやってみたかった」を形にする -アニメのカードバトルを再現するまで-

noppe

noppeさんのセッション中に満室の札が立ったTrack Dの入口

柔軟性のあるUIで、多くの環境でアプリを活躍させる

2026/09/13 10:30〜 | Track D | レギュラートーク(40分)

iPhone前提で作られがちなアプリを、iPadやMacなどさまざまな環境で活躍させるためのUI設計についての発表です。UIを「目的」「コンテキスト」「インターフェイス」の3要素で捉え、ユーザーの状況が変わっても目的を果たせるように、同じ目的に対して複数のインターフェイスを持つことを「柔軟性」と定義しました。

そのうえで、サイズの変化に滑らかに追従する連続的な適応に対し、境界で構造や表現そのものを切り替える段階的なレイアウトのパターンとして、優先度の高い情報だけを残す「表示情報の増減」、セクション化して折りたためるようにする「情報の集約・展開」、「レイアウト構造の再編成」の3つを整理しています。

また、作り手が想定したコンテキストにしか対応できないカスタム実装に比べ、UIKitやSwiftUIの標準UIは柔軟性においてベストプラクティスであり、複雑なコンテキストの変化に対応するには標準APIを使うのがよいと強調しました。「絵としてのUI」ではなく、目的とコンテキストから導かれるUIを作る、という視点が印象的なトークでした。

ちなみに、当日はTrack Dの会場が満室になり、入口に「満室」の札が立つほどの盛況でした。

発表資料: 柔軟性のあるUIで、多くの環境でアプリを活躍させる/iOSDC26

Akihiko Sato

EmptyViewとStateの設計についてのスライドの前で登壇するAkihiko Satoさん

EmptyViewは本当に“空”なのか?

2026/09/13 16:35〜 | Track A | LT(5分)

SwiftUIのEmptyViewは本当に「空」なのかを問いかけるLTです。パネルを開閉するたびに中のカウンターの状態が初期化されてしまう現象を題材に、その原因を探っていきます。タイトルの問いに対する答えは「本当に空だった」で、EmptyView自体は保存プロパティも子Viewも持ちません。状態が消えた本当の原因は、if文で表示するViewとEmptyViewを切り替えたことでSwiftUIの構造的アイデンティティが変わり、それに紐づく@Stateが破棄されたことにありました。解決策として状態を親Viewに持ち上げて@Bindingで渡すアプローチを示し、5分でView identityの考え方を見直せる内容でした。

発表資料: EmptyViewは本当に“空”なのか?

DeNAブース: iOS開発妖怪診断

今年のDeNAブースでは、「iOS開発妖怪診断」を実施しました。iOS開発でよくある悩みを妖怪に見立て、5つの問いに答えるだけで「あなたに憑いているiOS開発妖怪」がわかるという企画です。来場者の方には、ブースに掲示したQRコードをスマートフォンで読み取って診断していただきました。

妖怪診断のトップ・設問・結果の画面

この企画の狙いは、来場者が気軽に参加できる診断を、DeNAのエンジニアとの会話のきっかけにすることでした。性格や能力を診断されると、やや身構えてしまうかもしれませんが、「開発中に遭遇する災難」を占う診断であれば、エンジニアのあるあるとして気軽に楽しめます。

そこで事前に社内のエンジニアにも診断してもらい、その結果を結果画面に載せるようにしました。来場者と同じ妖怪に憑かれている社員がいれば、「実は社内でもこの妖怪に困っていて……」と自然に話を始められる、という仕掛けです。

妖怪診断を楽しむ来場者でにぎわうDeNAブース

妖怪診断の開発

妖怪診断は、ネイティブアプリではなくWebアプリとして作りました。ネイティブアプリはインストールの手間があるうえ、App Clipも含めてAppleの審査が必要なため、会期中に不具合や文言を直したくなってもすぐには反映できません。WebアプリならQRコードを読み取るだけでiPhoneでもAndroidでも始められ、会期中でもすぐに修正できるので、その手軽さを優先しました。ホスティングにはFirebase Hostingを使い、診断データは個人情報を含まない匿名のイベントとしてGA4で計測し、BigQueryで集計しています。集計した結果は、この後の「診断結果の集計」で紹介します。

診断アプリ自体は、ほぼClaude CodeによるAIコーディングで開発しました。妖怪の画像も、企画の段階でアイデア出ししたiOS開発の悩みをもとに、Nano Bananaで生成しています。さらに、デプロイと診断データの集計レポートの作成手順を、Claude Codeのスキルとして用意しました。集計レポートのスキルを使えば、会期中でも最新の診断数や妖怪の分布をすぐに集計でき、それをブースのプロジェクターに投影していました。日ごとのレポートも作って、関係者に共有しています。

8種のiOS開発妖怪

妖怪は、企画のときにiOS開発のあるあるの悩みを挙げていき、そこから8つに絞って妖怪にしました。妖怪らしい日本の雰囲気を出すために、画像は墨絵や水墨画のタッチで生成しています。

iOS開発の悩みから考えた25の妖怪案の一覧

事前に集めた社員27名の診断結果を見ると、思った以上に多くの人に「深追い梟」が憑いていました。深追いしすぎて泥沼にハマったり、気づいたら時間が過ぎていたりすることが、みなさんよくあるようです。一方で「UIKit戻り鮭」と「レガシー背負い亀」に憑かれた社員は一人もおらず、社内ではUIKitに頼らざるを得ない場面や、古いOSのサポートを切れない場面が少ないのかもしれません。

8種の妖怪と、憑かれている社員を紹介する妖怪図鑑のページ

診断結果の集計

会期3日間の妖怪の分布を見ると、1位は「深追い梟」で、全体の約4割を占めました。事前に集めた社員の結果でも深追い梟が約4割だったので、来場者も社員も同じ妖怪に取り憑かれている(深追いしすぎて時間が経ってしまう)という結果になりました。2位以降は、設計方針の議論が終わらない「設計いがみ猿」、特定の端末でしか再現しない不具合に化かされる「幻の端末狐」、TODOコメントが溜まり続ける「万年TODO蓑虫」と続き、みなさんそれぞれにあるあるの悩みを抱えているようでした。また、社員では一人もいなかった「UIKit戻り鮭」は、来場者でももっとも少ない妖怪でした。

会期3日間の診断結果の妖怪分布

設問ごとの回答を見ると、深追い梟が多かった理由も見えてきます。「再現しない不具合、まず何から?」には約6割の方が「ログを仕込んで潜る」と答え、「抱えてる中で、一番重いのは?」では「原因の見えないバグ」が半数近くを占めました。また、「AIに書かせたコード、どうする?」では、「責務だけ直す」が約41%、「全部読み直す」が約35%と拮抗しており、AIが書いたコードとの付き合い方が人によって分かれている様子がうかがえます。

各設問の回答分布

余談

実は、何か問題が起きたときのメンテナンスページと、会期終了後に公開を終えるまでの間に表示するページも用意していました。どちらもAIに頼んで、妖怪診断の世界観を踏襲した専用のページにしています。メンテナンス中は「妖怪たちはひと休み中」、会期終了後は「妖怪たちは帰っていきました」と表示され、設定ファイルの値を1つ書き換えてデプロイするだけで切り替えられるようにしました。幸い、メンテナンスページの出番はありませんでした。

メンテナンス中と会期終了後に表示するページ

ふりかえって

昨年のDeNAブースでは、来場者と一緒にアプリを作る ストリートコーディング を実施しましたが、今年はiOS開発のあるあるの悩みを題材にした診断に挑戦しました。あるあるに共感してもらえるか、ブースが盛り上がるか、企画の段階では少し不安もありました。ですが実際には、SNSでの投稿を見て「診断をやりに来ました」と足を運んでくださる方もいて、思っていた以上の盛況となりました。事前に集めた社員の診断結果が、狙いどおり会話のきっかけになる場面もありました。

iOSDCは、カンファレンスであると同時に、ひとつのコミュニティでもあります。そしてiOSエンジニアにとっては、一年に一度のお祭りです。DeNAはこれからも、協賛や登壇、コミュニティ活動を通じて、このコミュニティを応援し、貢献していきます。

DeNAブースの前で撮影したメンバーの集合写真

ご協力いただいたみなさんへ

iOSDC Japan 2026を運営してくださったスタッフのみなさん、DeNAブースに立ち寄って妖怪診断に参加してくださったみなさん、本当にありがとうございました。また、妖怪診断の回答データ集めに協力してくれた社員のみなさん、ブースに立ってくれたメンバーのみなさんにも感謝します。来年もまた会場でお会いしましょう!

最後まで読んでいただき、ありがとうございます!
この記事をシェアしていただける方はこちらからお願いします。

recruit

DeNAでは、失敗を恐れず常に挑戦し続けるエンジニアを募集しています。