Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
既存アプリをvisionOS対応してリリースした話/visionOS LT vol5
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
noppefoxwolf
February 28, 2024
230
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
既存アプリをvisionOS対応してリリースした話/visionOS LT vol5
noppefoxwolf
February 28, 2024
More Decks by noppefoxwolf
See All by noppefoxwolf
柔軟性のあるUIで、多くの環境でアプリを活躍させる/iOSDC26
noppefoxwolf
0
660
High performance GIF playback/iOSDC25
noppefoxwolf
1
670
Spice up your notifications/try!Swift25
noppefoxwolf
3
850
iOSの隠されたAPIを解明し、開発効率を向上させる方法/iOSDC24
noppefoxwolf
2
1.4k
今から理解するApp Intentエコシステム/WWDC24Recap
noppefoxwolf
0
79
UIのブラックボックスを探る/iOSDC23
noppefoxwolf
3
5.2k
CoreGraphicsでドット絵を描こう/iOSDC22
noppefoxwolf
0
3.3k
ランタイムデバッグのススメ/iOSDC21
noppefoxwolf
1
5.7k
google/mediapipe で始めるARアプリ開発/iOSDC2020
noppefoxwolf
1
1.7k
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
350
Raft: Consensus for Rubyists
vanstee
142
7.7k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Between Models and Reality
mayunak
4
460
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Rails Girls Zürich Keynote
gr2m
96
14k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Crafting Experiences
bethany
1
340
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
890
Transcript
طଘΞϓϦΛvisionOSରԠͯ͠Ϧ Ϧʔεͨ͠ visionOS Engineer ΦϯϥΠϯLTձ vol.5 1
աڈͷൃද • Yahooͷyamaken͞Μ͕ಉ͡ςʔϚͰա ڈʹൃද͞Εͯ·͢ • ॏෳ͢Δ༰1ඈ͍͖ͯ͠·͢ 1 ref: h(ps:/ /speakerdeck.com/yamakentoc/ji-cun-
ahuriwovisionostehirutosurukotu 2
noppe • DeNA Co., Ltd. • 𝕏: @noppefoxwolf • mastodon:
@mstdn.jp@noppefoxwolf 3
ࠓͷ͓ طଘΞϓϦΛvisionOSରԠͯ͠ϦϦʔεͨ͠ • ϚΠΫࢮΜͩΒ୭͔𝕏ʹDM͍ͩ͘͞ 4
طଘΞϓϦ • DAWN for mastodon • $2.99 • iOS, iPadOS,
macOS(Catalyst) • Swi@ 5.9 • UIKit & Swi@UI • Swi@ Package Manager 5
݁ɿରԠͰ͖ͨ • ͓ΊͰͱ͏ʂʂ • Apple Vision Proͷϩʔϯνʹؒʹ߹ͬ ͨ • ରԠظؒ̍िؒ͘Β͍
• Susan Presco2(෭ࣾ)͔ΒײँͷΤϞ ͍ϝʔϧ͕དྷͨ 6
݁ɿରԠͰ͖ͨ • ͓ΊͰͱ͏ʂʂ • Apple Vision Proͷϩʔϯνʹؒʹ߹ͬ ͨ • ରԠظؒ̍िؒ͘Β͍
• Susan Presco2(෭ࣾ)͔ΒײँͷΤϞ ͍ϝʔϧ͕དྷͨ 7
visionOSରԠͷબࢶ 1. iOS SDKͰϏϧυ 2. visionOS SDKͰϏϧυ 3. ৽͘͠࡞Γ͢ 8
iOS SDKͰϏϧυ • iPadΞϓϦͱͯ͠ಈ࡞͢Δ • ެ։ઃఆΛมߋ͠ͳ͚Εࣗಈతʹ iPadΞϓϦͱͯ͠ެ։͞ΕΔ • ϗʔϜը໘ʹՃ͞Εͣɺ Compa*ble
AppsʹೖΔ 9
iOS SDKͰϏϧυ • iPadΞϓϦͱͯ͠ಈ࡞͢Δ • ެ։ઃఆΛมߋ͠ͳ͚Εࣗಈతʹ iPadΞϓϦͱͯ͠ެ։͞ΕΔ • ϗʔϜը໘ʹՃ͞Εͣɺ Compa*ble
AppsʹೖΔ 10
visionOS SDKͰϏϧυ • ͪΐͬͱͨ͠मਖ਼͕ඞཁ • UIKit͕ಈ͘ͷͰൺֱత؆୯ • UIͷશ͕ͯvisionOSʹ࠷దԽ͞ΕΔ • ࠓճͬͪ͜ʹઓ
11
ͪΐͬͱͨ͠मਖ਼ • visionOSͰಈ͔ͳ͍ػೳΛແޮԽ • UIͷमਖ਼ • ΞΠίϯͱετΞใͷ४උ 12
visionOSͰಈ͔ͳ͍ػೳΛແޮԽ • Alterna)ve App Icon • ColorScheme • App Extensions
• ରԠͯ͠ͳ͍ϥΠϒϥϦͷରԠɾআ֎ɾஔ 13
Alterna(ve App Icon • visionOS 1.0+ 14
Alterna(ve App Icon • ݺΔ͚Ͳɺಈ͔ͳ͍ • ޓੑͷͨΊʹɺ͜͏͍͏API͕·͊·͊͋Γͦ͏ͳͷͰɺ ཁಈ࡞νΣοΫ 15
ColorScheme • ΞϓϦͷμʔΫϞʔυɾϥΠτϞʔ υͷΓସ͑͢Δػೳ͕͋ͬͨ • overrideUserInterfaceStyleͰ มߋग़དྷΔ͕ɺμʔΫϞʔυɾϥΠ τϞʔυͷݟ͕ͨҰॹ 16
ίʔυͷআ֎ #if os(iOS) alternativeAppIconButton() #endif • #if os(iOS) ~ #endifͰғΉ͜ͱͰϏϧυ࣌ʹআ֎Ͱ͖Δ
17
App Extensions Widget Extensionಈ͔ͳ͍ 18
App Extensions Embed Founda,on ExtensionͷFiltersͰWidgetϑΟϧλ͢Δ 19
App ExtensionsvisionOS SDKͰϏϧυ͢Δ ͜ͱ Designed for iPadʹͳ͍ͬͯΔͱɺຊମ͕visionOS SDKͩͱίέ Δ 20
ରԠͯ͠ͳ͍ϥΠϒϥϦͷରԠɾআ֎ɾஔ PRૹͬͨΓͨ͠ 21
ରԠͯ͠ͳ͍ϥΠϒϥϦͷରԠɾআ֎ɾஔ Twi$erTextEditorࣗલͷίʔυʹஔ͖͑ 22
ରԠͯ͠ͳ͍ϥΠϒϥϦͷରԠɾআ֎ɾஔ ରԠ͕ͦ͠͏ͳͷɺiOSʹ͚ͩೖΕΔ͜ͱͰ͖Δ .product( name: "CropViewController", package: "TOCropViewController", condition: .when(platforms: [.iOS])
), #if canImport(CropViewController) ... #endif 23
UIͷमਖ਼ ΩʔϘʔυ্ͷπʔϧόʔͷAPIͰ͋Δɺ inputAccessoryView͕visionOSͰ ͑ͳ͍ • UIKitͰॻ͍ͯΔ • ૹ৴ͱ͔ॾʑ٧ΊࠐΜͰ͍ͨͷͰࠔͬ ͨ •
ସҊΛ୳͢ 24
UIͷमਖ਼ visionOSɺUIOrnamentʹ࣮ΛҠ͠ ͨ • Swi%UIͰॻ͚Δ • ൺֱతͳΜͰஔ͚Δ 25
UIͷमਖ਼ͷίπ // visionOS ornaments = [UIHostingOrnament { /* SwiftUI ViewBuilder
*/ }] // iOS accessoryView = AccessoryHostingView { /* SwiftUI ViewBuilder */ } UIHos&ngOrnamentΛࢀߟʹɺbodyΛSwi5UIͰॻ͚ΔΑ͏ͳUIΛ ࡞͓ͬͯ͘ͱڞ௨ԽͰ͖ͯศར 26
ແࣄϦϦʔε 27
·ͩ·ͩ࠷దԽଓ͘ • ࣮ػͰ৮ͬͯΈΔͱͲΜͲΜ՝Γ͍ͨࣄ͕ݟ͑ͯ͘Δ • ૢ࡞ɾϘλϯΛݮΒ͍ͨ͠ • ϝσΟΞΛ3DͰද͍ࣔͨ͠ • ͳΜ͔ύϑΥʔϚϯεѱ͍ •
օ͞ΜੋඇɺvisionOSରԠͯ͠Έ͍ͯͩ͘͞ʂʂ 28
͓·͚ 29