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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yutaro Muta
March 25, 2026
Programming
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
190
Swift Concurrencyでのスケジュール処理を考える / Mobile Act OSAKA 17
yutailang0119
0
150
猫と暮らすネットワークカメラ生活🐈 ~Vision frameworkでペットを愛でよう~ / iOSDC Japan 2025
yutailang0119
0
430
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
320
Swiftの “private” を テストする / Testing Swift "private"
yutailang0119
0
340
Apple Vision Pro購入RTA 1泊3日弾丸ハワイツアー / RTA: Purchase Apple Vision Pro in Hawaii
yutailang0119
0
1.6k
個人開発のたのしみ / Enjoying personal development
yutailang0119
0
1.1k
バックポートして学ぶ新APIの仕組み
yutailang0119
0
3.4k
Backport AsyncImage
yutailang0119
0
810
Other Decks in Programming
See All in Programming
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
3.6k
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
160
Claspは野良GASの夢をみるか
takter00
0
180
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
540
AIで効率化できた業務・日常
ochtum
0
120
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
12k
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.4k
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4k
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
340
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
200
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
2
1.4k
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
560
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Making Projects Easy
brettharned
120
6.7k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
A Soul's Torment
seathinner
6
2.9k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
200
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
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