Junio killapi 2023 watapi, Apple Vision Pro willasqanmanhina, huk yuyayniyuq karqani, chaymi allinta llamkanman uyarinapaq —huk huñusqa videokuna bucleyuq sapa p'unchaw llamk'asqaykiwan kuska pukllachkanku. Ñam huk app kayta ruwayta atiq karqani sutichasqa , imapas maypachachus 1 kaq Apple TV yanapakuq huk App Store ruwasqa karqan. Chayqa huk huñusqa videokuna bucleyuqta rikuchin, chaytataq raymipaq telón de fondo hina llamk'achiy atikunki. Christmas Chill ruwasqay Sapa wata inviernopi, iskay kimsa p'unchawta allinchani, musuq contenidota yapani, chaymanta código base nisqa allinchani. Huk aswan hatun tikray ruwasqa llamk'anapaq hamurqan diciembre killapi 2023 watapi, mayk'aq UI UIKit kaqmanta chaymanta Storyboards kaqmanta SwiftUI kaqman astasqa karqa. Bueno, aswantaqa migrasqa. Necesitarqani huk AVPlayer-wan yanapasqa qhawayta huk kaqpi p'istuykusqa. Huk hatun API UIKit chaymanta SwiftUIpura interoperabilidad quq, sichus hayk'aqllapas necesidadpi kanki. UIViewRepresentable Ñuqaqa huk chhika iskayrayasqa karqani aswan utqaylla astakunaypaq imaynachus allin hamut'ayniyuq karqani Declarative UI kaqmanta chaymanta hamut'ayninkunamanta wak llamk'aykunamanta chaymanta kaqwan. Chayqa ñuqapaq tikrakurqa Apple riqsichisqanwan chaymanta SwiftUI yanapakuyninwan. Christmas Chill huk sumaq proyecto karqan Apple Dev yachayniykunata kunankama kananpaq, chaymanta anchata munarqani experienciata tariyta app hukniray dispositivokunaman mast'arispa. React Jetpack Compose Huk kuti 2023 SwiftUI kaqman astakuy Christmas Chill kaqpaq tukusqaña kaptin, 2024 watapi Vision Pro yanapakuy yapanaypaq puririrqani. Uraypi imaynatachus chayta ruwarqani chaymanta imatachus yuyaychani sichus qam kikiykipaq appsniykipaq kaqllata ruwayta munanki. Musuq Plataformata Yapay Qallarinapaq, proyectoqa Vision Propaq huk destino hina ruwayta atinan tiyan; kayta ruwayqa admirakuypaq facilmi! Xcode ukhupi, willañiqita akllay, chaymanta urayk'aypi, yapay ñit'inata ñit'iy. .xcodeproj Yanapasqa Destinokuna Huk urayk'achiq llapa Apple plataformakuna tarikuqmanta rikurin. Munasqa plataformapi makiwan kuyuchiy huk chayana hina yapanaykipaq, kayhinapi, Apple Vision, chaymanta ñit'iy Apple Vision musuq rikuriq t'aqapi. Huk huch'uy popup rikurimunqa willasunaykipaq tikraykunamanta Xcode ruwanan tiyan chaymanta chay meta kaqman. Atichiy ñit'iy. nisqapi Chaymanta, appta ruway visionOS Simulator kaqwan. Sichus huk Vision Pro makiykipi kanki, kamachiykunata tariyta atikunki imayna dispositivoykiman churanaykipaq . kaypi Huñuy pachapi, yaqapaschá Xcode huñuq pantaykunata tarinqa, chaymanta/utaq ruwana urmaykunqa. Kayqa suyasqa hinaspa ruway pacienciaypi. Kaymanta, proyectoykipi pantaykunata allichanayki tiyan chay app huñunankama chaymanta manaña urmanankama. Ñuqapa casoypi, kayqa 30 minuto muyuriqpi hapirqa, huk chikanpi gracias ruwasqayku sinchi llamkayta UIKitmanta SwiftUIman ñawpaqta appta migraymanta! Bloques de Compilación Condicionales nisqa SwiftUI, ukhunpi, huk achka plataforma marco kaq, niyta munan huk chikan plataformapaq SwiftUI codigo huñuspalla, rikchayninta tikranqa. Estilo plataformata chaymanta imaymana métodos de interacción nisqakunata qhawarispa. Sichus kay yanapakun usqhaylla ñawpaqman puriyta wiñachiy pachapi, aswan kamachiyta munankiman imayna ruwana rikhurisqanmanta chaymanta sapa sapalla plataforma kallpankunamanta aprovechayta. Huk allin ejemploqa Vision Pro kaqpa Immersion atiyninkuna; SwiftUI huk API kaypaq qun kaqnintakama , huk API visionOS kaqllapaq. ImmersiveSpace Sichus kay API llamk'achiyta munarqanki Apple TV kaqpaq llamk'ayta huñuchkaspa, Xcode huk pantayta wikch'unqa kay API mana kasqanmanta willaspa. Chhaynaqa, ¿ima allichaytaq kanman kay situacionmanta karunchakunapaq? Kutichiyqa nisqawanmi hamun. Huñusqa Bloques nisqakunaqa codigo t'aqakunam, hayk'aq huñuq bloque ukhupi codigo huñunan kasqanmanta kamachiykunata quq. Bloques de Compilación Condicionales Imaymana condicionkunata yanapaptinkupas, aswan allin necesidadniykupaq mayqin plataformapaqchus código huñusqa kachkan chayta riqsiymi. Kaytaqa pisi chirukunallawanmi ruwayta atinki: var body: some Scene { #if os(tvOS) WindowGroup { HStack { Text("I am running on tvOS!") } } #elseif os(visionOS) ImmersiveSpace(id: "MyImmersiveSpace") { } #endif } Huk sumaq ruwana Xcode ruwan bloquekuna huñusqa condicional yanapakuypaq, sut'i ruwanapaq ima código huñunqa huñunapaq akllasqa plataformamanta. Hinallataqmi pisilla chinkanqa codigo mana huñusqa kanqa. Inyección de Dependencia via Fases de Construcción nisqawan Huk aswan allin trucokuna tarisqaymi chaymanta ruway fasekuna huk forma dependencia inyección hina llamk'achiy. Kay ruwanakuna purinku mayk'aq app ruwasqa kachkan chaymanta tarikunman ñiqipi Proyecto Xcode kaqpi. Compilar Fuentes Copy Bundle Resources Fases ruway llasa uqhariyta ruwan pukyuta qillqap llikanta makina codigoman huñuymanta. Swift, Objetivo-C, C/C++ nisqapas kaptinpas. Pukyukuna huñuy llapa tupaq yanapakuykunata ruwana metapaq kaqman copian. Huk llapa apppa códigonpaq chaymanta yanapakuyninkunapaq siq'ikuna, videokuna, localizable cadenakuna chaymanta aswan ima. Copia Bundle Recursos App Bundle waqaychana clasekuna Kay iskay ruway phasikuna achka flexibilidadta qun ruwanakunaman sapa musuq meta kikin ruway fasekuna qun, chaymanta iskay llamkanakuna patamanta. Whitelabel ruwanakuna huk ñanta qun negociokuna ruwayninkuta ruwanapaq kay técnica llamk'achinku, wakkuna ukhupi. Ichapas tarinki hukniray contenidota quyta munanki kikiykipaq ruwanakunaykipaq, ima plataformapi purisqankuman hina. Kay ruway fasekunata allinniykupaq llamk'achisun chaymanta iskay chikan fuentekuna contenidota qusun chayta ruwanapaq. Ñawpaqta, huk llamk'achisun huk contrato qunapaq, mayqinchus huk struct utaq clase hunt'asqa kananta suyan. Swift Protocolo protocol ContentManager { var content: [Content] { get } } Chaymanta, iskay protocolo implementadorkunata qhawarisunchik. Kaypin ñawpaq kaq: 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 } } nisqaqa ñawpaq ruwana metapaq llamk'achisqa chiqap ruwaymi. Huk matriz kaqmanta qun , mayqinchus recurso sutikuna tarisqa app paquete kaqpi metapaq riman. 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), ] } } Qatiqninqa , iskay kaq ruwana metapaq llamk'achisqa concreto ruway. Ñawpaq ruwayman ancha rikch'akun, mana App B kaqmanta riqsichiqkuna hukniray kanku. TargetAppBContentManager Iskaynintin ruwanakuna ruwasqa kaptin, kunan mana chiqanmanta chayta qhawayta atikunki codigoykipi, imakunap laya kayninta kaqman churaspa. Uraypi ViewModel nisqa rikch'anachiyta qhaway: ContentManager @Observable class VideoListViewModel { var contentManager: ContentManager init(contentManager: ContentManager) { self.contentManager = contentManager } } ViewModel huk laya kaqmanta suyan qallarichiqnin kaqnintakama pasananta. ViewModel mayqin laya kaqwanpas pasayta atikun chaymanta suyasqa hina llamk'ayta qatin. Kayqa niyta munantaq ViewModel kaqmanta llamk'achiy atikunman iskaynin ruwana metakunantinpi. ContentManager ContentManager Qhipa ruwayqa allin ContentManager yapasqa kaqta qhawaymi Compilación Sources faseman. Kayhina kaqpi, App A kaqmanta pukyuta huknin hina pasasqa, chaymanta App B kaqmanta pasasqa. TargetAppAContentMananger TargetAppBContentManager App Bundle Recursos nisqakunata yapay Qhipa ruwana saqisqa sapa ruwana Bundle kaqpi yanapakuykunayuq kasqanmanta qhawaymi, chaykuna ruwana riqsichiqkunawan tupan. Facil ñanqa sapa app meta kaqmanta ruway fase kaqmanta qhaway chaymanta recursokuna contenido kamachiqwan riqsichisqa kaqta qhaway. Mana hina kaqtinqa, chaymanta Xcode proyectoykimanta aysay copia recursokuna faseman. Copy Bundle Resources Kayqa huk pisi pachata chaymanta qhawayta hapin pruebapaq, imaynachus mana huk huñuna-pacha pantayta chaskinkichu sichus huk yanapakuymanta rimasqa mana huñupi kanchu. Ruway pachapiqa, ¡huk llallinakuytam tarinki! Huk allin ñan qhawayta kikillanmanta ruwanapaq huk unidad prueba qillqay llapa recursokuna kaqwan riqsichisqa kachkanku paquete kaqpi waqaychasqa kasqankuta takyachinapaq. Sichus prueba mana atikunchu purichiypi, chaymanta yachanki huk chinkasqa yanapakuy kaqta paquete kaqpi. ContentManager ¿Maymantaq Qatiqnin Rinapaq? Sichus kaykama chayarqanki, allin yuyayniyuq kanayki tiyan imayna appniyki wak Apple Plataformas kaqman apamunaykipaq. Kay qillqasqata tukunaypaq, iskay kimsa yuyaychaykunata, yanapakuykunata ima saqisqaykichik, chaykunatam yuyaychayki: Sichus Apple Vision yanapakuyta huk kachkaq ruwanaman yapachkanki, ñawpaqta, aswan achka codigoykita UIKit kaqmanta SwiftUI kaqman atikuq hina astay. Huk kachkaq app Vision Pro kaqpi llamk'achkanpa utqaylla kayninta rikuspa, SwiftUI kaqman astasqa kaptin, allinmi chaypi hapipakuyta atiy. Ñawiriy Applepa pusayninwan . Allin yuyaychaykunata chaymanta yuyaychaykunata qun imayna ruwanapaq chaymanta imayna visionOS ruwanakuna aprovechayta. kunan kaq ruwanakuna visionOS kaqman apamuymanta Sichus qam kikiyki huk musuq multiplataforma app qallariyta yuyachkanki, huk Multiplataforma tabla Xcode kaqpi tiyan, chaymanta huk yupay app plantillas llamk'achinapaq qun. Hinallataqmi kan chaymanta. huk video WWDC 2022 nisqamanta Sichus ejemplokunata qhawayta munanki ruwanakuna achka plataformakunapura llamk'achkanku, yuyaychayki qhawayta sapalla ruwanakunayta chaymanta . Kaykunaqa iskay ruwanakuna kanku llamk'achkanku tukuy tvOS kaqpi chaymanta Vision Pro kaqpi, huk sapalla codebase kaqmanta ruwasqa. (tvOS yanapakuy Ocean Chillpaq chayamunqaña!) Christmas Chill Ocean Chill