WWDC25に現地参加してきました!
人生初のWWDC現地参加はとても刺激的でしたが、同時に「ただセッションを見に行くだけなら、現地に行く意味はあるのだろうか?」という疑問も抱きました。オンライン視聴が当たり前になった今、現地参加の価値とは何か?私なりに見つけた答えは、“現地ならではの人とのつながり”でした。
Appleの中の人と直接話せる1on1 LabやDeveloper Sessionの後の会話など、現地ならではの交流機会は貴重です。中でも特に印象的だったのが、「Meet the community」で紹介されているコミュニティ主催の非公式イベントたち。朝活形式の勉強会、開発者同士の雑談会、世界各国のiOSエンジニアとフラットに話せるパーティーなど、その場でしか得られない学びと出会いがありました。
本稿では、私がWWDC25期間中に参加したコミュニティイベントを紹介しつつ、イベントに参加することで得られた知見やつながり、そして次回以降にWWDC現地参加を目指す人に向けたアドバイスを共有します。「現地に行くなら、セッション以上の体験を!」そんな想いを込めた内容です。
アプリ開発において、UIの品質担保は誰しもが一度はぶつかる課題だと思います。
解決策として、E2Eテストやスナップショットテスト、実機テストが挙げられます。
その中でも、swift-snapshot-testingを使ったビジュアルリグレッションテスト(以降VRTと呼ぶ)に焦点を当てていきます。
※VRTとは、変更前と変更後のコードで対象画面のスナップショットを比較することで、UIのデグレを検知するテストです。
「UIテストは運用コストが高い」と、諦めた経験のある人はいませんか?
導入初期は運用できていたものの、少しずつ放置されていき、運用されなくなってしまった経験はありませんか?
本トークでは、そんな運用コストの課題を
CursorやClaude Code Github Actionsを使って解決した方法をお話しします。
また、以下のテーマに触れながら進めていくので、検証から運用まで具体的にイメージすることが出来ます。
導入後の現在も、品質や設計・自動化面で改善を続けており、
それらを余すことなくお伝えできればと思います。
「VRT導入時、どのようなことを考慮したら良いかよくわからない」
「VRTの導入を検討しているが、実際にチームで運用し続けられるか悩んでいる」
「運用が止まってしまっている」
そんな方々に参考になるセッションとなれば幸いです。
開発者にとって、使いやすいSDKドキュメントはプロジェクトの成功に不可欠です。にもかかわらず、ドキュメントの整備や運用には多くのハードルがあり、「後回しになりがち」「仕様と乖離しやすい」「更新が面倒」といった課題を抱える現場も多いのではないでしょうか。
本セッションでは、Xcode に標準搭載されている DocC と GitHub Pages を活用し、開発コストを抑えつつ、ユーザーにとって“使える”ドキュメントを自動生成・公開する方法を、実例とともに丁寧に解説します。
以下のような構成で、ドキュメント構築の一連の流れを紹介します:
これらは、実際に私たちが開発・提供している SDK に DocC を導入し、社内外に向けたドキュメント公開を運用した経験に基づいています。導入時にハマった落とし穴や、記述の最適化ポイントもあわせて共有します。
自社SDKやライブラリをより使いやすく、メンテナンスしやすいものにしたい開発者に向けた、実践的なDocC活用術です。
本トークでは、iOS SDK を Swift Package Manager(SPM)+ XCFramework によって構成・配布する設計と、その実運用で得た知見を紹介します。
実際に筆者が提供する SDKを題材に、次の観点から掘り下げます:
「SDK を作る」こと自体が目的ではなく、「チームで再利用できて、組織として持続可能な仕組みを作る」ことがテーマです。
ライブラリ開発初心者はもちろん、「現場で自作 SDK のメンテ地獄に陥ったことがある人」や「SPM の限界を見極めたい人」にとって、ヒント満載の内容となっています。
最近、フルSwiftUIでの画面を提供するSDKをリリースしました。この経験を基に、SwiftUIのStateの更新方法としてReduxを採用しています。Reduxは古いと言われがちですが、私たちは関数型に近いアプローチを採用することで、テストのしやすさや責務の分離を実現しています。
このトークでは、リアルなコード例を通して、ステートマシンの設計方法やテストのしやすさの改善方法、UI/UX向上への具体的な効果について詳しく説明します。例えば、どのようにしてReduxの責務を持つInterfaceを自作し、Swift Testingを活用しているのかを具体的にお話しします。
お話する内容:
Reduxの基本概念と自作Interfaceの設計方法
Swift Testingを用いたテストのしやすさの向上
UI/UXの具体的な改善事例
このセッションを通じて、Reduxを用いたイベント駆動UIの有効性とその可能性について理解を深めていただけることを目指しています。
アプリが重いと感じた瞬間にユーザーは離れてしまいますが、ユーザーが感じる「速さ」は、起動時間やフレームレートなど複数指標の複合体になっています。
そのため、本セッションでは「起動は95%のユーザーで1.5秒以内」「画面遷移の97%を120fps以上」といった、体感パフォーマンス目標(SLO)を設定し、
を順を追って紹介します。
これにより、翌日から「速さを数字で語れるチーム」に変わるきっかけを提供します。
iOS 26で導入された新マテリアル「Liquid Glass」は、透過・屈折・環境光の反射によって奥行きと没入感をもたらします。
しかし実運用には、可読性の低下、端末負荷、アクセシビリティ対応、旧端末サポートなど多岐にわたる課題が伴います。
本セッションでは、以下の7パターンを設計ガイドラインから実装、モニタリングまで体系的に解説します。
視聴者は、デザインポリシーとコード例を持ち帰り、翌日から自社プロジェクトでLiquid Glassを安全かつ効果的に適用できるロードマップを描けるようになります。
手話とは、表情や手の形・動きによって多様な単語や感情を伝える言語です。
私はもともと大学時代に障がい教育の研究をしており、その中で手話にも関心を持ち、「手話を知らない人が、手話に親しみを持つにはどうすればいいか?」と考えていました。
近年テクノロジーの進歩により、Apple プラットフォームでも多様な機能を備えたOSやデバイスが登場しています。今回はその中でもRealityKit によるハンドトラッキングとVisionProを活用して、自分自身の手で表現した手話の単語を検出・翻訳するツールの実装にチャレンジしました。
この発表では、以下のポイントについてデモを交えてお話しします。
現時点のハンドトラッキングでは、手話特有の表現を正確に認識することが難しいケースもありますが、発表ではそのような制約についてもお話しします。
ハンドトラッキング技術に関心のある方はもちろん、手話という言語の多様性や表現力に少しでも興味を持っていただけるような発表を行います。
教員時代に、学校で使えるアプリをなんか作れないかな?
そう思ったのが僕の個人開発のスタートでした。
たまに停滞しつつもコツコツと個人開発を続け、現在累計DL数は9万を超えました。
開発の過程で、ダウンロード数が伸びたり、アクティブユーザーが増えたり、収益が上がったり、ユーザーから直接フィードバックをもらえたりと、様々な喜びや発見がありました。これらの経験を通して、個人開発の「面白さ」を強く感じています。
この記事では、私が見つけた個人開発の「面白さ」を皆さんにお伝えしたいと思っています。具体的には、以下のポイントについて記載する予定です。
本記事で紹介予定の内容
このトークを通じて、皆さんが新たに個人開発を始めてみよう、あるいは一度止まってしまったプロジェクトを再開しようと感じていただけたら嬉しいです。ぜひ、個人開発の魅力を一緒に発見しましょう。
皆さんのプロダクトは、Swift 6へのメジャーアップデート、もう対応されましたか?
私たちのチームでは、iOSアプリのSwift6対応を進めようと準備を始めました。
しかし、 そこで直面したのは想像以上に大きな課題でした。
それは、Swift6で新しく導入された「Strict Concurrency Checking」の機能の存在です。
この機能の対応によって、「少しの修正で解決できる」といった簡単な話ではなくなりました。
その結果、私たちは長年使用してきたReactorKitを脱却することを決断します。
このトークでは以下の内容についてお話しします。
これからSwift6対応を検討されている方、ReactorKitを使っている方にとって、きっと共感していただける内容になっています!
iOSDC Japan参加者のみなさんなら、きっとiPhone、iPad、MacBookを持っていますよね!人によってはVision ProやHomePod、Apple TVもお持ちかもしれません。
私達にとっては仕事道具ですが、世間ではAppleプロダクトを使用していることは一種のステータスとも捉えらており、「おしゃれ」や「スタイリッシュ」の代名詞の一つということもできます。
そしてさらにこのスタイリッシュさは「無国籍」です。アメリカでも日本でも、喫茶店でMacBookを広げた姿は国を問わずスタイリッシュと言えるでしょう。
そのため私達はこれらAppleプロダクトを持っていれば世界中どこの国でも「スタイリッシュ」に仕事をすることができます。
でも、なぜAppleプロダクトは世界中どこで使っても「スタイリッシュ」なのでしょうか?
ソフトウェアのUI/UXの良さでしょうか?それともハードウェアのデザインが良いからでしょうか?
もちろんAppleプロダクトはソフトウェアのUI/UXは良いですし、ハードウェアのデザインも最高です。
実は、Appleプロダクトがそのイメージからは一見無関係に見える「建築」の世界からきた「素材」によってもスタイリッシュさが支えられていますとお話したら驚くでしょうか?
このLTではみなさんと一緒にモダニズムの生い立ちと、私達ソフトウェアエンジニアには意外に見えるガラスやアルミニウムといった「素材」の2観点から、Appleプロダクトがスタイリッシュに見える理由を深堀りします。
ソフトウェアエンジニアである私達が普段は見落としがちな「素材」という現実世界の要素が、なぜ「スタイリッシュ」に繋がっているのかを知ることで、皆さんの「プロダクト」作りに素材という新たな視点をもたらすことができれば幸いです。
LT会場でお会いしましょう!
SwiftUIでのUI構築において、GeometryReaderとScrollViewは画面サイズや位置情報を活用した柔軟なレイアウト制御に不可欠なコンポーネントです。しかし「思ったように動かない」「SafeAreaやネスト構造でレイアウトが崩れる」といった課題に直面する開発者も多いのが現状です。
本セッションでは、これらのコンポーネントの動作原理を基礎から丁寧に解説し、実務で遭遇する典型的な問題とその解決策を具体的なコード例とともに紹介します。特に、GeometryReaderの座標系の理解、ScrollViewのオフセット制御、パフォーマンス最適化の観点から、正しい使い方と避けるべきアンチパターンを明確化します。
さらに、PreferenceKeyやAnchorPreferenceなどの代替技術との使い分け、実際のプロダクトで活用できる応用パターン(カスタムスクロールエフェクト、動的レイアウト調整など)も解説し、SwiftUIらしい宣言的UI設計のベストプラクティスをお伝えします。
初学者のつまずきポイント解消から、中級者以上の設計力向上まで、幅広いレベルの開発者にとって実践的な知見を提供し、日々の開発業務で即座に活用できる内容を目指します。
Swift Concurrencyは、async/awaitによる非同期処理の簡素化やactorによるデータ競合安全など、私たちに多くの恩恵を与えてくれます。
一方で、「少し使いたいだけなのに、なんだか難しい…」と感じている方もいらっしゃるのではないでしょうか。特に「ただ普通にコードを書いているだけなのに、なぜ警告やエラーが出るのかわからない...」という声をよく耳にします。
Swiftコアチームは、使いやすさを高めるためのビジョンを掲げ、Swift Evolutionのプロセスと独自の機能改善を通じて、これらの悩みを解消しようとしています。先のWWDC25では、この取り組みが「Approachable Concurrency」として紹介されました。
本トークでは、このApproachable Concurrencyについて、主にWWDC25のセッションではあまり語られなかった部分に焦点を当て、以下の内容を深掘りしてお話しします。
本トークを聞くことで、Approachable Concurrencyの意義を理解し、謎の警告やエラーに悩まされる回数を減らし、皆さんがConcurrencyをより「親しみやすく」感じる一助となれば幸いです。
概要
近年のAIの急速な発展により、従来のコマンドベースの入出力と比較して、自然言語による入出力が一般的になり、ユーザーインターフェースは大きく変化しています。言語学習や運転中の操作など、ハンズフリーでの対話が求められる場面や、VisionOSなどでのキーボード入力が困難な場合において、音声インターフェースの重要性が増しています。一方で、実際に音声AIエージェントを実装しようとすると、チャットUIとは異なる固有の技術的課題に直面することになります。本セッションでは、現在開発中のAI英会話アプリでの実体験を通じて、音声インターフェース特有の課題とはまりどころ、およびその解決策を具体的なSwift実装とともに解説します。
話す内容(予定)
話さない内容
εε=┌|▼▼|┘ ウッホウッホ
Xcodeは素晴らしいIDEって伝えなきゃ
ウッホウッホ └|▼▼|┐=33
本LTでは、Xcodeの素晴らしいところをウホフクロウが軽快に紹介します。
5分間でXcodeをより快適に使えるようになるはずです。
●話すこと
・Xcodeの素晴らしいところ
●話さないこと
・Xcodeの素晴らしくないところ
ウホフクロウを生暖かい目で見守ってくれると幸いです。
私は今年、銀行員からiOSエンジニアへとキャリアチェンジをしました。
最近、「どうやって学習を進めたのか?」「転職までに何をしたのか?」といった質問をいただくようになったため、異業種からiOSエンジニアを目指す方、これからキャリアを築こうとする学生の方、またそうした方をサポートする立場の方に向けて、私自身の経験をまとめて共有したいと思います。
この記事では、独学でどのようにスキルを身につけ、エンジニアコミュニティと出会い、学びを加速させていったのか、そして転職を実現できたかについて、実体験をもとにお話しします。
本記事で紹介する内容:
この記事が、iOSエンジニアを目指す方にとっての道しるべとなり、また誰かにアドバイスをする際のヒントになれば幸いです。
モバイルアプリ開発において、アプリに組み込まれた WebView はWeb サイトを表示するだけとは限りません。既存サービスの HTML を活用したり、最軽量かつ最小限のクロスプラットフォームを実現します。これらを制御する場合、HTML や JavaScript などの知識が欠かせません。しかしながら、モバイルアプリエンジニアは必ずしもそれらに精通しているとは限らず、実装上の問題に直面することも少なくありません。
本記事では、アプリに組み込まれた WebView(WKWebView)で遭遇しやすい問題、JavaScript の実行やイベント受信などに関する問題を整理して、その原因と具体的な解決方法を解説します。HTML や JavaScript に不慣れなモバイルエンジニアが、WebView を安全に活用して堅牢なアプリを開発するためのポイントを明示します。また、アクセシビリティの観点についても補足し、誰もが使いやすいアプリを実現するために必要な考え方を紹介します。
iOS アプリの開発において、Xcode 標準の静的解析機能は便利です。しかしながら、開発チーム独自のルールやアクセス制限など細かな要件を十分にカバーすることは難しいです。
本記事では、SwiftLint のカスタムルールを活用して、静的解析を強化する方法を紹介します。非推奨メソッドの使用制限や、アクセス範囲を特定のファイルやディレクトリ内に絞り込むことなどを可能にし、コード品質と保守性の向上を図るための考え方と実践的な導入手法を解説します。
WWDC 2025で待望のSwiftUI向けWebKitが発表され、SwiftUIでWebViewを扱いやすくなりました。
WKWebViewには多くのプロパティやView操作のメソッドがあるため、宣言的UIに適合させるのは容易ではありませんでした。
例えば進む/戻るボタンの表示制御や、ナビゲーションの動作にはWKWebViewへのアクセスが必要です。
SwiftUI向けWebKitでは、WKWebViewを持つWebPageクラスをStateとして扱うことで、WebViewをStateの写像として宣言的に記述できるように設計されています。
一方、私たちはこれまでWKWebViewを宣言的に扱うためのライブラリとして、cybozu/WebUIを設計・公開してきました。
WebUIではproxy APIを通じてSwiftUIからWKWebViewにアクセスできるよう設計しています。
本トークでは、WKWebViewの宣言的UIへの適合を例として今後のSwiftUIに最適なインターフェース設計の指針を提供します。
SwiftUI向けWebKitとWebUIの設計を比較して、よりSwiftUIらしい宣言的なインターフェース設計を掘り下げます。
また、ObservationとObservableObjectの変更監視の機能差から、「なぜ今SwiftUI向けWebKitが登場したのか」についても考察し、これからのインターフェース設計に必要な技術要素にも言及します。
本トークを通じてこれからのSwiftUIインターフェース設計指針と技術的背景について学びます。
対象者
話さないこと
2024年、Swift界隈で地域コミュニティイベント Japan-\(region).swift の一大ムーブメントが巻き起こりました。
日本各地でSwiftのコミュニティが発足し、Swiftに関する学びがあるだけでなく、各地域の魅力を発信する場にもなりました。
私も「このビッグウェーブに乗るしかない!」とKanagawa.swiftを開催することに。初めての外向けオープンイベントの主催でしたが、多くの方々の協力のおかげで大成功を収めることができました。
本記事では、Kanagawa.swiftの開催記録と、これからSwift地域コミュニティを立ち上げたい方のための手引きをご紹介します。
さらに、全国のJapan-\(region).swiftマップも提供します!あなたも次に行ってみたい Japan-\(region).swift が見つかるかもしれません!