Swift初学者でAVFoundationを使用したイコライザーアプリ開発に挑戦をしていたところ
MIDIコントローラの接続を実装してみたくなりました!
本トークでは、CoreMIDIフレームワークを使用し、アプリに接続されたMIDIデバイスからコントロールチェンジ(CC)メッセージを受信し
それをアプリ内の任意の処理に割り当てる実装の流れと、SwiftUI・音声処理・ハードウェアをつなぐ設計上のポイントなどを共有します。
音声・音響・映像を扱うアプリのMIDIコントローラー拡張が必要な時、プロジェクトへ応用していくための小さなヒントになれたら幸いです。
話す内容:
・CoreMIDIにおけるMIDIClientRefとMIDIInputPortRefの基本構成
・MIDIPacketListからのCCメッセージの解析と値の取得方法
・各CC番号とEQスライダーの動的なマッピング設計
・SwiftUIと組み合わせたリアルタイムなUI同期
・自分専用の機器を想定したプリセット対応
Claude CodeやCursor、そしてXcode 26 ― iOS開発におけるAIアシストの選択肢は多くありますが、それぞれ一長一短あり、決定版はまだありません。とりわけ基盤をAppleが握るこの領域では、ほかの分野に比べて発展途上な部分がまだ目立ちます。
そこで鍵となるのが、AIと外部ツールを連携させるオープンプロトコル MCP です。本セッションでは、既存のAIコーディングアシストツールでは足りない部分を自作できるよう、MCPの基礎から実践までを解説します。
まずはFigma MCP、Xcode MCPといったiOSエンジニアになじみのある既存のMCPサーバーの使い方や機能から解説し、MCPの基礎を理解します。続いて最小構成のSwift製MCPサーバー実装を通してプロトコルの要点を学びましょう。あとはCLIやGUI、クラウドAPI等、iOS開発で役立つさまざまなツールをMCP経由でAIに道具として使わせる実践へと移ります。
足りないものは自作するのが我々エンジニア。AI向けの道具の作り方を覚え、AIをさらに便利に活用していきましょう。
あなたのアプリは、すべてのユーザーに届いていますか?
VoiceOverユーザーが見落とすボタン、Dynamic Typeに対応しないレイアウト、コントラスト不足で読みにくいテキスト…これらは多くのiOSアプリが抱える課題であり、せっかく開発したアプリが一部のユーザーにとって「存在しない」ものになってしまう原因です。アクセシビリティ対応は、もはや「あればいいもの」ではなく、すべてのiOSエンジニアが取り組むべき「必須要件」です。
このトークでは、手探りのアクセシビリティ対応に終止符を打ちます。AIツールが、VoiceOverの読み上げ順序からDynamic Typeの最適化、さらには複雑なアクセシビリティ問題の検出と改善提案まで、あなたの代わりに「考える」ことで、いかに開発プロセスを劇的に加速させるかを具体的にご紹介します。
AIは、あなたのアシスタントとして、アクセシビリティ機能の実装を強力に支援し、見落としがちな問題を洗い出し、改善策を提示してくれます。もはや専門家でなくとも、誰もが使いやすい、真に「すべてのユーザーに届く」iOSアプリを開発できる時代が到来しました。
アクセシビリティを「特別なタスク」ではなく、「当たり前の開発プロセス」に変革するAIの力を、あなたのアプリ開発に導入しませんか?
こんな経験ありませんか?
C言語ライブラリのエラーコードをSwift.Errorとして扱えたら楽なのに...
C言語関数を使う際に必要なUnsafeMutablePointerを間違えた操作をしてクラッシュしてしまった...
その不満、関数にattribute(属性)を足すだけで、解決できるかもしれません。
上記の例ではエラーコードの宣言箇所にattribute((ns_error_domain(CustomError))を追加するだけでSwiftではErrorに準拠したCustomErrorとしてモダンに扱えます。
また、Xcode26から導入される__counted_byを使えばコンパイラレベルでC言語関数を安全に呼び出せることを保証できるかもしれません。
本トークでは、そんなSwiftの特徴であるモダンな文法やメモリ安全性を、attributeやannotationをたった1行付与することでCファミリーAPIに持ち込むユースケースを解説・紹介します。
実際の現場での導入事例やXcode26で利用できる新たなアノテーション(counted_by)の使い方を紹介しながら、「書き換えゼロのセーフティ向上」と「API が一気に Swifty になる爽快感」をお届けします。
1つ何かをするだけで膨大な再描画処理が行われ、画面が固まってしまうアプリ
ミニプロジェクトを立ち上げて改善しよう!
ここから始まったプロジェクトがまっっったくミニじゃなくなった
・どうして再描画がこんなにも発生しているのか? → トリガーがわからない
・永遠に引きずり回されてるデータがあるから不要なのはなくそう → 数が多すぎて本当にわからない
・テキストを入力してから表示されるまでの流れを見てみよう → Viewファイル内で迷子になる
・ちょいちょい意味がわからないコメントが書いてある、伝わるように書いてよ.. → (数ヶ月後に)最後の気力で残してくれた先人のダイイングメッセージと気づく
→ 仮に再描画抑えれたとしても、保守できない。もう作り直すしかないね
こんな感じで大きく流れが変わったプロジェクトの
みたいな話
私たちの運用するアプリは、ファーストリリースから8年経ちました。リリース当初はWebViewを主体としたガワネイティブで開発されていました。しかし、ユーザー層の多様化(地下街のレストランや工場で勤務される方、最低限のスペックの社用端末を利用される方など)に伴い、通信環境が不安定な状況でのパフォーマンス課題が顕在化しました。特に、複雑なUIを持つ画面におけるもたつきやカクつきが、ユーザー体験を損ねているという課題に直面しました。
この課題を解決するため、そのような複雑な画面をガワアプリからSwiftUIに移行する計画を開始しました。
本セッションでは、その背景、技術選定、そして実現までの道のりをご紹介します。
複雑な画面のSwiftUI移行を検討されている方や、そのプロセスに関心のある方にとって実践的な学びとなれば幸いです。
従来、iOSアプリに翻訳機能を組み込む際は、Google翻訳やAmazon Translateなどの外部APIに頼るしかありませんでした。これにより、従量課金・通信依存・オフライン非対応といった課題がつきまとっていました。
そんな中、iOS 17.4以降で登場した「Translationフレームワーク」は、Apple純正のオンデバイス翻訳モデルを活用することで、ネットワーク接続なし・高速・回数制限なしという理想的な翻訳体験を実現できます。
本トークでは、私がこのTranslationフレームワークをAVSpeechSynthesizerと組み合わせて開発した「喋った内容をオフラインでもリアルタイム翻訳するアプリ」を題材に、以下の実践的な実装ノウハウをお話しします。
また、実際に開発したアプリのデモを通じて、喋った内容がリアルタイムに翻訳・発話される様子をご覧いただきます。
このトークを通して、「どんな環境であろうとも瞬時に翻訳される体験」の実装方法を学ぶことで、みなさんのアプリにオンデバイス翻訳を導入する選択肢を広げていただければ幸いです。
WWDC24で登場したEmbedded Swiftによって、ついにSwiftでも組み込み開発ができる時代がやってきました!これによりSwiftらしい書きやすさ・安全性をそのまま活かして、直感的にデバイス制御できるのが大きな魅力です。
このLTでは、Embedded Swiftを使ってLEDやセンサを動かしてみた実例を紹介します。さらに、Appleが推進しているスマートホーム規格「Matter」と組み合わせて、iPhoneのホームアプリから操作するデモも行います。
具体的には、以下のような操作を紹介します
● ホームアプリからLEDライトの明るさを調整する
● 温度センサの値をリアルタイムに取得し、ホームアプリから確認する
普段アプリ開発をしている方の中には、「組み込みって難しそう…」と思っている方も多いかもしれません。しかしEmbedded Swiftを使えば、Swift開発の延長でハードウェアの世界にぐっと近づけます。このトークを通じて、ハードウェアの世界に一歩踏み出してみませんか?
楽天グループ株式会社が運営する「楽天リーベイツ」のiOSアプリは、2025年で9周年を迎えました。
2020年当時、8年以上にわたり運用されてきたiOSアプリを1人で引き継ぎ、数ヶ月間メンテナンスされていなかったレガシーコードに立ち向かいながら、ビジネス要件への対応、A/Bテストの実施、ユーザー体験の最適化、そしてチーム立ち上げを少しずつ進めてきました。
今回は、Biz やデザインチームの担当者と交渉しながら、iOS開発者としてどう目標を立て、どう改善を進めたか、その考え方をシェアします。最後に、これからの展望もお話しします!
世の中には、いつの時代も「有償機能を無料で使う方法」に溢れています。
そしてそれはiOSも例外ではありません。
筆者が個人開発をしていたとき、有償で提供していたソフトウェアをクラックされ、世界中に配布された経験があります。
iOSにおいては、レシート検証をすれば、または、レシート検証をしてくれるライブラリを使えば安心、という印象がありますが、果たして本当にそうでしょうか。
このトークでは、実際に課金バイパスを行うダイナミックライブラリの解析内容を交えながら、よくある課金バイパスとその対策を詳しく解説します。
WWDC 2025で発表された 「Liquid Glass」 は、10年ぶりのデザイン大刷新です。本トークでは元UI/UXデザイナー出身のiOSエンジニアが、秋の正式リリース前の今、知っておくべきポイントを、技術とデザインの両面から解き明かします。
このセッションを通じて、参加者は、今押さえておくべきLiquid Glassの思想や実装方法を学ぶことができ、自アプリへの導入にすぐ活かせる実践知を持ち帰れます。
ターゲット
・アーキテクチャの歴史を復習したい人
・最近iOS,Androidに触れ、昔の歴史を加味してアーキテクチャを理解したい人
概要
参加者の中には最近iOSエンジニアになった方や学生の方々も多いのではないでしょうか。
そんな方々に向けた、今までの歴史を振り返り、アーキテクチャの理解度を上げるためのセッションです。
初期からのアーキテクチャの主要な部分をiOS,Android横断で遡り、現状のTCA,MVVMなどの思想の分かれ方の理解を深めます。
詳細↓
テーマ理由
・宣言的UI普及により、アーキテクチャが転換期であるため
・他の方のセッションで最先端のアーキテクチャ考察があると考え、前提となるセッションがあった方が良いと考えたため。
初期(2008-2012)
iOS
・MVCが標準
・UIViewControllerが中心
・"Massive View Controller"問題の兆候
・デリゲートパターン
Android
・Activity中心
・"God Activity"問題の始まり
・Fragmentという概念の導入
パターンの確立期(2013-2017)
iOS
・MVVMパターンの普及
・ReactiveCocoa/RxSwift
・VIPER
・Swift登場
Android
・MVP推奨
・Architecture Blueprints
・Architecture Components発表
共通
・MVP、MVVM、Clean Architecture、Redux普及
宣言的UI時代(2018-2024)
iOS
・SwiftUI
・Combine
・MVVM
・TCA
Android
・Jetpack Compose
・Single Activity
・Navigation Component
実際の企業の採用状況
・9月時点の情報
iOSアプリ開発者の皆さん、デバッグとパフォーマンス最適化に費やす膨大な時間にうんざりしていませんか?
原因不明のクラッシュ、もたつくUI、そして悪夢のようなメモリリーク。これらは私たちの貴重な開発時間を容赦なく蝕み、リリースを遅らせ、ユーザーエクスペリエンスを低下させます。しかし、もうその苦しみは終わりです。
このトークでは、Xcodeに頼りきりだったデバッグと最適化の常識を覆します。CursorやClaude Codeのような汎用AIツールが、あなたの想像をはるかに超える形で、これらの複雑なタスクをどのように劇的に支援するのか、具体的な事例を交えてご紹介します。
AIは単なるコード補完ツールではありません。まるで熟練のベテランエンジニアのように、エラーの原因を光速で特定し、パフォーマンスのボトルネックをピンポイントで突き止め、手ごわいメモリリークさえも瞬時に検出する力を秘めています。
AIの力を借りて、あなたのiOSアプリ開発を次のレベルへ引き上げましょう。
無駄な時間を減らし、本当にクリエイティブな仕事に集中できる未来が、今、ここにあります。
日常生活の中でスマートスピーカーのように、声だけで家電を操作する体験が当たり前になりつつあります。音声操作体験に求められる期待値も徐々に上がってきています。
iOSではSpeech Frameworkを使うことでリアルタイム音声認識を実現することができ、AVSpeechSynthesizerを使うことで読み上げを実現することができますが、実環境下で運用するためには様々な課題に直面することになります。
例えば、iPadにケースを装着したことによる認識精度の低下、Speech Frameworkが対応していないWake Word検出の実現、読み上げ時の利用可能な音声の制約、OSのバージョンによる制約, プライバシーの考慮などの課題に直面します。
このトークでは、Speech Frameworkを使って音声だけで家電を操作する機能をリリース, 運用した経験をもとに、AVAudioEngine, Speech Framework を使った音声認識の基本から、上述したような実環境下で直面する課題の解決方法までを詳しく解説します。
WWDC25 と同時に映画『F1: The Movie』の予告編「Haptic Trailer」が公開され、 iPhone の Apple TV+ アプリで見ると映像に合わせてデバイスが振動し、まるでF1ドライバーになったかのような感覚を体験できると話題になりました。振動による力強いエンジンの再現には、多くの方が驚かれたことでしょう。
iOSエンジニアの皆さんなら、「この機能はどのように実現されているのか?」と興味を持たれたのではないでしょうか。調査の結果、新しい体験と感じられたこれは、1st PartyであるAppleにしかできない事...ではなく、我々3rd Party開発者にも利用可能な AVFoundation や Core Haptics のAPIで実現できることが分かりました。プラットフォームの能力を理解し、最大限に活用することは、優れたユーザー体験の創造において非常に重要です。紐解いていく過程も含めて詳細を共有しますので、皆さんが動画にプラスアルファをして素晴らしい体験を作るための参考になればと思います。
「ブラウザを誰かに見られるのってイヤだな」
と思ったことありませんか?
履歴やブックマークには、
「絶対に他人には見せたくないけど、自分には必要」
そんな黒歴史が潜んでいます。
深夜の勢いで検索した履歴…
ちょっと恥ずかしい趣味のブックマーク…
でもいちいちシークレットモードを切り替えるのは面倒だし、履歴自体は後で見返したい…
ブックマークにも登録したい…
かといってパスワードでロックするのは逆にあからさまに隠してる感があってイヤ…
そこで注目したのが iOS16から利用できるFocus Filterです。
集中モードに合わせて
といった「自然に見せない仕組み」を自作ブラウザで仕込んでみるアイデアです。
このLTでは
「履歴もブックマークも人には見せたくない。でも自分はいつでもアクセスしたい」
というわがままを Focus Filter でどう叶えるかを技術的に語ります。
Focus Filter自体、まだ活用例がほとんど知られていない機能です。
まだ誰も挑戦していない
Focus Filter × 自作ブラウザの世界を
一緒にのぞいてみませんか?
Claude CodeやCursor、そしてXcode 26 ― iOS開発におけるAIアシストの選択肢は多くありますが、それぞれ一長一短あり、決定版はまだありません。とりわけ基盤をAppleが握るこの領域では、ほかの分野に比べて発展途上な部分がまだ目立ちます。
足りないなら作ろう ― そこで鍵となるのが、AIと外部ツールを連携させるオープンプロトコル MCP です。本セッションでは、私たちiOSエンジニアの日々の「めんどくさい」をショートカットする開発オートメーションをMCPで実現する道筋を示します。まず最小構成のSwift製MCPサーバー実装を通して、プロトコルの基礎を把握。続いてFigma MCPを例にデザイン仕様を自然言語で取得し、Accessibility API経由でXcodeやiOSシミュレーターをAIに遠隔操作させる仕組みを解説します。コード生成だけでなくビルド、テスト、UI遷移確認までを対話形式で一気通貫に繋げることで、開発フローは無限に拡張可能になります。MCPはCLIもGUIもクラウドAPIもJSON-RPCで束ねるため、社内ツールやレガシースクリプトも一関数のように呼び出せ、次世代SDKが登場しても待たずに取り込めます。
MCPは「自分だけのショートカットキー」を対話ベースで実現する仕組みです。AIに「昨日のクラッシュを再現して」「最新デザインに合わせてUIテストを更新して」と頼むだけでスクリプトが自動生成・実行され、結果レポートが返ってきます。ワークフローを設計する楽しさを味わえるのが最大の魅力。聴講後には、あなたのMac上で動く小さなサーバーが巨大な開発環境を操り、自分専用AIアシスタントの成長を実感できるでしょう。
∧,,∧
(;`・ω・) 。・゚・⌒) カレンダー作るよ!!
/ o━ヽニニフ))
しー-J
[話すこと]
みなさん、3日前に着た服装を覚えていますか?僕は覚えていません。
せっかく毎日服を選んで着ているのに、その記憶が残らないのは少し勿体ないと思いませんか?
この課題を解決するため、私はCoreMLを活用して全身写真からその日に着用したコーデのアイテムを自動で抽出し、まるで手元にクローゼットを持つような体験ができるアプリ”IRODORI”を開発しました。
このアプリは、DeepFashion2というファッションに特化したMLモデルを選定し、アイテム抽出をデバイス上で完結させています。そのため、外部サービスにユーザーの全身画像を送信することなく、安全に利用可能です。
また、一枚の画像から自動でアイテムを抽出できるため、手動での面倒な作業が不要となり、簡単にコーデやアイテムを管理できる点も魅力です。
トークでは、実例をもとにCoreMLを使いオンデバイス完結のiOSアプリを実装する上で試行錯誤した点をお伝えします。
・モバイルファーストなMLモデルの選定基準
・MLモデル(DeepFashion2) をCoreMLで使えるように変換する実装
・MLモデルを動かす上でのUI/UXの工夫
本トークがオンデバイスでMLモデルを動かすiOSアプリ開発の敷居を下げ、アイデアを思いつくきっかけになれたら嬉しいです。
今後加速すると予想されるオンデバイス×MLモデルでのiOSアプリ開発に備えましょう!
iOSでGIFやAPNGなどのアニメーション画像を扱うとき、「UIImageViewにセットするだけでは滑らかに再生できない」「全フレームがメモリに展開されて落ちる」といった経験はないでしょうか?
このトークでは、それらの課題を解決するために開発した軽量ライブラリnoppefoxwolf/AnimatedImageの内部構造と工夫について紹介します。
AnimatedImageはMastodonアプリDAWN for Mastodonのために設計されたハイパフォーマンスなアニメーション画像再生ライブラリです。
AnimatedImageは、標準のUIImageViewと同じ使い勝手を保ちつつ、以下のような特徴を持ちます:
セッションでは、開発にあたっての設計判断、パフォーマンスとの向き合い方、低レイヤーAPI(ImageIO, CGImageSource, CADisplayLinkなど)の活用法を、実際のコード例を交えながら解説します。
「どうやって描画スケジューリングを行っているのか?」「標準APIでここまでできるのか?」といった疑問を持つiOS中上級者に向けて、画像表示の深層に踏み込む内容です。
アニメーション画像に関する知識だけでなく、パフォーマンスチューニングやAPI設計にも興味のある方にとって、学びの多いセッションになるはずです。