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で作るvisionOS向けTabViewUIの知見
Search
さくたま
July 26, 2023
Programming
1
450
SwiftUIで作るvisionOS向けTabViewUIの知見
https://connpass.com/event/291022/
こちらで発表した内容です!
さくたま
July 26, 2023
Tweet
Share
More Decks by さくたま
See All by さくたま
Unity Android XR入門
sakutama_11
0
410
AR×ドラムで切り拓く音楽表現【XRKaigi 2024】
sakutama_11
0
92
「ARドラム」の裏側 【Iwaken Lab. Tech Conference】
sakutama_11
1
2.4k
8th Wall × Babylon.jsでhavok physics 【Babylon.js ゆるほめLT会 vol.2】
sakutama_11
0
900
【NeRF撮り方LT会】NeRFが空間を理解する仕組み
sakutama_11
1
1.7k
Other Decks in Programming
See All in Programming
Fundamentals of Software Engineering In the Age of AI
therealdanvega
1
250
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
Go Conference mini in Sendai 2026 : Goに新機能を提案し実装されるまでのフロー徹底解説
yamatoya
0
560
エンジニアの「手元の自動化」を加速するn8n 2026.02.27
symy2co
0
140
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
510
コードレビューをしない選択 #でぃーぷらすトウキョウ
kajitack
3
890
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
500
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
170
Claude Code の Skill で複雑な既存仕様をすっきり整理しよう
yuichirokato
1
360
Cyrius ーLinux非依存にコンテナをネイティブ実行する専用OSー
n4mlz
0
130
Docコメントで始める簡単ガードレール
keisukeikeda
1
110
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
120
Featured
See All Featured
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
150
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
350
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
Faster Mobile Websites
deanohume
310
31k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.5k
Test your architecture with Archunit
thirion
1
2.2k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
140
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
How to Think Like a Performance Engineer
csswizardry
28
2.5k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
330
Transcript
SwiftUIで作るvisionOS向け TabViewUIの知見 さくたま
自己紹介 #M1 #慶應 #CG研 #IwakenLab #MESONインターン #NeRF #ドラム #ARステージ演出 #Adobeファン
#Nianticファン
話すこと • TabViewの見た目 https://zenn.dev/meson/articles/visionos-tabview ◦ 種類 ◦ Ornament • SwiftUI開発でのデザイナーさんとの連携
◦ WWDC Designセッション ◦ Figma テンプレート ◦ エンジニアがオプションを検証 • マルチウィンドウの使い方難しい ◦ 最前ウィンドウ管理がうまくいかなかった
作ったもの • 音声認識→検索アプリ • Windowベース • SwiftUI • 2つのウィンドウ •
ChatGPT検索 ARISE - Decode Vision Pro でデモ
公式ドキュメント • SwiftUI Doc https://developer.apple.com/documentation/swiftui/tabview • Design Doc https://developer.apple.com/design/human-interface-guidelines/tab-views •
WWDC Session(必見) https://developer.apple.com/videos/play/wwdc2023/10109/
TabViewの見た目 方法は二つ • TabViewを使ってTabViewStyleでスタイルを指定 • TabView + PickerでPicker部分を別に実装
TabViewの見た目 DefaultTabViewStyle
TabViewの見た目 Ornament • ウィンドウの内容と,コントロールUIを分離できる • 補助的な情報を表示できる • 視線が当たっていない時最小化 →視線が当たった(ユーザーが必要な)時だけ情報を出す •
なるべくデフォルトのデザインを使う ToolBar (内容はそのままで,操作を切り替える ) TabView (内容を切り替える)
TabViewの見た目 PageTabViewStyle
TabViewの見た目 (Picker + TabView) SegmentedPickerStyle MenuPickerStyle WheelPickerStyle NavigationLinkPickerStyle
TabViewの見た目 (Picker をOrnament化) SegmentedPickerStyle MenuPickerStyle WheelPickerStyle NavigationLinkPickerStyle ❌
話すこと • TabViewの見た目 ◦ 種類 ◦ Ornament • SwiftUI開発でのデザイナーさんとの連携 ◦
WWDC Designセッション ◦ Figma テンプレート ◦ エンジニアがオプションを検証 • マルチウィンドウの使い方難しい ◦ 最前ウィンドウ管理がうまくいかなかった
デザイナーさんとの連携 WWDC23のうち特にデザイナー&エンジニアの共通認識にするべきと思ったもの
デザイナーさんとの連携 Figma • パーツの名前がわかって ドキュメントを調べやすい https://www.figma.com/community/file/1253443272911187215
デザイナーさんとの連携 1. 推奨されているパーツや使い方を共通認識として理解する ◦ WWDC セッション ◦ Figma ◦ ドキュメント
2. 推奨されていないが実現可能なものをエンジニアが検証する 3. 実現したいケースに最適なUI設計を「選ぶ」 SwiftUIでは(今の段階では?)「パーツを組み合わせて自由に作る」というより 「UI構成全体を提示されているものから選ぶ」というつもりの方が良いのでは
話すこと • TabViewの見た目 ◦ 種類 ◦ Ornament • SwiftUI開発でのデザイナーさんとの連携 ◦
WWDC Designセッション ◦ Figma テンプレート ◦ エンジニアがオプションを検証 • マルチウィンドウの使い方難しい ◦ 最前ウィンドウ管理がうまくいかなかった
マルチウィンドウ難しい Ornamentのドキュメントより 補助的なコントロールや情報を提供するには、別ウィンドウではなくオーナメントを 使用します。関連する機能を提供するためにオーナメントを使用することで、人々が 個別に管理しなければならない追加のウィンドウを開くことを避けることができま す。 →複数のウィンドウを使うことはあまり推奨されていない(SplitViewなど使う) →macOSのマルチウィンドウよりは実用性あると思うけど...
マルチウィンドウ難しい (余談) 最前ウィンドウ管理ができなかった 調査中...(というか後回しになり中...) (↓雑メモ) https://zenn.dev/sakutama_11/scraps/f393837ed4d5ac
まとめ ドキュメントやWWDCセッションを見てSwiftUIで使える選択肢を調査する →情報多いので共有,日本語まとめ超大事! TabViewについてまとめたのでぜひ見てください https://zenn.dev/meson/articles/visionos-tabview 組み立てて作るというよりは,Appleが推奨する構成の選択肢から「選ぶ」