Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SwiftUI Inspectorが難しすぎる / Mobile Act OSAKA 18
Search
Yutaro Muta
March 25, 2026
Programming
0
8
SwiftUI Inspectorが難しすぎる / Mobile Act OSAKA 18
Mobile Act OSAKA 18
https://mobileact.connpass.com/event/383587/
Yutaro Muta
March 25, 2026
Tweet
Share
More Decks by Yutaro Muta
See All by Yutaro Muta
Google Nest CamとApple Vision frameworkと猫🐈🐈⬛ / onishi50
yutailang0119
0
34
Swift Concurrencyでのスケジュール処理を考える / Mobile Act OSAKA 17
yutailang0119
0
130
猫と暮らすネットワークカメラ生活🐈 ~Vision frameworkでペットを愛でよう~ / iOSDC Japan 2025
yutailang0119
0
380
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
280
Swiftの “private” を テストする / Testing Swift "private"
yutailang0119
0
320
Apple Vision Pro購入RTA 1泊3日弾丸ハワイツアー / RTA: Purchase Apple Vision Pro in Hawaii
yutailang0119
0
1.5k
個人開発のたのしみ / Enjoying personal development
yutailang0119
0
1.1k
バックポートして学ぶ新APIの仕組み
yutailang0119
0
3.2k
Backport AsyncImage
yutailang0119
0
780
Other Decks in Programming
See All in Programming
ふつうの Rubyist、ちいさなデバイス、大きな一年
bash0c7
0
1.1k
[SF Ruby Feb'26] The Silicon Heel
palkan
0
120
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.6k
Laravel Nightwatchの裏側 - Laravel公式Observabilityツールを支える設計と実装
avosalmon
1
140
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
170
nuget-server - あなたが必要だったNuGetサーバー
kekyo
PRO
0
370
モダンOBSプラグイン開発
umireon
0
170
Rethinking API Platform Filters
vinceamstoutz
0
140
PHP 7.4でもOpenTelemetryゼロコード計装がしたい! / PHPerKaigi 2026
arthur1
1
370
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
230
The free-lunch guide to idea circularity
hollycummins
0
320
Claude Codeログ基盤の構築
giginet
PRO
7
3.5k
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
140
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.5k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.5k
Being A Developer After 40
akosma
91
590k
How STYLIGHT went responsive
nonsquared
100
6k
Mind Mapping
helmedeiros
PRO
1
130
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
81
Transcript
SwiftUI Inspectorが 難しすぎる id:yutailang0119 / @yutailang0119 2026/03/06 Mobile Act Osaka
18 1
yutailang0119 • 株式会社はてな ◦ @京都オフィス ◦ アプリケーションエンジニア ◦ サービスプラットフォームチーム •
try! Swift Tokyo Organizer ◦ 2026チケット販売中 • AVP座談会 🥽 2
3 SwiftUI Inspector
4 macOS 26.3
5
6
7 iPadOS 26.2 (w/ Xcode 26.3)
8
9
10 iOS 26.2 (w/ Xcode 26.3)
11
12
13 SwiftUI inspector(isPresented:content:)
inspector(isPresented:content:) • Navigationコンポーネントとpresentation両方 の性質を持つ • 高度な抽象化(単なるサイドバーではない) ◦ 画面サイズが小さい(コンパクト) >「シート」 ◦
大きなiPadの分割画面 > 「オーバーレイ」 • iOS 17.0+, iPadOS 17.0+, Mac Catalyst 17.0+, macOS 14.0+ 14
15 今回のお題
今回のお題 16 • inspector(isPresented:content:) を使用 • inspector、toolbarの配置を試す
17 ① Inside navigation
① Inside navigation 18 struct Inspectors: View { @State private
var isPresented: Bool = false var body: some View { NavigationStack { RootView() .toolbar { Toggle(isOn: $isPresented) } .inspector(isPresented: $isPresented) {} } } }
19
20 Inspector内で NavigationLinkする と...
Inspector内でNavigationLink 21 struct Inspectors: View { var body: some View
{ NavigationStack { RootView() .toolbar { Toggle(isOn: $isPresented) } .inspector(isPresented: $isPresented) { NavigationStack { NavigationLink() } } } } }
22
23
24
Inside navigationの課題 25 • Inspector内のNavigationLinkが外側で実 行 ◦ 別NavigationStackのスコープ外 ◦ コンパクトレイアウトでは、裏側で遷移してしまう
• Inspector内の実装が外側に巻き上げられる ◦ NavigationLink ◦ Modifier
Inspectorの巻き上げ 26 • 巻き上げられる ◦ seachable ◦ toolbar ◦ ...
• 巻き上げられない ◦ refreshable ◦ ...
27
28 ② Outside navigation
② Outside navigation 29 struct Inspectors: View { @State private
var isPresented: Bool = false var body: some View { NavigationStack { RootView() .toolbar { Toggle(isOn: $isPresented) } } .inspector(isPresented: $isPresented) {} } }
30
31
Outside navigationの注意点 32 • Inspector表示用のtoolbarをInspector側 に置けない ◦ 操作できなくなる
Outside navigationの注意点 33 struct Inspectors: View { var body: some
View { NavigationStack { RootView() } .inspector(isPresented: $isPresented) { NavigationStack { Inspector() .toolbar { Toggle(isOn: $isPresented) } } } } }
34
35
36 Inspector Placement
37 https://developer.apple.com/videos/play/wwdc2023/10161/
まとめ 38 • InspectorはNavigationとToolbarとの組 み合わせで配置を考える • Inspector内で凝った実装をしない! ◦ NavigationLink ◦
searchable ◦ ...
39 ところで現代... Inspectorの使用箇所 減っていません...?
40 Keynote 15.1.1 on iPadOS 26.3.1
iOS 26ではFullモーダルに変更 41 iOS 18.6 iOS 26.2
42 Liquid Glass時代の Inspector...
References 43 • https://developer.apple.com/documentation/SwiftUI/View/insp ector(isPresented:content:) • https://developer.apple.com/videos/play/wwdc2023/10161/ • https://www.createwithswift.com/presenting-an-inspector-wit h-swiftui/
44 Advertisement
45
try! Swift Tokyo 2026 • 2026/04/12 (日) - 14 (火)
• 立川ステージガーデン • https://tryswift.jp/ 46
hatena.co.jp/recruit 47 47