{"id":134176,"date":"2023-06-21T20:00:07","date_gmt":"2023-06-21T20:00:07","guid":{"rendered":"https:\/\/developer.apple.com\/news\/?id=765ce4l3"},"modified":"2023-06-21T20:00:07","modified_gmt":"2023-06-21T20:00:07","slug":"spotlight-on-developer-tools-for-visionos","status":"publish","type":"post","link":"https:\/\/sickgaming.net\/blog\/2023\/06\/21\/spotlight-on-developer-tools-for-visionos\/","title":{"rendered":"Spotlight on: Developer tools for visionOS"},"content":{"rendered":"<div class=\"inline-article-image\"><img decoding=\"async\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2023\/08\/spotlight-on-developer-tools-for-visionos.jpg\" data-hires=\"false\" alt><\/div>\n<p>With the visionOS SDK, developers worldwide can begin designing, building, and testing apps for Apple Vision Pro. <\/p>\n<p>For Ryan McLeod, creator of iOS puzzle game <em>Blackbox<\/em>, the SDK brought both excitement and a little nervousness. \u201cI didn\u2019t expect I\u2019d ever make apps for a platform like this \u2014 I\u2019d never even worked in 3D!\u201d he says. \u201cBut once you open Xcode you\u2019re like: Right. This is just Xcode. There are a lot of new things to learn, of course, but the stuff I came in knowing, the frameworks \u2014 there\u2019s very little change. A few tweaks and all that stuff just works.\u201d<\/p>\n<p>visionOS is designed to help you create spatial computing apps and offers many of the same frameworks found on other Apple platforms, including SwiftUI, UIKit, RealityKit, and ARKit. As a result, most developers with an iPadOS or iOS app can start working with the platform immediately by adding the visionOS destination to their existing project. <\/p>\n<p>\u201cIt was great to be able to use the same familiar tools and frameworks that we have been using for the past decade developing for iOS, iPadOS, macOS, and watchOS,\u201d says Karim Morsy, CEO and co-founder of Algoriddim. \u201cIt allowed us to get our existing iPad UI for <em>djay<\/em> running within hours.\u201d<\/p>\n<p>Even for developers brand new to Apple platforms, the onboarding experience was similarly smooth. \u201cThis was my first time using a Mac to work,\u201d says Xavi H. Orom\u00ed, chief engineering officer at <em>XRHealth<\/em>. \u201cAt the beginning, of course, a new tool like Xcode takes time to learn. But after a few days of getting used to it, I didn\u2019t miss anything from other tools I\u2019d used in the past.\u201d<\/p>\n<p>In addition to support for visionOS, the Xcode 15 beta also provides Xcode Previews for visionOS and a brand new Simulator, so that people can start exploring their ideas immediately. \u201cTransitioning between ideas, using the Simulator to test them, it was totally organic,\u201d says Orom\u00ed. \u201cIt\u2019s a great tool for prototyping.\u201d<\/p>\n<p>In the visionOS simulator, developers can preview apps and interactions on Vision Pro. This includes running existing iPad and iPhone apps as well as projects that target the visionOS SDK. To simulate eye movement while in an app, you can use your cursor to focus an element, and a click to indicate a tap gesture. In addition to testing appearance and interactions, you can also explore how apps perform in different background and lighting scenarios using Simulated Scenes. \u201cIt worked out of the box,\u201d says Zac Duff, CEO and co-founder of <em>JigSpace<\/em>. \u201cYou could trust what you were seeing in there was representative of what what you would see on device.\u201d<\/p>\n<p>The SDK also includes a new development tool \u2014 Reality Composer Pro \u2014 which lets you preview and prepare 3D content for your visionOS apps and games. You can import and organize assets, add materials and particle effects, and bring them right back into Xcode with thanks to tight build integration. \u201cBeing able to quickly test things in Reality Composer Pro and then get it up and running in the simulator meant that we were iterating quickly,\u201d says Duff. \u201cThe feedback loop for developing was just really, really short.\u201d<\/p>\n<p>McLeod had little experience with 3D modeling and shaders prior to developing for visionOS, but breaking <em>Blackbox<\/em> out of its window required thinking in a new dimension. To get started, McLeod used Reality Composer Pro to develop the almost-ethereal 3D bubbles that make up <em>Blackbox<\/em>\u2019s main puzzle screen. \u201cYou can take a basic shape like a sphere and give it a good shader and make sure that it&#8217;s moving in a believable way,\u201d says McLeod. \u201cThat goes incredibly far.\u201d<\/p>\n<p>The visionOS SDK also brings new Instruments like RealityKit Trace to developers to help them optimize the performance of their spatial computing apps. As a newcomer to using RealityKit in his apps, McLeod notes that he was \u201creally timid\u201d with the rendering system at first. \u201cAnything that&#8217;s running every single frame, you&#8217;re thinking, &#8216;I can&#8217;t be checking this, and animating that, and spawning things. I&#8217;m going to have performance issues!&#8217;\u201d he laughs. \u201cI was pretty amazed at what the system could handle. But I definitely still have performance gains to be made.\u201d<\/p>\n<p>For developers like Caelin Jackson-King, an iOS software engineer for <em>Splunk<\/em>\u2019s augmented reality team, the SDK also prompted great team discussions about updating their existing codebase. \u201cIt was a really good opportunity to redesign and refactor our app from the bottom up to have a much cleaner architecture that supported both iOS and visionOS,\u201d says Jackson-King. <\/p>\n<p>The <em>JigSpace<\/em> team had similar discussions as they brought more RealityKit and SwiftUI into their visionOS experience. \u201cOnce we got comfortable with the system, it was like a paradigm shift,\u201d says Duff. \u201cRather than going, \u2018OK, how do we do this thing?\u2019, we could be more like, \u2018What do we want to do next?\u2019 Because we now have command of the tools.\u201d<\/p>\n<p>You can explore those tools now on developer.apple.com along with extensive technical documentation and sample code, design kits and tools for visionOS, and updates to the Human Interface Guidelines.<\/p>\n<p><a href=\"https:\/\/developer.apple.com\/visionos\/resources\" class=\"icon icon-after icon-chevronright\">Download the visionOS SDK<\/a><\/p>\n<p><a href=\"https:\/\/developer.apple.com\/visionos\/\" class=\"icon icon-after icon-chevronright\">Learn more about developing for visionOS<\/a><\/p>\n<p><a href=\"https:\/\/developer.apple.com\/visionos\/prepare\" class=\"icon icon-after icon-chevronright\">Prepare your apps for visionOS<\/a><\/p>\n<p><a href=\"https:\/\/developer.apple.com\/visionos\/learn\/\" class=\"icon icon-after icon-chevronright\">Explore sessions about visionOS<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>With the visionOS SDK, developers worldwide can begin designing, building, and testing apps for Apple Vision Pro. For Ryan McLeod, creator of iOS puzzle game Blackbox, the SDK brought both excitement and a little nervousness. \u201cI didn\u2019t expect I\u2019d ever make apps for a platform like this \u2014 I\u2019d never even worked in 3D!\u201d he [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":134177,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[55],"tags":[],"class_list":["post-134176","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-apple-developer-news"],"_links":{"self":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/134176","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/comments?post=134176"}],"version-history":[{"count":0,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/134176\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media\/134177"}],"wp:attachment":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media?parent=134176"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/categories?post=134176"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/tags?post=134176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}