昔から一度参加してみたかった、MOSA主催のイベントにようやく参加することができた。しかも会場は Apple Japan。今年2月にも、大阪でMOSA主催のイベントがあり、粒揃いのセッションテーマの中でも特に「キューティマスコットを作り直してみる」という二度とはお目ににかかれないセッションは是非拝聴したく大阪に飛ぶ覚悟もあったのだが、予定が被り叶わなかった。
全体を通して牧歌的(?)で、思い思いに技術や未来予想(妄想?)を語らう空気感がとても心地よかった。筆者が福岡時代によく通っていた Apple Users Group や、各地で開催されていた AUGM の雰囲気を思い出して、懐かしくもあった。
今回はWWDC25のフォローアップイベントということで、特に Liquid Glass のテーマが多く取り扱われていたが、その他さまざまなアップデートについても多面的に取り扱われていた。今回、大谷さんのキーノートのために参加応募したようなものだったが、Apple プロダクトの歴史を遡った上で、今回の Liquid Glass というデザインシステムのアップデートから Apple の今後を説かれており、非常に説得力があった。浮遊するUIマテリアルに関しては個人的にも、(グラス型に限らず)フォルダブルなど多様なデバイス環境を予期したものだろうと思っていたが、、グラス型にフォーカスして語られるともはや、その布石であるとしか思えなくなってしまった。しかも WWDC25 という発表タイミングは、グラス型登場の前仕込みの段階であるという推測も、、Apple やその歴史を熟知されている大谷さんだからこその見解で、目から鱗だった。
Apple 豊田さんからの Recap セッションは、ひととおりセッションビデオを観た上でもなお有用だったし、Liquid Glass の解説については先の大谷さんのセッションと並べて聞けたことも幸運だった。
他にも、Yoshikawa さんによる Claude Code によるいわゆる Vibe Coding の実践談は手法が具体的で、取り入れるイメージが湧いたし(Cursorメインで使っている)、いけださんによる Foundation Models のデモでは、筆者も実践しながら再現性をなんとなく感じていた <ローカライズはプロンプト言語に依存> <ただし出力言語が一定しない(説)> を裏付けてくださり、興味深かった。
中野さんの発表に被せるかたちで、iPad の Full screen 対応 や Liquid Glass 対応のリミットに関して Apple 豊田さんによる追加補足があり、Xcode 26 の次のバージョン以降では猶予がないという温度感だった。現実的に、開発者としてはその猶予は数年は伸びそうだと思いたいのだが、、
しかし本日さまざまな登壇者が言及していたように、Liquid Glass の目指す方向性はその見た目の「新しさ」ではなく、将来登場する新たなフォームファクタ含め、多様なデバイスに対し、いかにソフトウェアやコンテンツを溶け込ませるかにあると考えている。なので、開発者が Liquid Glass への移行を余儀なくされるのは、その見た目が古いかどうかではなく、新しいデバイス上では使い勝手が悪いから、という理由で対応圧が迫るのではないかと予想する。
イベントページ:https://mosa.connpass.com/event/354216/
Liquid Glassから見えるAppleの未来戦略
なぜLiquid Glassのアイコンの丸みはデバイスに合わせてあるのか?
大谷 和利 さん
- 小さいことに見えて未来戦略から見ると大きいのでは?
- デジタル環境と現実との折り合いの付け方:その最新成果だと言える
- Liquid Glass は visionOS 26 には採用されていないのはなぜか?
- Alan Dye「ハードウェアとソフトウェアを緊密に統合する」
- 年代別の統合の変遷
- OS + ソフト + ハード(’80-’90)
- → サービス(’00):iTunes, iCloud, Apple Music
- → シリコン(’20):Mチップ
- → 現実の統合(24~)
- UIの変遷
- スキューモーフィズム(現実の模倣)
- コンピュータを身近に感じさせる
- GUIの歴史:比喩を使うことで、使い方が最初から分かる
- フラットデザイン(現実との線引き)
- ユーザーがデジタル環境に慣れ、画面の中だけでの完結
- ユーザーも進化した
- Liquid Glass(現実との融合)
- Rを同じにした。装置と画面内との境界線を意識状で無くしていくポリシーが含まれているのでは
- Vision Pro では現実と仮想の区別がそもそもつかない
- それ以外はデバイスを手にするので現実仮想が区別される → Rを一致し(透明にし)一体化させることで意識状は現実と仮想の境界をなくし融合する、のではないか。
- 半透明表現やグラスモーフィズムは、これまでも段階的に取り入れられていたが、本質的に異なる(e.g. Control Center)
- 透明度が高いだけでなく、場所を取らないようにしている(従来的なMax幅表現でなく、寄せることで背景コンテンツの存在を多く見せている)
- → UIがコンテンツを邪魔しない:意識の上で透明化していく
- Vision Pro だと現実の風景
- Alan Dye「(ガラスの工学的特性と)Appleにしか実現できない流動性を組み合わせ」
- 他社プラットフォーム上の模倣はあくまで静的なもの、本質的な模倣ではない
- Liquid Glass
- 物理法則に従う、すべてに実体がある感覚(Appleは「素材」と表現)
- 従来の拡散だけでなく、反射や屈曲もシミュレート
- Liquid Glass の動き自体で情報を見せている
- 背景が透けていることが重要:今は画面上だが、Vision では現実世界。そこに「素材」が浮かんでいる見せ方
- visionOS 26 で組み込まれていないのは、まだ煮詰めができていない?隠し球になっている?
- Material 3 Expressive
- スケール・高さ・空間の変化に軸足を置く構造的な情報設計、動きが構造の理解を助ける。フラットをベースに奥行きと触覚フィードバックで補助
- Expressive(表現力)を売り
- 例:壁紙カスタマイズ機能
- カスタマイズ、パーソナライズの多様性
- 天気エフェクト:現実の天気と同期するわけではない、現実とデバイスとが分離する(Appleはこれはやらない)
- Alan Dye「将来の新しい体験を生み出す基礎」
- visionOS 表現がヒントになったが、visionOS に採用しているわけではない
- 固定的デバイスよりも考えることが多くあり、実現に至っていない、その段階で他社に模倣されることを避けるために隠し球としている?
- なぜトランスルーセント?→ より多くのコンテンツを見せるため(Visionなどグラスデバイスでは、現実世界)UI の主張が強いと、その先のものを隠してしまう。
- Android XR のライブデモ
- 準備中にヘッドバンド部分を擦っていた:タッチコントロールがありそう
- 現段階では、UI が単なる透明かつ枠付き(ほとんどデザインされておらず、情報をそこに表示しているだけ)
- Material 3 Expressive とは関係ないつくり、UI がまだ固まっていなさそう
- Apple は、かならず来たるグラス型デバイスを、Mac や iPhone ユーザーが迷いなく使えるよう準備している、今のうちから現実との融合を図る新しいデザイン基盤に慣れてもらうための仕込みが Liquid Glass と思われる(視界を遮るUIにはならないだろう)
- M3 Expressive は主張を強めてしまい、XR では暫定的な作りになっている可能性
- デバイスの進化の方向性
- Jonathan Ive:OpenAI とのプロダクト開発。
- 自らの過ちはスマートフォンを作ったこととする内省。みなスマホばかり見ている。
- → スマホ漬けから人々を解放するために(グラスではなく)ポケットのなかに入れたまま使えるものを開発
- Apple Glass は、AirPods や Watch と併用により、最大限機能活用できるだろう
- ソーシャルメディアを追うデバイスにせず、周辺デバイスと分散的に機能を補い合い、スマホ漬けから脱却する
- Liquid Glass の発表により、登場は近いだろう
- Android XR は Gemini によるアプリ間連携できるが、Siri ではできない:WWDC25で Siri Shortcuts などでのアプリ関連系の補強が発表された
- Jonathan Ive:OpenAI とのプロダクト開発。
- スキューモーフィズム(現実の模倣)
WWDC25 Recap
Apple WWDR Design Evangelist 豊田さん
- Apple Intelligence
- Platform intelligence
- 組み込みが非常に簡単
- Genmoji
- 標準の Text フィールドではそのまま利用可能
- 画像生成
- Image Playground Sheet
- Image Creator
- 作文ツール
- 書き換え後に instruction 追加可能
- Writing tools button の追加が可能
- Genmoji
- Foundation Models framework
- Apple の LLM に直接アクセスできる機能
- 利点
- 完全オンデバイス
- オフライン動作
- タダ
- OS組み込みなのでアプリサイズに影響しない
- ユースケース
- 過去投稿、睡眠時間などからパーソナライズしたエントリーを提案
- 領収書写真からVisionでテキスト抜いてカテゴライズ(オンデバイスで完結)
- テキストの書き換え、要点整理(コンフィデンシャル担保できる)
- 自然言語による検索補助
- Speech との組み合わせ
- 従来の SFSpeechRecognizer のリミット(60秒までだった)
- SpeechAnalyzer API
- SpeechTranscriber:
- かなり長いオーディオを扱えるように
- 人との会話、聞き取りにくい会話に対応
- 低遅延、プライバシーの担保
- システムのストレージが使われる
- アップデートも自動で行われる
- 日本語で使用可能
- SpeechTranscriber:
- 組み込みが非常に簡単
- New system integration
- App Intents + Visual Intelligence / Shortcuts / Spotlight
- Shortcuts が非常に重要、アクションを外だし
- Use Model:Foundation Models と似たショートカットを作成可能
- iCloud (cloud computing) / On-Device / ChatGPT のモデル選択が可能、Foundation Models よりもフレキシブル
- App Intents + Visual Intelligence / Shortcuts / Spotlight
- Platform intelligence
- Vision Pro / visionOS
- SwiftUI での開発がかなりやりやすくなった
- モデルを持って動かす、といった挙動が1行で実現可能
- 従来のゲームの移植が容易に
- visionOS 26 updates
- Foundation Models / SpeechAnalyzer など同様に利用可能
- Widgets、QuickLook 固定し、再起動しても同じ場所に表示される(persistent features)
- 3Dモデルの空間表示を壁、棚にスナップ可能
- Widgets:Glanceable, Relevant, Personalized
- スナッピング、近接検知
- 多くのユースケースに利用できる:タスク管理、言語学習、瞑想、料理、ワークアウト、、
- すでに提供している Widgets は互換性モードによりそのまま適用される
- New interactions
- ハンドトラッキングが 90Hz
- Look to scroll
- 空間アクセサリ
- 触覚フィードバック
- 仮想オブジェクトのアンカリング
- Immersive media
- 空間シーン:2D写真から空間写真を、3rd-party アプリ内でも生成可能に
- マルチシーンの再生に対応
- 空間ビデオのイマーシブ表示
- Apple Projected Media Profile (APMP)
- 180° / 360° / Wide FOV 映像への対応
- QuickTime のフォーマットに特別なメタデータを入れられるようにした
- 魚眼映像を APMP 変換し、湾曲しないようコントロール
avconvert
コマンド
- RealityKit / AVFoundation / QuickLook / Safari で再生可能
- 映像内のの激しいモーションを検証して没入度を自動的に低減する仕組み
- SwiftUI での開発がかなりやりやすくなった
- デザインのアップデート
- Liquid Glass
- 一貫性、適用力、表現力が豊かな、現実空間の新しいマテリアルにより、体験がイマーシブかつ滑らかに
- コンテンツによりフォーカス
- 拡張性を維持するために、コンテンツレイヤから常に「浮いている」ひとつ上の、ただひとつのレイヤ
- 浮いているレイヤは、コンテンツレイヤの表示に適用して可読性を動的に担保
- 画面内のステートの切り替えに追従してダイナミックにコントロールが変化、モーフィング
- ガラスの色付け:背景に応じて色相・彩度が自動調整され、可読性を担保
- アクセシビリティ:透明度下げる、コントラストを上げる に対応
- すべてビルドイン、システムにより自動的に適用される
- 3つのベネフィット
- コンテンツにプライオリティを与えられる(content-first)
- Scroll edge effect
- プラットフォーム間の一貫性 (consittent across platform)
- いつも単一のナビゲーションを使っている感覚
- コントロールがすべて統一されて認識しやすい
- デバイスハードウェアとの視覚的調和 (harmonious with hardware)
- Concentricity:同心度
- 角丸半径内に綺麗に収まる曲率を、システムが自動適用
- macOS でネストする、サイドバー → コンテナ → 閉じるボタン がすべて同心性を保っている
- コンテンツにプライオリティを与えられる(content-first)
- 一貫性、適用力、表現力が豊かな、現実空間の新しいマテリアルにより、体験がイマーシブかつ滑らかに
- Liquid Glass
- Structure
- コンテンツから浮き上がるファンクションレイヤー(コンテンツレイヤにあるものではない)
- Tab bar
- スクロールに応じたタブバーをたたむ挙動を1行で実現可能(mandatoryではない)
- Accessory View:最小化時にタブバーのエリアに降りてくる
- 移動前後でサイズが可変なので、ボタン減らすなど工夫が必要(ひとつのEnvironmentで管理可能)
- アプリ全体に共通するコントロールに利用するのは良いが、画面特有のコントロールを配置してはいけない(コンテンツレイヤから浮いているトップレベルのナビゲーションなので)
- Sidebar
- カルーセルコンテンツがサイドバー下に流れ込む
- Background Extension effect
- なにもせずともコンテンツに応じサイドバー後ろの色が自動的に決まる
- ビュー毎に定義可能、同じ画面内でもエフェクトを変えられる
- 反転させてブラーをかけることで、広がりを自動に表現
- モーフィングを、シートに対しても適用可能(sorceとdestinationを指定すれば自動適用される)
- Using Liquid Glass(カスタムコントロールへの適用)
- Liquid Glass のコンセプトを忘れないように(コンテンツレイヤの上に浮かんでいるただひとつのレイヤであること)、Liquid Glass の使用を判断するべき
- Map
- Mapの上に浮いているコントロールにLiquid Glassを適用
- Liquid Glass レイヤが複数にならないこと(シートを挙げるとコントロールが消える。重ならないようにしている)
Label().glassEffect()
- コントロールのラベルに対しても可読性を担保するよう vibrant なテキストカラーを自動適用する
- カラーリングは、必ず意味のある選択を(見た目を綺麗にする、ではなく、Do/Cancel だから何色、と)
interactive()
で、インタラクションに自動追従
- Q&A:既存のアプリへの対応について
- Liquid Glass がコンテンツから浮いたレイヤーを定義し、その中でユーザーがインタラクションをするので、そうでない体験を提供するとユーザーの迷いにつながる
- iOS 7 の時を思い出して
- 新しいものを使っている感覚、古いものを使っている感覚、が今後起こってくる
- 綿密に設計しているので、信頼して
- HIG に Liquid Glass のセクションがあるわけではない、コントロールごとに Liquid Glass の概念を触れている
- 膨大なドキュメント・リソースあるが、重要なポイントは今日説明した内容:迷ったタイミングでリファレンスとして使えば
Claude Code で爆速アプリ開発
Kaz Yoshikawa さん
- Pricing
- $100 すぐ切れる、最近 $200 でも切れる
- ChatGPT
- Xcode と連携してパッチ用意してくれるので良い
- ファイルを跨いでは考えてくれない(狭い範囲での問題解決しかできない)
- 試行錯誤はせず、ビルドエラーの解決は使い手がする必要がある
- Claude Code
- コマンド覚えなくて良いし、ビルドエラーも直してくれる
- 自律的なデバッグ
- print 文埋め込みやログの分析、解析後の削除も勝手にしてくれる
- コードの処理系路分析もしてくれる(どこで何呼んでいるかを解析、解説)
- PowerPoint を解析するコーディングをしたい場合
- PowerPoint の公開仕様書を探してダウンロードし、複雑な仕様を要約し、内容を理解し、解析実装をコーディングしてくれる
- 難しいタスクをいきなり投げてもできない(コードガチャが発生)ので、簡単なタスクに分解することが大事
- 分割タスクもされに分割し、、タスクがシンプルになるまで分割すると良い仕事する
- コード書くの大好きなので、コード書く前にプランを立てさせる
- 計画中もコード書きたがるので、とにかく念押しして指示する
- 計画書をAIに書かせることで、自分側の指示漏れが明確になる
- とにかくシンプルに
- 勝手にあったら良いな機能を実装し始める:シンプル設計を心がける
- 機能の変更は、ただの追加よりも難易度が高い傾向
- 勝手にあったら良いな機能を実装し始める:シンプル設計を心がける
- ドキュメントの山ができたら整理
- ドキュメントいっぱい書かせるので、AIに適宜整理させる
- プラン、現状設計、至るまでの議論、アーカイブ(資料)に分類
- 「議論」を勝手に変えてくることがあるので、触らないように指示する
- AIの試行錯誤が行き詰まっていることを見つけてあげる
- 行き詰まったと言わず、試行錯誤し続ける
- プランにないコードを書き始めたら実行を止める
- 自動運転は、延々不要なことをするため、状況をさらに悪化させる
- 息詰まった現状と経緯をレポートさせて、git reset
- どこが困っていて、何が傷害かをAIに詳細レポートさせる
- git reset して、このレポートを読ませる
- 障害を避けてコーディングする(体験談)
- 管理監督注意不足
- 二つ以上のプロジェクトを試したら、注意が行き届かずただ「ハンコを押す」状態に
- 使わない機能(あったら良いな)満載、その機能のせいで必要機能が制限、目的ブレ(既存機能の変更が難易度高い)
- プロンプト応答待ち時間も軽んじてはいけない(何やっているか把握するべき)
- 二つ以上のプロジェクトを試したら、注意が行き届かずただ「ハンコを押す」状態に
- 例:Swiftlet
- Ignite にインスパイアされた 動的サイト生成ライブラリ Swiftlet を作らせた(公開した)
- Ignite をサブモジュールに読み込む
- Ignite の DSL の仕組みをレポートさせる
- レポートをもとに CGI like なサイト生成の Swift 化を相談
- 要求を盛り込みコード生成させる
- AWS EC2 に対応させる
- Ignite にインスパイアされた 動的サイト生成ライブラリ Swiftlet を作らせた(公開した)
- 結論:アイデアと監督能力あればアプリ作れる
- システム開発の戦国時代:アイデア次第
- 仕様公開されているが複雑で理解不能なものへのハードルが低くなった(e.g. PowerPoint のデータフォーマット)
- インフラ知識なくてもインフラからメタアプリ開発が可能(逆も然り)
- 監督責任問える程度の知識は必要
- システム開発の戦国時代:アイデア次第
Apple Vision Proで輝く!?Apple IntelligenceとFoundation Models
いけだじゅんじ さん
- ChatGPTとは違う
- Foundation Models の真髄は対話ではない、
- オンデバイスなので、幅広い情報提供が目的ではない
- アプリの能力・知性の拡張をオンデバイスで実行できる
- ローカライズ
- デバイス / Siri の言語設定は関係ない:プロンプトの言語が関係する(必ずしも反映されるわけではない)
- Instruction / Prompt / Generable / Guide を日本語で記す
- visionOS 関連のコードが非常に多く、Foundation Models が絡むものを動かしてみた
- 勘所が最もわかるサンプル:Code-along
- ランドマークの知識はJSONファイルで定義してある
- visionOS の場合、hero画像の空間シーン化やマップが個別に展開される体験ができた
- 勘所が最もわかるサンプル:Code-along
- ARグラス時代では、コンテンツがデバイスから外に出て今いる空間に出ていき、実在しているのと変わらなくなる(新しいデジタルコンテンツ市場)
- 人とコンピュータのインタラクションの変化
- iPhone / iPad 目的駆動型:目的があってデバイスを手に取る
- Vision Pro 装着・空間コンテキスト:目的の前からコンテクストを把握
- Apple の目指す先:プライバシー・ウェルネス・ヘルスケア
- Watch, AirPods, Vision Pro, Glass はそれぞれ個別カテゴリのデバイスなのか?
この夏のSwiftUI
中野 洋一 さん
- Liquid Glass
- 旧来のままを保ちたい場合、Info.plist で設定可能
- 廃止が予定されている(iOS 26 以降は怪しい)
- 旧来のままを保ちたい場合、Info.plist で設定可能
- iPadOS 26
- Tab bar & Side bar に大きな変更
- ウインドウサイズに応じて自動切り替え
- Resize window:画面固定サイズが許されなくなる
- Required Full Screen (
UIRequiresFullScreen
) フラグが deprecated になり、その後無視される
- Required Full Screen (
- Window control:閉じるボタンなど
- Menu bar
- Scene Delegate のサポートが必須
- Tab bar & Side bar に大きな変更
- SwiftUI in this summer
- WebView対応
- SwiftUI 向けの WebKit
- Rich text が TextEditor / Text で対応
NSAttributedString
を利用
- WebView対応
- Xcode 26
- Coding Assistant
- String Catalog
- 生成AIで自動的にコメント「Generate Comment」
- どこで使っているのかを自然言語で説明してくれる(by Apple Intelligence)
- e.g. “A button label taht initiates tha camera capture process.”
- 生成AIで自動的にコメント「Generate Comment」
- Analyze SwiftUI performance
- Privacy Settings assistant
- カメラなど権限に関する必要設定(Info.plist の description)がされておらずアプリが落ちた際、設定への動線が提供されるように
- Ohter platforms
- Alarm Kit
- Paper Kit
Code Intelligence デモ
Apple WWDR Technology Evangelist 武石さん
- 契約しているAIやローカルにあるモデルを使うことができる
- キラキラマークと書類マークで、従来の Project Navigator と切り替え
- ふたつのモード
- 自動でコードに書き換える/提案だけさせて自分で反映を選ぶ
- プロジェクト全体でなく、特定の一部に対する指示も可能(説明させたりドキュメント書かせたり)
- ChatGPT Plus など契約していれば、自分のアカウントで追加可能(なくても、Apple が契約している最低限のモデルで使うことができる)
- 複数有効化が可能:Xcode上でモデルを選択可能
- LM Studio でローカルモデルも利用可能(インターネット接続なしでコーディング支援可能)
- 「Writing code with Intelligence in Xcode」
- Project context の設定
- 企業案件などで使用、ただしミニマムな提案になる
- Auto-apply changes の設定
- Auto-apply しても、履歴から revert も可能
- Project context の設定
- モデルの推奨:Foundation Models だと 8GBメモリデモ使えるが、コーディングに使えない。ローカルで本気で使おうと思うと 128GB は必要、それでも ChatGPT に及ばない(本格的にローカルモデル活用するのであれば 512GB とか)