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
既存アプリをvisionOS対応してリリースした話/visionOS LT vol5
Search
noppefoxwolf
February 28, 2024
0
140
既存アプリをvisionOS対応してリリースした話/visionOS LT vol5
noppefoxwolf
February 28, 2024
Tweet
Share
More Decks by noppefoxwolf
See All by noppefoxwolf
UIのブラックボックスを探る/iOSDC23
noppefoxwolf
3
3.1k
CoreGraphicsでドット絵を描こう/iOSDC22
noppefoxwolf
0
1.8k
ランタイムデバッグのススメ/iOSDC21
noppefoxwolf
1
4k
google/mediapipe で始めるARアプリ開発/iOSDC2020
noppefoxwolf
1
1.2k
モバイルファーストなアプリを作るためにvearがしたこと/xRDCC
noppefoxwolf
0
76
ソーシャルライブサービスにおけるデジタル化粧の仕組みと実装/iOSDC19
noppefoxwolf
4
5.1k
Limited import clarification and its effect/tryswift2019
noppefoxwolf
2
1k
立ち上げ時のライブ配信アプリに最適な開発環境・技術的ノウハウとは/PocoDevMeetup-1
noppefoxwolf
0
1.1k
SceneKitでふんわりした影を描画する/potatotips58
noppefoxwolf
2
1.6k
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
For a Future-Friendly Web
brad_frost
172
9k
Code Reviewing Like a Champion
maltzj
515
39k
Ruby is Unlike a Banana
tanoku
96
10k
Designing the Hi-DPI Web
ddemaree
276
33k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
41
4.4k
Teambox: Starting and Learning
jrom
128
8.4k
The Art of Programming - Codeland 2020
erikaheidi
43
12k
Adopting Sorbet at Scale
ufuk
69
8.6k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
222
21k
GitHub's CSS Performance
jonrohan
1025
450k
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