{"id":213882,"date":"2025-04-30T02:02:43","date_gmt":"2025-04-30T02:02:43","guid":{"rendered":"https:\/\/peraltafinancing.com\/apple-2\/issue-671-ios-dev-weekly\/"},"modified":"2025-04-30T02:02:43","modified_gmt":"2025-04-30T02:02:43","slug":"issue-671-ios-dev-weekly","status":"publish","type":"post","link":"https:\/\/fivemor.com\/?p=213882","title":{"rendered":"Issue 671 \u2013 iOS Dev Weekly"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p>In the last two weeks since my device arrived, I\u2019ve had a blast going through apps in visionOS. Thanks to everyone who <a href=\"https:\/\/iosdevweekly.com\/issues\/669#start\">sent me a link<\/a> to your app, too.<\/p>\n<p>I\u2019m no expert yet, but I\u2019ve spent some time thinking about the potential of visionOS as an app platform in the last couple of weeks. The first conclusion I\u2019m ready to draw is that there are two types of apps:<\/p>\n<ol>\n<li>Apps that will make you put your headset on.<\/li>\n<li>Apps that are worth using if you already <em>have<\/em> the headset on.<\/li>\n<\/ol>\n<p>The App Store has <em>plenty<\/em> of apps that are good to use if you already have the headset on, and I\u2019m quite sure this is due to SwiftUI. The effort of adding one more platform to a multi-platform SwiftUI app isn\u2019t enormous, especially if the app already supports iPad. But with that ease of development comes the downside. Your app already exists on other devices! So, if someone needs your app, they\u2019ll pick up their iPad or phone (which they are probably already holding) before the Vision Pro.<\/p>\n<p>Whereas if they are already wearing their Vision Pro, having your app on visionOS is a great benefit. I\u2019d much rather open a native app than look through the passthrough cameras to use it on another device. So, the first thing I\u2019d say is it\u2019s definitely worth adding a visionOS version of your app if it\u2019s not too much trouble. \ud83d\udc4d<\/p>\n<p>But those apps are not going to make the platform a success. visionOS needs apps that will make you walk up or down a flight of stairs, take your glasses off, and put the headset on for a chance to use them.<\/p>\n<p>The good news is we have several years to make those apps happen, and it\u2019s not solely up to third-party developers either. Apple needs to put plenty of work into clearing the \u201cCompatible Apps\u201d folder out. They also need to ship many more apps that make this device shine. The hardware is more than capable and when it gets it right, it really gets it right!<\/p>\n<p>But until Apple releases those apps, do you have an idea for an app that will make people put their headset on?<\/p>\n<p class=\"attribution\">Dave Verwer<\/p>\n<p><a href=\"https:\/\/getstream.io\/tutorials\/ios-chat\/\" class=\"link\" id=\"1kYZDQM\">Building chat and struggling with state, push notifications, and more? \ud83e\udd13\ud83d\udcac<\/a><\/p>\n<p>Stream\u2019s open-source chat and video SDK takes the complexity out of building real-time experiences. 100% free to start, extensible with popular integrations, and scalable!<\/p>\n<p><a href=\"https:\/\/getstream.io\/tutorials\/ios-chat\/\">Give it a try today<\/a>!<\/p>\n<h2 class=\"category code\" id=\"code\">Code<\/h2>\n<p><a href=\"https:\/\/www.jessesquires.com\/blog\/2024\/06\/29\/swiftui-scene-phase\/\" class=\"link\" id=\"oOE7bQi\">Issues with ScenePhase and using AppDelegate adaptors<\/a><\/p>\n<p>At first glance, this is <a href=\"https:\/\/mastodon.social\/@jsq\">Jesse Squires<\/a> talking about exactly what the post title says, but this could equally be a post about API design trade-offs between flexibility and complexity. It appears that the SwiftUI interaction points during the application lifecycle are less granular by design.<\/p>\n<hr\/>\n<p><a href=\"https:\/\/www.pointfree.co\/blog\/posts\/147-unobtrusive-and-testable-issue-reporting\" class=\"link\" id=\"gpHvv6S\">Unobtrusive and testable issue reporting<\/a><\/p>\n<p>I struggled to figure out the exact purpose of this new library from <a href=\"https:\/\/hachyderm.io\/@mbrandonw\">Brandon Williams<\/a> and <a href=\"https:\/\/hachyderm.io\/@stephencelis\">Stephen Celis<\/a> at first glance until I read this line:<\/p>\n<blockquote>\n<p>This provides a very visual way to see when an issue has occurred in your application without stopping the app\u2019s execution or interrupting your workflow.<\/p>\n<\/blockquote>\n<p>I don\u2019t know if \u201cruntime warnings\u201d are new in Xcode 16 or whether I just haven\u2019t seen them before, but I like this idea.<\/p>\n<hr\/>\n<p><a href=\"https:\/\/digitalbunker.dev\/debug-description-macro-xcode-16\/\" class=\"link\" id=\"mapPU8r\">Using @DebugDescription in Xcode 16<\/a><\/p>\n<p>Here\u2019s <a href=\"https:\/\/twitter.com\/aryamansharda\">Aryaman Sharda<\/a> with a write-up of the new @DebugDescription macro available with Xcode 16. I like that he also kindly includes another method to get similar results for those who can\u2019t yet upgrade to the beta.<\/p>\n<hr\/>\n<p><a href=\"https:\/\/swifttoolkit.dev\/posts\/building-swift-executables\" class=\"link\" id=\"STzUG0U\">Building Swift Executables<\/a><\/p>\n<p>The only point I\u2019d add to <a href=\"https:\/\/mastodon.social\/@SwiftToolkit\">Natan Rolnik<\/a>\u2019s post about building command-line tools is that adding a Makefile is a great way to manage build commands and other common scripts you might run. Makefiles may not be the newest technology, but they work very well and can serve as a \u201cmenu\u201d to show other developers what they can do with your repository.<\/p>\n<h2 class=\"category business\" id=\"business\">Business and Marketing<\/h2>\n<p><a href=\"https:\/\/ryanashcraft.com\/paywall-optimization-success-story\/\" class=\"link\" id=\"xdZbNzv\">A Paywall Optimization Success Story<\/a><\/p>\n<blockquote>\n<p>The \u201cDay 5\u201d notification is essential to this paywall\u2019s design. I knew this would be the biggest technical and QA challenge, because it is imperative that it be implemented correctly. Failing to deliver on this promise would be catastrophic.<\/p>\n<\/blockquote>\n<p>I can see why this style of free trial design works well. It\u2019s early days for <a href=\"https:\/\/mastodon.social\/@ryanashcraft\">Ryan Ashcraft<\/a>\u2019s implementation of it in his <a href=\"https:\/\/www.foodnoms.com\/\">Foodnoms app<\/a>, but I can see it being successful.<\/p>\n<h2 class=\"category books\" id=\"books\">Books<\/h2>\n<p><a href=\"https:\/\/sarahreichelt.gumroad.com\/l\/oximx\" class=\"link\" id=\"yOJfpH3\">macOS by Tutorials<\/a><\/p>\n<p>I\u2019m so happy to see an updated second edition of <a href=\"https:\/\/mastodon.social\/@troz\">Sarah Reichelt<\/a>\u2019s book covering macOS development. It remains a focused, concise book from the perspective of using SwiftUI first but falling back to AppKit where it makes sense. I\u2019m also happy that the <a href=\"https:\/\/troz.net\/books\/macos_tutorials\/\">story behind the second edition<\/a> ended so well. \ud83d\udc4d<\/p>\n<p>For full disclosure, Sarah sent me a copy of the book for review.<\/p>\n<h2 class=\"category jobs\" id=\"jobs\">Jobs<\/h2>\n<p><a href=\"https:\/\/iosdevjobs.com\/jobs\/e-34ae0bc8-edcc-4c9d-a37d-7d57126cb2b2\">Software Engineer for AI Training Data (Swift) @ G2i, Inc.<\/a> \u2013 We are currently seeking Swift Developers for project-specific roles focused on RLHF. This role will play a key part in our reinforcement learning from human feedback (RLHF) initiatives, contributing to cutting-edge projects. \u2013 <em>Remote (within US, European, or Asia-Pacific timezones)<\/em><\/p>\n<p><a href=\"https:\/\/iosdevjobs.com\/jobs\/e-28a3be70-3768-4ba1-ae1e-a5dfe7a338f5\">Software Engineer, iOS @ amo<\/a> \u2013 Amo values speed, creativity, and high performance. Focused on meaningful social apps, they prioritize creation over consumption and simple, fun experiences. The diverse, skilled team uses a modular monorepo tech stack with Rust, Bazel, and RxSwift, leveraging efficient data processing on GCP. \u2013 <em>On-site (France)<\/em><\/p>\n<p>Don\u2019t forget to <a href=\"https:\/\/iosdevjobs.com\/post-a-job\">post any open positions<\/a> you have available on <a href=\"https:\/\/iosdevjobs.com\">iOS Dev Jobs<\/a>!<\/p>\n<h2 class=\"category finally\" id=\"finally\">And finally&#8230;<\/h2>\n<p>\u201c<a href=\"https:\/\/stevejobsarchive.com\/exhibits\/objects-of-our-life\">They paid me sixty dollars, so I wore a tie<\/a>\u201d<\/p>\n<\/div>\n<p><script async src=\"\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><br \/>\n<br \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the last two weeks since my device arrived, I\u2019ve had a blast going through apps in visionOS. Thanks to everyone who sent me a link to your app, too. I\u2019m no expert yet, but I\u2019ve spent some time thinking about the potential of visionOS as an app platform in the last couple of weeks. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11768],"tags":[15295,3554,15294,6039],"dealstore":[],"offerexpiration":[],"class_list":["post-213882","post","type-post","status-publish","format-standard","hentry","category-apple-2","tag-dev","tag-ios","tag-issue","tag-weekly"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Issue 671 \u2013 iOS Dev Weekly - Som2ny Network<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fivemor.com\/?p=213882\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Issue 671 \u2013 iOS Dev Weekly - Som2ny Network\" \/>\n<meta property=\"og:description\" content=\"In the last two weeks since my device arrived, I\u2019ve had a blast going through apps in visionOS. Thanks to everyone who sent me a link to your app, too. I\u2019m no expert yet, but I\u2019ve spent some time thinking about the potential of visionOS as an app platform in the last couple of weeks. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fivemor.com\/?p=213882\" \/>\n<meta property=\"og:site_name\" content=\"Som2ny Network\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-30T02:02:43+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fivemor.com\/?p=213882#article\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/?p=213882\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\"},\"headline\":\"Issue 671 \u2013 iOS Dev Weekly\",\"datePublished\":\"2025-04-30T02:02:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=213882\"},\"wordCount\":950,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"keywords\":[\"Dev\",\"iOS\",\"Issue\",\"Weekly\"],\"articleSection\":[\"Apple\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fivemor.com\/?p=213882#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fivemor.com\/?p=213882\",\"url\":\"https:\/\/fivemor.com\/?p=213882\",\"name\":\"Issue 671 \u2013 iOS Dev Weekly - Som2ny Network\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/#website\"},\"datePublished\":\"2025-04-30T02:02:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fivemor.com\/?p=213882#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fivemor.com\/?p=213882\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fivemor.com\/?p=213882#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fivemor.com\/?bp_activities=1\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Issue 671 \u2013 iOS Dev Weekly\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fivemor.com\/#website\",\"url\":\"https:\/\/fivemor.com\/\",\"name\":\"Som2ny Network\",\"description\":\"Daily Deals\",\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fivemor.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/fivemor.com\/#organization\",\"name\":\"Som2ny Network\",\"url\":\"https:\/\/fivemor.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"width\":300,\"height\":86,\"caption\":\"Som2ny Network\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/fivemor.com\"],\"url\":\"https:\/\/fivemor.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Issue 671 \u2013 iOS Dev Weekly - Som2ny Network","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fivemor.com\/?p=213882","og_locale":"en_US","og_type":"article","og_title":"Issue 671 \u2013 iOS Dev Weekly - Som2ny Network","og_description":"In the last two weeks since my device arrived, I\u2019ve had a blast going through apps in visionOS. Thanks to everyone who sent me a link to your app, too. I\u2019m no expert yet, but I\u2019ve spent some time thinking about the potential of visionOS as an app platform in the last couple of weeks. [&hellip;]","og_url":"https:\/\/fivemor.com\/?p=213882","og_site_name":"Som2ny Network","article_published_time":"2025-04-30T02:02:43+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fivemor.com\/?p=213882#article","isPartOf":{"@id":"https:\/\/fivemor.com\/?p=213882"},"author":{"name":"admin","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371"},"headline":"Issue 671 \u2013 iOS Dev Weekly","datePublished":"2025-04-30T02:02:43+00:00","mainEntityOfPage":{"@id":"https:\/\/fivemor.com\/?p=213882"},"wordCount":950,"commentCount":0,"publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"keywords":["Dev","iOS","Issue","Weekly"],"articleSection":["Apple"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fivemor.com\/?p=213882#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fivemor.com\/?p=213882","url":"https:\/\/fivemor.com\/?p=213882","name":"Issue 671 \u2013 iOS Dev Weekly - Som2ny Network","isPartOf":{"@id":"https:\/\/fivemor.com\/#website"},"datePublished":"2025-04-30T02:02:43+00:00","breadcrumb":{"@id":"https:\/\/fivemor.com\/?p=213882#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fivemor.com\/?p=213882"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fivemor.com\/?p=213882#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fivemor.com\/?bp_activities=1"},{"@type":"ListItem","position":2,"name":"Issue 671 \u2013 iOS Dev Weekly"}]},{"@type":"WebSite","@id":"https:\/\/fivemor.com\/#website","url":"https:\/\/fivemor.com\/","name":"Som2ny Network","description":"Daily Deals","publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fivemor.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/fivemor.com\/#organization","name":"Som2ny Network","url":"https:\/\/fivemor.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","width":300,"height":86,"caption":"Som2ny Network"},"image":{"@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","caption":"admin"},"sameAs":["https:\/\/fivemor.com"],"url":"https:\/\/fivemor.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/213882","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=213882"}],"version-history":[{"count":0,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/213882\/revisions"}],"wp:attachment":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=213882"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=213882"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=213882"},{"taxonomy":"dealstore","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdealstore&post=213882"},{"taxonomy":"offerexpiration","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fofferexpiration&post=213882"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}