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
180
既存アプリをvisionOS対応してリリースした話/visionOS LT vol5
noppefoxwolf
February 28, 2024
Tweet
Share
More Decks by noppefoxwolf
See All by noppefoxwolf
iOSの隠されたAPIを解明し、開発効率を向上させる方法/iOSDC24
noppefoxwolf
2
510
UIのブラックボックスを探る/iOSDC23
noppefoxwolf
3
4k
CoreGraphicsでドット絵を描こう/iOSDC22
noppefoxwolf
0
2.3k
ランタイムデバッグのススメ/iOSDC21
noppefoxwolf
1
4.4k
google/mediapipe で始めるARアプリ開発/iOSDC2020
noppefoxwolf
1
1.4k
モバイルファーストなアプリを作るためにvearがしたこと/xRDCC
noppefoxwolf
0
110
ソーシャルライブサービスにおけるデジタル化粧の仕組みと実装/iOSDC19
noppefoxwolf
4
5.4k
Limited import clarification and its effect/tryswift2019
noppefoxwolf
2
1.2k
立ち上げ時のライブ配信アプリに最適な開発環境・技術的ノウハウとは/PocoDevMeetup-1
noppefoxwolf
0
1.3k
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
40
2.5k
Embracing the Ebb and Flow
colly
84
4.6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
12
950
The Language of Interfaces
destraynor
156
24k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
A better future with KSS
kneath
238
17k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
Facilitating Awesome Meetings
lara
51
6.2k
Done Done
chrislema
182
16k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
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