Bishii Juun 2023, sida Apple ay ugu dhawaaqday Vision Pro, waxaan lahaa fikrad si fiican ugu shaqayn karta madaxa-madaxeedka — uruurinta fiidiyoowyo daloosan oo barbar socda isticmaalkaaga maalinlaha ah. Waxaan horey u haystay app kaas oo samayn kara tan oo lagu magacaabo , wax markii Apple TV-ga 1aad ee taageeraya App Store la heli karo. Waxay ka kooban tahay fiidiyooyo la soo ururiyay oo aad u isticmaali karto gadaasha xafladaha. Christmas Chill aan dhisay Sannad kasta xilliga jiilaalka, waxaan ku qaataa dhowr maalmood hagaajintiisa, ku darida waxyaabo cusub, iyo horumarinta codebase. Mid ka mid ah isbeddelada waaweyn ee lagu sameeyay mashruuca ayaa yimid Diseembar 2023, markii UI laga soo guuray UIKit iyo Sheekooyinka Sheekooyinka loona guuray SwiftUI. Hagaag, badi waa tahriibay. Waxaan u baahday muuqaal ay taageerto AVPlayer oo ku duuduuban . API weyn oo bixiya wada shaqayn ka dhaxaysa UIKit iyo SwiftUI, haddii aad waligaa u baahan tahay. UIView matali karo Waxa aan xoogaa ka warwareegay in aan u haajiro sida ugu dhaqsaha badan maadaama aan si fiican u fahmay UI-da caddaynta iyo fikradihiisa shaqada kale ee iyo . Taasi waxay igu beddeshay soo bandhigida Apple ee Apple Vision Pro iyo taageeradeeda SwiftUI. Christmas Chill wuxuu ahaa mashruuc fiican si aan u sii wado aqoontayda Apple Dev ilaa taariikhda, waxaanan jeclaystay inaan khibrad ka helo ku kordhinta abka aaladaha kala duwan. React Jetpack Compose Mar haddii hijrada 2023 ee SwiftUI ee qabowga Kirismaska la dhammeeyo, waxaan dejiyay 2024 si aan taageero ugu daro Vision Pro. Hoos waxaa ah sidaan u galay iyo waxa aan kugula talinayo haddii aad isku dayeyso inaad sidaas oo kale u sameyso apps-kaaga. Ku Darida Madal Cusub Si loo bilaabo, mashruucu wuxuu u baahan yahay inuu awood u yeesho inuu u dhiso Vision Pro meel loo socdo; samaynta tan si la yaab leh waa u fududahay! Gudaha Xcode, dooro faylka , oo hoosta hoos-u-dhaca , dhagsii badhanka lagu daray. .xcodeproj meelaha la taageeray Hoos u dhigista dhammaan aaladaha Apple ee la heli karo ayaa soo muuqda. Ka dul bood meesha aad rabto inaad ku darto meel aad u socoto, kiiskan, Apple Vision, ka dibna dhagsii Apple Vision qaybta cusub ee soo baxday. Soo-bax yar ayaa ka soo muuqan doona si uu kuu ogeysiiyo isbeddelada Xcode u baahan yahay inuu ku sameeyo bartilmaameedka. . Guji karti Marka xigta, ku dhis appka adoo isticmaalaya visionOS Simulator. Haddii aad gacanta ku hayso Vision Pro, waxaad ka heli kartaa tilmaamo ku saabsan sida loogu rakibo qalabkaaga . halkan Inta lagu guda jiro ururinta, waxay u badan tahay in Xcode uu helo khaladaadka iskudubaridiyaha, iyo/ama abka uu shil doono. Tani waa la filayaa iyo ku dhaqanka dulqaadashada. Laga bilaabo meeshan, waxaad u baahan tahay inaad hagaajiso khaladaadka mashruucaaga ilaa abka la ururiyo oo uusan mar dambe dumin. Xaaladeyda, tani waxay qaadatay qiyaastii 30 daqiiqo, qayb ahaan waad ku mahadsantahay samaynta shaqada adag ee ka haajiridda app-ka UIKit una gudub SwiftUI hore! Blocks Compilation Compilation SwiftUI, oo udub dhexaad u ah, waa qaab-dhismeedka multiplatform, taasoo la macno ah kaliya in la ururiyo koodka SwiftUI ee madal kale, waxay beddeli doontaa muuqaalkeeda. Iyadoo la tixgelinayo habaynta goobta iyo hababka kala duwan ee isdhexgalka. In kasta oo ay tani ka caawinayso in aad horumar degdeg ah samayso inta lagu jiro horumarka, waxa laga yaabaa in aad u baahato in aad maamusho sida appku u muuqdo oo aad uga faa'iidaysato awoodaha madal kasta. Tusaale wanaagsan waa awoodaha immersion ee Vision Pro; SwiftUI waxay siisaa API kan tan , API kaliya ayaa loo heli karaa visionOS. ImmersiveSpace Haddii aad isku dayday inaad isticmaasho API-ga intaad u ururinaysay mashruuca Apple TV, Xcode wuxuu tuurayaa khalad isagoo sheegaya in API-kani aanu diyaar ahayn. Haddaba, maxaa xal ah si looga fogaado xaaladdan? Jawaabtu waxay ka imanaysaa isticmaalka . Blocks-ku-soo-ururinta waa qaybo ka mid ah koodka siinaya tilmaamo ku saabsan marka isku-dubariduhu ay tahay inay kood ku ururiyaan baloogga dhexdiisa. Blocks Compilation Compilation In kasta oo ay taageerayaan xaalado kala duwan, waxa ugu faa'iidada badan baahiyaheenna waa ogaanshaha goobta koodka loo ururiyay. Waxaad tan ku samayn kartaa dhawr sadar oo kood ah: var body: some Scene { #if os(tvOS) WindowGroup { HStack { Text("I am running on tvOS!") } } #elseif os(visionOS) ImmersiveSpace(id: "MyImmersiveSpace") { } #endif } Sifada wanaagsan ee Xcode u qabto si ay u taageerto baloogyada isku dubaridka shuruudaysan waa in la caddeeyo waxa koodka ururin doona iyadoo ku xidhan goobta loo doortay ururinta. Waxa kale oo uu inyar lumin doonaa koodka aan la ururin doonin. Ku-tiirsanaanta ku-tiirsanaanta iyada oo loo marayo Wajiyada Dhiska Mid ka mid ah tabaha ugu faa'iidada badan ee aan helay ayaa ah adeegsiga iyo ee dhisidda wejiyada qaab irbad isku-tiirsanaan ah. Nidaamyadani waxay socdaan marka abka la dhisayo waxaana laga heli karaa hoosta tabka ee Mashruuca Xcode. Ilaha Isku-dhafka ah Nuqulka Kheyraadka Xidhmada Wajiyada Dhiska waxay sameyneysaa culeyska culus ee aruurinta koodhka ishaada koodka mashiinka. Haddi ay tahay Swift, Objective-C, ama xataa C/C++. Soo ururinta Ilaha waxay koobiyaysaa dhamaan agabka laxidhiidha bartilmaameedka abka ee . oo loogu talagalay dhammaan koodka abka iyo agabka ay ku jiraan sawirrada, fiidyaha, xadhkaha la maxalli karo, iyo in ka badan. Koobiyi Khayraadka Xidhmada xidhmada abka Weel noocyo kala duwan ah Labadan weji ee dhismaha waxay siinayaan dabacsanaan badan abka maadaama bartilmaameed kasta oo cusub uu bixiyo wejiyadiisa dhismihiisa, oo ay ku jiraan labada tallaabo ee sare. Apps-ka Whitelabel ee siiya hab ganacsiyada ay u habeeyaan nuxurkooda adeegsada farsamadan iyo kuwo kale. Waxaa laga yaabaa inaad ogaato inaad rabto inaad siiso waxyaabo kala duwan abkaaga, iyadoo ku xidhan hadba meesha ay ku shaqeeyaan. Aan u isticmaalno wejiyadan dhismaha si aan uga faa'iidaysano oo aan u siino laba ilo oo kala duwan oo nuxur ah si aan taas u samayno. Marka hore, aan isticmaalno si aan u bixino qandaraas rajaynaya in uu fuliyo qaab dhismeed ama dabaq. borotokoolka Swift protocol ContentManager { var content: [Content] { get } } Marka xigta, aan eegno laba dhaqan-galiyeyaasha hab-maamuuska. Waa kan ugu horreeya: class TargetAppAContentManager : ContentManager { var content: [Content] { return [ Content(name: TargetAppAContentIdentifier.videoOneName.rawValue, image: TargetAppAImagePreviewIdentifier.videoOnePreview.rawValue, video: TargetAppAImageVideoIdentifier.videoOneVideo.rawValue), Content(name: TargetAppAContentIdentifier.videoTwoName.rawValue, image: TargetAppAImagePreviewIdentifier.videoTwoPreview.rawValue, video: TargetAppAImageVideoIdentifier.videoTwoVideo.rawValue), Content(name: TargetAppAContentIdentifier.videoThreeName.rawValue, image: TargetAppAImagePreviewIdentifier.videoThreePreview.rawValue, video: TargetAppAImageVideoIdentifier.videoThreeVideo.rawValue), ] return contentToShow } } waa hirgelinta la taaban karo ee loo isticmaalo bartilmaameedka app ee ugu horreeya. Waxay bixisa array of , taas oo tixraacaysa magacyada ilaha laga helay xidhmada abka ee bartilmaameedka. TargetAppAContentManager Content class TargetAppBContentManager : ContentManager { var content: [Content] { return [ Content(name: TargetAppBContentIdentifier.videoOneName.rawValue, image: TargetAppBImagePreviewIdentifier.videoOnePreview.rawValue, video: TargetAppBImageVideoIdentifier.videoOneVideo.rawValue), Content(name: TargetAppBContentIdentifier.videoTwoName.rawValue, image: TargetAppBImagePreviewIdentifier.videoTwoPreview.rawValue, video: TargetAppBImageVideoIdentifier.videoTwoVideo.rawValue), Content(name: TargetAppBContentIdentifier.videoThreeName.rawValue, image: TargetAppBImagePreviewIdentifier.videoThreePreview.rawValue, video: TargetAppBImageVideoIdentifier.videoThreeVideo.rawValue), ] } } Xiga waa , hirgelinta la taaban karo ee loo isticmaalo bartilmaameedka abka labaad. Waxay u egtahay mid la mid ah hirgalinta koowaad, marka laga reebo App B aqoonsiyadu way kala duwan yihiin. TargetAppBContentManager Iyada oo la abuurayo labadaba hirgelinta, waxaad hadda si aan toos ahayn ugu tixraaci kartaa koodhkaaga adoo dejinaya nooca shayga . Fiiri tusaalaha ViewModel hoos: ContentManager @Observable class VideoListViewModel { var contentManager: ContentManager init(contentManager: ContentManager) { self.contentManager = contentManager } } ViewModel-ku waxa uu rajaynayaa in nooc ka mid ah uu ku soo gudbo bilawgiisa. ViewModel-ka waxa loo gudbin karaa nooc ka mid ah oo u sii shaqeeyo sidii la filayey. Tani waxay sidoo kale ka dhigan tahay ViewModel dib ayaa loo isticmaali karaa dhammaan bartilmaameedyada app. ContentManager ContentManager Waxa ugu dambeeya ee la sameeyo waa in la hubiyo in ContentManager saxda ah lagu daray wejiga Ilaha Isku-darka ah. Xaaladdan oo kale, App A waa la dhaafaa iyada oo qayb ka ah ilaha, iyo App B waa la dhaafaa . TargetAppAContentMananger TargetAppBContentManager Ku darida Ilaha Xidhmada App Waxa ugu dambeeya ee hadhay in la sameeyo waa in la hubiyo in xidhmo abka kasta uu ka kooban yahay ilo magacyo u dhigma aqoonsiga uu isticmaalo abka. Habka ugu fudud ayaa ah in la hubiyo wejiga dhisidda ee bartilmaameedka app kasta oo la hubiyo in agabka uu tixraaco maareeyaha nuxurka. Haddaysan ahayn, ka soo jiid mashruucaaga Xcode wejiga agabka nuqulka. Copy Bundle Resources Tani waxay qaadanaysaa wakhti yar iyo daryeel si loo tijaabiyo, maadaama aanad helin khalad-waqti-ururin haddii agabka la tixraacayo aanu ku jirin xidhmada. Inta lagu guda jiro runtime, waxaad heli doontaa shil! Habka ugu wanaagsan ee loo habayn karo jeegga ayaa ah in la qoro unug tijaabo ah si loo xaqiijiyo dhammaan agabka uu u gudbiyo inay ku kaydsan yihiin xidhmada. Haddii imtixaanku ku guuldareysto marka la ordo, markaas waxaad ogtahay inuu jiro kheyraad ka maqan xirmada. ContentManager Xaggee Ku Xigtaa? Haddii aad ilaa hadda heshay, waa inaad fikrad fiican ka haysataa sida aad app-kaaga u keeni karto Platforms kale ee Apple. Si aan u soo koobo qoraalkan, waxaan kaaga tagi doonaa dhowr tabo iyo agab aan ku talinayo: Haddii lagu daro taageerada Apple Vision abka jira, marka hore, ka haajiraan inta ugu badan ee koodka UIKit una guuri SwiftUI intii suurtagal ah. Markaan aragnay xawaaraha abka jira ee ku shaqeeya Vision Pro markii loo haajiray SwiftUI, waa faa'iido leh in lagu tiirsado. Akhri tilmaamaha Apple ee ku saabsan . Waxay ku siinaysaa talooyin iyo talooyin waxtar leh oo ku saabsan sida loo sameeyo iyo sida looga faa'iidaysto sifooyinka visionOS. keenista abka jira visionOS Haddii aad ku fekereyso inaad bilowdo abka cusub ee multiplatform, waxaa jira tab Multiplatform ah oo laga heli karo Xcode, kaas oo bixisa tiro abka ah oo la isticmaalayo. Waxa kale oo jira mawduuca. muuqaal ka socda WWDC 2022 Haddii aad jeclaan lahayd inaad aragto tusaalooyin abka ka shaqeeya meelo badan, waxaan ku talinayaa inaad hubiso abkayga gaarka ah ee iyo Kuwani waa laba barnaamij oo ka shaqeeya guud ahaan tvOS iyo Vision Pro, oo laga dhisay hal codebase. (Taageerada tvOS ee Ocean Chill ayaa iman doonta dhawaan!) Christmas Chill Chill Ocean