私はSwiftUI学園2年生のまつじ!
今日は転校生が来るって聞いてたのに遅刻遅刻〜〜!ViewHierarchyを口に挟みながら走ってたら角から出てきたコに...!キャッ!ぶつかっちゃった
もうなんだったの!あいつ!ってイライラしながらホームルームに出席すると...! 転校生ってあいつじゃん!
freddi先生新作。ドタバタ☆恋愛コメディ!始まる三角関係!UIViewControll太くん!私のためにあいつと争わないで〜〜〜〜〜
どっきどき!学園モノ4コマ漫画「SwiftUI学園 ~発動編~」堂々のスタート!
ますますグローバル化が進み、海外からのリクルートも活発になっている現状を踏まえ、多くの技術者が英語力の向上を求められています。そんな中で英語学習に苦労している方々に向けて、WWDCの動画を活用したシャドーイング学習法を紹介します。発表者は元英会話講師であり、その経験を活かして、効果的な英語学習法をお伝えします。シャドーイングは、リスニングとスピーキング能力を同時に鍛える効果的な方法であり、特に最新のiOS26に関するWWDCセッション動画を教材として使用することで、英語力と技術知識を同時に習得できます。
具体的には、シャドーイングのやり方、効果、そしてシャドーイングを継続するためのモチベーション維持のコツや、効果を最大化するためのテクニックを共有します。元英会話講師としての視点から、実践的なアドバイスや学習のヒントも提供します。このトークを通じて、参加者は英語学習と技術習得を同時に進める新しいアプローチを体験し、WWDC動画を活用した学習の楽しさと有効性を実感できるでしょう。英語力を向上させたい方、WWDCの動画たまってるな〜という方、そして効率的な学習法を探している方にとって、ぜひ聴いていただきたい内容です!
スクリーンショットや画面収録、画面共有などによって、ユーザーの機密情報が意図せず漏洩するリスクは、モバイルアプリにおける重要な課題です。特に、パスワードやクレジットカード番号、決済バーコード、有料コンテンツなど「画面には表示したいが、スクリーンショットには映したくない情報」のニーズは年々高まっています。
本トークでは、SwiftUIアプリにおいてこれらの情報を保護するための、セキュアなViewの構築法を紹介します。対象コンテンツの表示にUIKitを経由せず、SwiftUIのみで完結する実装により、状態管理やアニメーションとの整合性を保ちつつ、安全性と保守性を両立するSwiftUIらしいアプローチ方法を具体例と共に解説します。
トーク内容
⚪︎実際の利用事例
⚪︎スクリーンショットからの保護の必要性と課題
⚪︎従来取られたきたアプローチ
⚫︎どういった仕組みで実現されているのか
⚫︎SwiftUIでどう対応するか
⚪︎これを応用したUIの構築
2022年に公開されたApp Intentsですが、皆さんはもう活用されていますでしょうか?
最近のmacOS TahoeではSpotlightからの活用が可能になり、App Intentsの用途は着実に広がっています。しかし、カンファレンスや実際のアプリケーションで話題になることは、まだ少ないと感じます。
本トークでは、まずApp Intentsの概要とその基本的な利用方法を振り返ります。
その後、App Intentsに対応することでAppleエコシステムがどのように発展していくのかを考察します。
現在、MCPやモデル性能における大競争が繰り広げられていますが、Appleファンである我々はAI時代にどのように向き合っていくべきなのでしょうか?
このトークを通じて、その考え方の一例を皆さんと共有できれば幸いです。
今を去ること 6 年前、iOSDC Japan 2019 にて、トレーニング企業で受講者に利用してもらうための多数の Mac の環境構築に関する試行錯誤についてお話ししました。
弊社では Mac を多数用意してトレーニング環境をあらかじめ構築し、受講者にご利用いただいています。その際、機材ごとにアプリケーションのバージョンが異なっていたり、macOS の設定が異なっていると受講者が混乱してしまいます。そのため、できる限り環境を統一した状態で用意したいのですが、それを手作業で行うのは人の温かみはあるものの、非常に大変です。
以前は NetRestore を利用して環境の完全なクローニングとリストアが高速にできていました。しかし、macOS のバージョンアップやファイルシステムの APFS への変更、ハードウェア自体も T2 Security Chip の導入や Apple Silicon へのアーキテクチャ変更などもあり、その度に制限事項が増えています。
これらの制限との戦いを経て、一度は回帰してしまった「温かみのある手作業」による環境構築から抜け出すことができたのか?
現在の状況と環境構築の工夫とは?そしてまだ手作業の温かみは残っているのか?
我々の試行錯誤の数々と、現在の状況をぜひお聞きください!
Cybozuで内定者アルバイトをしている中、テストマイグレーションの一環でSwift Testing、Parameterized Testを導入していた最中、異常なパフォーマンスの低下を検知しました。
なんとその倍率75万倍?!
これはヤベェ...と独り言をいいながら色々検証した結果ある結論にたどり着きました。
「Xcodeが悪いんじゃね?」
このシンプルな結論にたどり着くまでに考えた、原因探索やそれまでのフローは簡単に調べたら出てくるものではありません。
そこで、このテーマを人生初めてのiOSDC登壇テーマとして
「XCTestからSwift Testingへの移行におけるParameterized Testの採用で75万倍のパフォーマンス低下に直面した件」 についてお話します。
[本セッションで取り上げる内容]
WWDC24から多くのプロダクトのテストを担うようになったテストフレームワークである Swift Testing
参加者の皆さんが関わるプロダクトでも導入が進んでいるのではないでしょうか?
AIによるコーディングの台頭により、今後おそらくもっとテストに対する意識は高まってくるでしょう。
AIで効率化されたナウでヤングでトレンディな開発を行う今! テストについてのルーキーズLTを "5分だけ" 聞いてみませんか?
2021年、東急株式会社は内製開発組織「URBAN HACKS」を立ち上げました。URBAN HACKSは最初期からモバイルアプリエンジニアを戦略的に採用し、アプリを起点としたDXに取り組んできました。
本セッションでは、iOSDC2022のLT『鉄道アプリを支えるテクノロジー』で紹介した東急線アプリのフルリニューアルの裏側を振り返りながら、「なぜスマホアプリからDXを始めたのか?」という問いを改めて掘り下げていきます。
リニューアルを表面的なアプリの改善だけで終わらせないため、デザインや機能を刷新するだけでなく、それをきっかけにどのように組織のマインドや風土を変革していったのか。現場からDXを駆動させるプロセスと、その中でアプリが果たした役割について、実践を通じて得たリアルな学びを共有します。
SwiftUIでの開発は、宣言的で簡潔な記述ができる一方で、画面が大規模・複雑になるにつれて思わぬ設計課題に直面することがあります。多くの開発者は、以下のような課題に直面することも多いでしょう。
SwiftUIの宣言的な記法は一見シンプルで強力ですが、実際の開発現場では、構造の複雑化や保守性の低下といった課題が顕在化しやすくなります。たとえば、1つの画面に複数の状態や分岐が含まれる場合、ifやswitchの入れ子が増えてbody が肥大化し、Viewの構造を把握するのが困難になります。また、共通化を目的にViewを切り出しても、柔軟性を持たせようとするあまりPropsが増えてしまい、かえって使いづらくなることもあります。
このような問題に対する1つのアプローチが、「コンポーネント指向」による設計です。UIを意味のある小さな単位として切り出し、それぞれが明確な責務を持つ自己完結型の部品として設計することで、再利用性や可読性を高めるとともに、状態管理の整理にもつながります。
とはいえ、SwiftUIにおけるコンポーネント設計は簡単ではありません。Propsが増えることでかえって複雑になることもあれば、状態やデータフローの設計次第で再利用性が損なわれることもあります。
本記事では、これらのSwiftUI特有の設計課題を整理しつつ、実際の開発の中で見えてきたコンポーネント指向設計の工夫や考え方を紹介します。宣言的UIで複雑な画面を設計している方、構造的なView設計に悩んでいる方の参考になれば幸いです。
「CursorでSwiftコード生成→Xcodeに切り替えてビルド→エラー確認→また戻って...」
AIを活用した開発ツールで効率化したはずなのに、 Xcodeの操作で結局時間を失っていませんか?
実は、AIツールからxcrunコマンドを活用すれば、IDE間の切り替えを減らしつつ開発できます。
本セッションでは、LLM時代の新しい開発フローを実例とともに紹介します。
【解決する課題】
・AIツールとXcodeを頻繁に行き来する煩雑さを解消します。
・GUIからしかできないと思っていた操作をAIに実行させます。
・AIが生成したコードの即座の動作確認ができます。
【実演内容案】
LLM時代を活用する、古くて新しい開発知識を身につけましょう!
iOS 26において発表された「Glass UI」は、Appleのデザイン哲学を体現する新たな表現形式として注目を集めています。その最大の特徴は、半透明かつ多層的なUIを通じて、情報と視覚の境界を曖昧にすることにあります。しかし注目すべきは、視覚効果そのもの以上に、誰もが容易にこのUIをプロトタイピングできる開発環境が整備された点です。
従来、こうした視覚的表現の実現には高度なレンダリング技術やパフォーマンス最適化が必要とされてきました。しかし、Appleが提供する新たなUIKitおよびSwiftUIのAPI群により、Glass UIの導入は非常に簡潔かつ再現性の高いものとなっています。標準化されたBlurやDepth、Material効果を用いたコンポーネント設計は、開発者にとって「まず試す」ことを可能にする環境を提供します。
さらに、iOS 26で実装されたGlass UIは、単なる美的表現にとどまらず、ユーザー体験そのものの再構築を促す契機として捉えることができます。情報の重なりと空間性をデザインに組み込むことで、従来の二次元的な画面遷移に依存しない、より直感的かつ没入感のあるUIフローが設計可能となりました。とりわけ、通知、設定画面、コンテンツビューアといった多層的情報を扱う場面において、Glass UIの導入はインタラクションコストの軽減と視認性の向上を両立させる新しいアプローチとなり得ます。
本講演では、Glass UIを用いた実際のプロトタイピング手法とともに、その表現力と制約、そして現場での活用可能性について考察します。また、UI設計における「触覚から視覚への比重の移動」についても理論的に分析し、視覚演出が操作性やユーザー認知に与える影響を探ります。
iOSアプリケーション開発において、「拡張性」「可読性」「効率性」の三要素は、理想として繰り返し語られてきました。しかし、それを現実のプロダクト、特に複雑かつ長期運用を前提とするゲームアプリにおいて愚直に実践することは容易ではありません。
本セッションでは、筆者が2年間にわたり携わった、複雑なゲームアプリにおける機能追加・バグ修正・運営を通じて得た知見を共有します。このアプリでは、オブジェクト指向設計をはじめとする基本原則を徹底的に適用し、ソースコードの構造的な整備とCI/CDを含む開発プロセスの最適化を愚直に実施しました。
その結果、少人数の体制でも新機能の追加や安定的な運用が可能となり、一定の収益を継続的に得ることができました。本発表では、設計・実装・運用の観点から、どのようにして「基本を忠実に行うこと」が品質と成果に結びついたのか、具体的なコード例や運用体制とともにご紹介します。
複雑なアプリの開発・運用に課題を感じているエンジニアにとって、「原則を疑わず、信じて実践すること」がなぜ有効なのか、その一つの実践例として参考になれば幸いです。
旧ログシステムから新しいシステムへ移行する際、新システムにはiOS SDKが提供されておらず、なんとログ基盤を自作することに!
そんな大規模なサービスの基盤を構築することは、実際にはそれほど怖くありません!
このセッションでは、5000万ダウンロード規模のiOSアプリにおけるログ基盤移行の実践事例を紹介します。
このセッションでは以下の内容について詳しく説明します。
このセッションを通じて、中〜大規模サービス基盤刷新の具体的な手順と注意点を理解し、実践に役立てていただければ幸いです。
このセッションでは、皆さんが日々使っているYouTubeやTVerなどで流れる動画広告について、それらがどのような規格に基づいて配信/挿入されているかを簡単なiOSアプリ実装のデモを交えながら説明します。
HTTP Live Streaming (HLS)での動画配信をベースとして、
・ 広告の基本的な配信方式であるCSAI(クライアントサイド広告挿入)とSSAI(サーバーサイド広告挿入)についての説明
・ VMAP/VASTといったような「いつ/どんな広告を配信し、計測するか」の規格の説明
・ SCTE-104/35など放送技術との連携について説明
などを行いつつ、普段はGoogle IMA SDKなどの広告SDKにブラックボックス化されている処理を実際にiOSアプリ/Swiftのコードとして実際書いて動かしてみます。
このトークを通じて、普段ブラックボックスになりがちな動画広告SDKの内部動作を理解し、より高度な動画プレイヤーの実装や、広告関連の問題のデバッグに役立つ知識を身につけることができます。
動画配信サービスの開発に携わる方はもちろん、AVFoundationを使った動画再生の実装に興味がある方にもおすすめです。
対象者:
動画サービスに関わっている方
AVFoundationの基礎知識がある方
動画広告の仕組みに興味がある方
キーワード:AVFoundation, HLS, 動画広告, VMAP, VAST, SCTE-35, Google IMA SDK
私たちが開発しているiOSアプリはリリースから3年以上が経過し、多くの方にご利用いただいております。しかし、長期運用に伴う機能追加や改修により、コードベースは徐々に肥大化し、レガシーコードの蓄積という課題に直面していました。特に、過去のプロジェクトメンバーが書いたコードや、仕様変更によって不要になったコードが残存していることが、コードの保守性や可読性を低下させる原因となっていました。
この課題を解決するために導入したのがPeripheryです。Peripheryは、Swiftプロジェクトの未使用コードを静的に解析するツールです。単に使われていないコードを検出するだけでなく、未使用の関数引数や不必要な public 指定に対しても警告を出してくれるため、非常にきめ細やかな検出が可能です。これにより、コードの肥大化を防ぎ、品質を向上させることができます。
Peripheryの導入には主に3つの方法があります。
・Xcodeに統合し、Aggregateターゲットで警告を表示
・CI/CDツールを用いて定期的にPeripheryを実行し、検知
・PR(Pull Request)作成時にCI/CDツールを用いてPeripheryを実行し、検知
本セッションでは、Peripheryの具体的なセットアップ手順から上記のCI/CDの構築方法を解説していきます。
またGitHub上にサンプルプロジェクトを公開することにより、Peripheryの導入を検討されている方がスムーズにプロジェクトに取り込むことができるようにします。
2024年7月、徳島で開催された神山.swiftをきっかけに、Chiba.swift、Kanagawa.swift、Osaka.swift、Minokamo.swift、Nagoya.swift...と、全国各地でSwiftの勉強会が広がりました。
この“地域xSwift”の流れは「Japan-\(region).swift」と名付けられ、コミュニティとして活発に動き出しています。
2025年7月には、全国を横断するWWDCまとめイベントやHakata.swiftの開催も予定されています(2025年6月現在)。
本記事では、ムーブメントを生み出したオーガナイザーたちのインタビューや、実際のイベントの写真とともに、この1年間の歩みと、各地で生まれだ“つながり”を振り返ります。
次にムーブメントを起こすのは、もしかしたらあなたかもしれません。全国各地でまた新しい”つながり”が生まれるのを楽しみにしています。
Apple Vision Proの登場により、visionOSを活用した新しい空間体験の可能性が大きく広がっています。
中でも注目されているのが、高精度なハンドトラッキングとハンドジェスチャーによる直感的な操作体験です。
ハンドトラッキングを活用すれば、たとえば、手に追従してオブジェクトや情報を表示したり、手だけでスペースシップを操縦することができます。
さらに、ハンドジェスチャーでモンスターを召喚したり、手から魔法を撃つことだってできます!
また、SwiftUIでお馴染みのGestureを使えば、3Dオブジェクトを空間内で移動・回転・拡大縮小させるといった操作も、驚くほど簡単に実現できます。
本トークでは、visionOSにおけるハンドトラッキングとハンドジェスチャーの基礎的なAPIの使い方から、個人開発やハッカソンで実際に作成したアプリの事例を交えながら、実践的な活用法を解説します。
visionOSのハンドトラッキングやハンドジェスチャーを活用して、新しい空間体験を創っていきましょう!
Viewの表示・非表示といった状態変化の際にトランジションによる視覚効果を加えることで、
UIの変化をユーザーに自然に伝えやすくなり、アプリケーションの表現力も大きく向上します。
SwiftUIでは、transitionモディファイアやTransition protocolを使うことでトランジション演出やカスタムトランジションを実現できます。
Built-inのTransitionを用いたり、scaleやoffset、opacityなどを組み合わせるだけでもさまざまな演出を行えますが、
さらにリッチな表現を追求したい場合には、SwiftUIとMetalを組み合わせることで、より多彩な表現が可能となります。
SwiftUIとMetalの連携はiOS 17で登場したcolorEffect、distortionEffect、layerEffectによって実現可能で、
これにより画面が歪む・波紋が広がる・グリッチを加えるなどのダイナミックで印象的な演出を表現できます。
本トークでは、SwiftUIの基本的なトランジションの使い方からカスタムトランジションの作り方、
そしてMetalを用いた多彩なトランジション演出の実現方法まで、デモを交えながら具体的な実装のポイントを紹介します。
トランジションを使いこなしてアプリにさらなる表現をプラスしましょう。
モーダルはiOSアプリで情報表示、注意喚起また選択肢の提案などユーザーへの表示としてよく使われます。
皆さんも一度は設定したことがあるでしょう。
他のプラットフォームのWebやAndroidに目を向けてもさまざまなサービスで多様な形で導入されており、
モーダルという言葉だけで画面の一部または全面にユーザーへの情報の提示がされることが開発者だけでなくサービスに関わる人であればわかる様な言葉になっていると思います。
しかし一口にモーダルと言っても、導入目的や背景によって様々なモーダル導入の手段があります。
例えば、Mapアプリなどでは下半分モーダルの表示がありながらも地図の操作をすることができたり、
iPadの動画アプリでは動画を流しながらも右のスペースにだけコメントや動画の情報が表示されたりと、
その使い方はモーダルのようでありながら、ユーザー操作を妨げないモーダレスなデザインも存在します
本セッションではhuman-interface-guidelinesで言及されているmodalityの内容また、
私のMapアプリや動画アプリでのモーダル導入経験から
モーダルウインドウのような表示をどのようにアプリに組み込むべきか?をサンプルコードを用いて、実際のアプリケーションでモーダルをどのように実装するかを学びます
目次
iOSDC Japan 通算10回目の開催おめでとうございます!
10進数では桁が一つ上がるこの節目に、本編前のあらすじ紹介のように、これまでのiOSDC Japanを振り返りたいと思います。
第1回のiOSDC Japan 2016がCoconeriホールで開催されてからこれまで、iOSDC Japanは「iOSエンジニアのお祭り」というだけあって、トークセッションのみにとどまらず、様々な企画が開催されました。その中には時代に合わせて姿を消したものもあれば、改善を重ねながら今もなお続いているものもあります。例えば「夜のiOSDC」や「iOSDC茶会」、当初は競技のようだった「iOSDCチャレンジ」などなど。
本記事では、そんな前回までのiOSDC Japanを、第1回から欠かさず参加してきた筆者の思い出を交えながら振り返ります。古くから参加されていた人には懐かしい思い出を蘇らせ、新しく参加される人には過去の魅力的な出来事を知る機会を提供します。
パンフレットは開催前に参加者の手元に届くので、楽しそうな誌面にして、開催当日に向けてのみなさんの気持ちを盛り上げます!