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
140
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
WebKit::WebView Essentials / Sapporo.swift #1
yutailang0119
0
21
Google Nest CamとApple Vision frameworkと猫🐈🐈⬛ / onishi50
yutailang0119
0
310
Swift Concurrencyでのスケジュール処理を考える / Mobile Act OSAKA 17
yutailang0119
0
160
猫と暮らすネットワークカメラ生活🐈 ~Vision frameworkでペットを愛でよう~ / iOSDC Japan 2025
yutailang0119
0
450
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
330
Swiftの “private” を テストする / Testing Swift "private"
yutailang0119
0
350
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
Other Decks in Programming
See All in Programming
AI時代の仕事技芸論〜ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ(スクフェス仙台 2026バージョン)
kuranuki
0
790
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
190
AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cdk-from-scratch
gotok365
3
2.7k
信頼性について考えてみる(SRE NEXT 2026 miniLT)
hayama17
0
230
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
170
Built Our Own Background Agent at LayerX #aidevex_findy
layerx
PRO
9
4.2k
AIが無かった頃の素敵な出会いの話
codmoninc
1
330
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
130
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
200
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
230
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
200
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
160
Featured
See All Featured
Done Done
chrislema
186
16k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
200
A Modern Web Designer's Workflow
chriscoyier
698
190k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Design in an AI World
tapps
1
270
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
340
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.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