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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yutaro Muta
March 25, 2026
Programming
92
0
Share
SwiftUI Inspectorが難しすぎる / Mobile Act OSAKA 18
Mobile Act OSAKA 18
https://mobileact.connpass.com/event/383587/
Yutaro Muta
March 25, 2026
More Decks by Yutaro Muta
See All by Yutaro Muta
Google Nest CamとApple Vision frameworkと猫🐈🐈⬛ / onishi50
yutailang0119
0
140
Swift Concurrencyでのスケジュール処理を考える / Mobile Act OSAKA 17
yutailang0119
0
140
猫と暮らすネットワークカメラ生活🐈 ~Vision frameworkでペットを愛でよう~ / iOSDC Japan 2025
yutailang0119
0
400
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
300
Swiftの “private” を テストする / Testing Swift "private"
yutailang0119
0
330
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.3k
Backport AsyncImage
yutailang0119
0
800
Other Decks in Programming
See All in Programming
Terraform言語の静的解析 / static analysis of Terraform language
wata727
1
130
2026_04_15_量子計算をパズルとして解く
hideakitakechi
0
130
The Less-Told Story of Socket Timeouts
coe401_
3
930
過去のレビュー知見をSkillsで資産化した話
pkshadeck
PRO
0
670
2026年のソフトウェア開発を考える(2026/05版) / Software Engineering Scrum Fest Niigata 2026 Edition
twada
PRO
19
10k
AWSコミュニティ活動は顧客のクラウド推進に効くのか / Do AWS community activities help customers adopt the cloud?
seike460
PRO
0
160
いつか誰かが、と思っていた フロントエンド刷新5年間の実践知
kiichisugihara
1
250
サプライチェーン攻撃対策「層を重ねて落ちない壁」を10日間で組み上げた話 #TechLeadConf2026
kashewnuts
1
160
PHPでバイナリをパースして理解するASN.1
muno92
PRO
0
400
属人化しないコード品質の作り方_2026.04.07.pdf
muraaano
0
300
セグメントとターゲットを意識するプロポーザルの書き方 〜採択の鍵は、誰に刺すかを見極めるマーケティング戦略にある〜
m3m0r7
PRO
0
740
決定論 vs 確率論:Gemini 3 FlashとTF-IDFを組み合わせた「法規判定エンジン」の構築
shukob
0
150
Featured
See All Featured
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
Statistics for Hackers
jakevdp
799
230k
Typedesign – Prime Four
hannesfritz
42
3k
Amusing Abliteration
ianozsvald
1
160
New Earth Scene 8
popppiees
3
2.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
180
GitHub's CSS Performance
jonrohan
1032
470k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
180
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