Snapp Mobile iOS Newsletter
banner
snappiosnewsletter.bsky.social
Snapp Mobile iOS Newsletter
@snappiosnewsletter.bsky.social
Weekly Swift & iOS dev insights from @snappmobile.bsky.social

📬 https://ios-newsletter.snappmobile.io/subscribe.html
Pinned
Weekly iOS/Swift content, handpicked for developers

Finding it useful? Subscribe. Genuinely makes a difference for us.

ios-newsletter.snappmobile.io/subscribe.html

#iOSDev #Swift #iOSTips
Snapp Mobile iOS Newsletter | Subscription
Subscription
ios-newsletter.snappmobile.io
🌱 𝘞𝘩𝘢𝘵 𝘐 𝘓𝘦𝘢𝘳𝘯𝘦𝘥 𝘞𝘩𝘪𝘭𝘦 𝘉𝘶𝘪𝘭𝘥𝘪𝘯𝘨 𝘔𝘺 𝘝𝘦𝘨𝘨𝘪𝘦 𝘎𝘢𝘳𝘥𝘦𝘯 by Mohammad Azam (@azamsharp.bsky.social)

Invaluable lessons about architecture, data management, and simplicity.

#iOSDev #Swift

azamsharp.com/2025/11/19/l...
Lessons Learned Veggie Garden
What I Learned While Building My Veggie Garden
azamsharp.com
November 26, 2025 at 2:02 PM
💬 𝘋𝘦𝘦𝘱 𝘋𝘪𝘷𝘦 𝘪𝘯𝘵𝘰 𝘪𝘔𝘦𝘴𝘴𝘢𝘨𝘦: 𝘉𝘦𝘩𝘪𝘯𝘥 𝘵𝘩𝘦 𝘔𝘢𝘬𝘪𝘯𝘨 𝘰𝘧 𝘢𝘯 𝘈𝘨𝘦𝘯𝘵 by Xu Yang (@fatbobman.com)

Learn how to bypass macOS sandbox and parse SQLite to bring AI Agents into iMessage.

#iOSDev #Swift

fatbobman.com/en/posts/dee...
Deep Dive into iMessage - Behind the Making of an Agent
Explore iMessage internals: SQLite database structure, Core Data timestamps, macOS sandbox bypass. Learn to build iMessage Agents with TypeScript for message automation and AI integration, featuring…
fatbobman.com
November 26, 2025 at 9:01 AM
🧠 𝘞𝘩𝘢𝘵'𝘴 𝘢 𝘡𝘦𝘵𝘵𝘦𝘭𝘬𝘢𝘴𝘵𝘦𝘯 𝘎𝘰𝘰𝘥 𝘧𝘰𝘳 𝘪𝘯 𝘵𝘩𝘦 𝘈𝘨𝘦 𝘰𝘧 𝘈𝘧𝘧𝘰𝘳𝘥𝘢𝘣𝘭𝘦 𝘓𝘓𝘔𝘴? by Christian Tietze (@ctietze.mastodon.social.ap.brid.gy)

A personal Zettelkasten remains more essential than ever for building lasting expertise.

#iOSDev #Swift

christiantietze.de/posts/2025/1...
What’s a Zettelkasten Good for in the Age of Affordable LLM’s?
Last Saturday was Global Day of Code Retreat (GDCR) and one challenge session was to only use AI with prompts to implement the Game of Life rules. Folks who don't use LLM's a lot tried to describe…
christiantietze.de
November 25, 2025 at 2:04 PM
🗄️ 𝘞𝘳𝘪𝘵𝘪𝘯𝘨 𝘚𝘪𝘯𝘨𝘭𝘦-𝘛𝘢𝘣𝘭𝘦 𝘋𝘺𝘯𝘢𝘮𝘰𝘋𝘉 𝘈𝘱𝘱𝘴 𝘸𝘪𝘵𝘩 𝘋𝘺𝘯𝘢𝘮𝘰𝘔𝘰𝘥𝘦𝘭 by Natan Rolnik (@natanrolnik.bsky.social)

Eliminate boilerplate when modeling DynamoDB tables with a dependency-free package.

#iOSDev #Swift

swifttoolkit.dev/posts/dynamo...
Writing Single-Table DynamoDB Apps with DynamoModel
Get familiar with single-table design in DynamoDB and a dependency-free package for type-safe data models
swifttoolkit.dev
November 25, 2025 at 9:01 AM
⚙️ 𝘈𝘱𝘱𝘳𝘰𝘢𝘤𝘩𝘢𝘣𝘭𝘦 𝘊𝘰𝘯𝘤𝘶𝘳𝘳𝘦𝘯𝘤𝘺 𝘪𝘯 𝘚𝘸𝘪𝘧𝘵 6.2: 𝘈 𝘊𝘭𝘦𝘢𝘳 𝘎𝘶𝘪𝘥𝘦 by Antoine van der Lee (@avanderlee.com)

Swift Concurrency adoption remains challenging despite years of availability.

#iOSDev #Swift

www.avanderlee.com/concurrency/...
Approachable Concurrency in Swift 6.2: A Clear Guide
Discover what ‘Approachable Concurrency’ means in Swift 6.2. Learn how it simplifies async/await, helping developers write safer Swift apps.
www.avanderlee.com
November 24, 2025 at 2:02 PM
📱 𝘏𝘢𝘯𝘥𝘭𝘪𝘯𝘨 𝘕𝘰𝘯-𝘉𝘳𝘦𝘢𝘬𝘪𝘯𝘨 𝘕𝘶𝘮𝘣𝘦𝘳𝘴 𝘪𝘯 𝘋𝘺𝘯𝘢𝘮𝘪𝘤 𝘛𝘦𝘹𝘵 by Artem Mirzabekian

Discover how non-breaking spaces can keep numeric values together for cleaner text layouts.

#iOSDev #Swift

livsycode.com/best-practic...
Handling Non-Breaking Numbers in Dynamic Text → Livsy Code
Greetings, traveler! Displaying dynamically formatted numbers in user-facing strings is a common requirement in many iOS applications. Price labels, account balances, min/max amounts, and other…
livsycode.com
November 24, 2025 at 10:04 AM
📫 𝐈𝐬𝐬𝐮𝐞 #𝟔𝟕 𝐢𝐬 𝐨𝐮𝐭!

📱 𝘕𝘰𝘯-𝘉𝘳𝘦𝘢𝘬𝘪𝘯𝘨 𝘕𝘶𝘮𝘣𝘦𝘳𝘴
⚙️ 𝘊𝘰𝘯𝘤𝘶𝘳𝘳𝘦𝘯𝘤𝘺 𝘪𝘯 𝘚𝘸𝘪𝘧𝘵
🗄️ 𝘋𝘺𝘯𝘢𝘮𝘰𝘋𝘉 𝘈𝘱𝘱𝘴
🧠 𝘡𝘦𝘵𝘵𝘦𝘭𝘬𝘢𝘴𝘵𝘦𝘯 & 𝘓𝘓𝘔𝘴
💬 𝘪𝘔𝘦𝘴𝘴𝘢𝘨𝘦 𝘈𝘨𝘦𝘯𝘵𝘴
🌱 𝘝𝘦𝘨𝘨𝘪𝘦 𝘎𝘢𝘳𝘥𝘦𝘯 𝘓𝘦𝘴𝘴𝘰𝘯𝘴
📚 𝘊𝘰𝘮𝘱𝘳𝘦𝘩𝘦𝘯𝘴𝘪𝘣𝘭𝘦 𝘓𝘢𝘵𝘦𝘳
⚡ 𝘊𝘰𝘯𝘯𝘦𝘤𝘵𝘪𝘰𝘯 𝘗𝘰𝘰𝘭 𝘍𝘪𝘹

#Swift #iOS

ios-newsletter.snappmobile.io/issues/2025-...
iOS Newsletter Issue 67
Issue 67 • November 21, 2025
ios-newsletter.snappmobile.io
November 21, 2025 at 3:00 PM
we curate iOS/Swift articles every Friday

like what we're sharing? subscribe. helps us grow

ios-newsletter.snappmobile.io/subscribe.html

#iOSDev #Swift
Snapp Mobile iOS Newsletter | Subscription
Subscription
ios-newsletter.snappmobile.io
November 21, 2025 at 5:55 AM
❤️ 𝑻𝒓𝒂𝒄𝒌𝒊𝒏𝒈 𝒘𝒐𝒓𝒌𝒐𝒖𝒕𝒔 𝒘𝒊𝒕𝒉 𝑯𝒆𝒂𝒍𝒕𝒉𝑲𝒊𝒕 𝒊𝒏 𝒊𝑶𝑺 𝒂𝒑𝒑𝒔 by Letizia Granata

Build fitness apps that matter with HealthKit integration. Capture real-time workout data and craft responsive SwiftUI interfaces your users will love.

#HealthKit #iOS #SwiftUI

www.createwithswift.com/tracking-wor...
Tracking workouts with HealthKit in iOS apps
Learn how to track workouts using HealthKit in a SwiftUI app.
www.createwithswift.com
November 20, 2025 at 2:02 PM
🎬 𝑮𝒆𝒕𝒕𝒊𝒏𝒈 𝑺𝒕𝒂𝒓𝒕𝒆𝒅 𝒘𝒊𝒕𝒉 𝑽𝒊𝒅𝒆𝒐 𝒐𝒏 𝒗𝒊𝒔𝒊𝒐𝒏𝒐𝑺 by Florent Morin (@florentmorin.bsky.social)

Three battle-tested approaches for Vision Pro video playback: from simple 2D playback to fully spatial experiences. Perfect starter guide for spatial computing.

#visionOS #SpatialComputing #VisionPro
Getting Started with Video on visionOS
From flat to immersive: master video playback on Apple Vision Pro.
stepinto.vision
November 20, 2025 at 9:01 AM
📬 𝑴𝒂𝒊𝒏𝑨𝒄𝒕𝒐𝒓𝑴𝒆𝒔𝒔𝒂𝒈𝒆 & 𝑨𝒔𝒚𝒏𝒄𝑴𝒆𝒔𝒔𝒂𝒈𝒆: 𝑪𝒐𝒏𝒄𝒖𝒓𝒓𝒆𝒏𝒄𝒚-𝒔𝒂𝒇𝒆 𝒏𝒐𝒕𝒊𝒇𝒊𝒄𝒂𝒕𝒊𝒐𝒏𝒔 by Antoine van der Lee (@avanderlee.com)

Notifications crashing with concurrency errors? Replace unsafe 𝑛𝑜𝑡𝑖𝑓𝑦() with thread-safe alternatives that work seamlessly with modern async/await patterns.

#SwiftConcurrency #Notifications
MainActorMessage & AsyncMessage: Concurrency-safe notifications
Dive into notifications and Swift concurrency. Discover the updated notification API that ensures thread safety.
www.avanderlee.com
November 19, 2025 at 2:02 PM
⏳ 𝑻𝒂𝒔𝒌 𝑰𝒅𝒆𝒏𝒕𝒊𝒕𝒚 by Chris Eidhof (@eidhof.nl)

SwiftUI tasks don't re-run when view properties change - here's why. Understanding task identity and dependency tracking is crucial for predictable, efficient async behavior in your views.

#SwiftUI #Concurrency #async

chris.eidhof.nl/post/swiftui...
Task Identity — Chris Eidhof
When you write SwiftUI views, one of the big advantages over UIKit is that SwiftUI performs automatic dependency tracking. Whenever your model invalidates or one of your view’s properties change,…
chris.eidhof.nl
November 19, 2025 at 9:00 AM
🚀 𝑩𝒖𝒊𝒍𝒅𝒊𝒏𝒈 𝑪𝒍𝒐𝒔𝒆𝒅-𝑺𝒐𝒖𝒓𝒄𝒆 𝑩𝒊𝒏𝒂𝒓𝒊𝒆𝒔 𝒘𝒊𝒕𝒉 𝑮𝒊𝒕𝑯𝒖𝒃 𝑨𝒄𝒕𝒊𝒐𝒏𝒔 by Daniel Saidi (@danielsaidi.bsky.social)

Automate closed-source Swift package builds from commit to distribution. GitHub Actions orchestrates the entire pipeline - compilation, testing, and release without manual overhead.

#Swift #Automation
Building Closed-Source Binaries with GitHub Actions
Using GitHub Actions is a great way to automate your build pipeline. In this post, we’ll take a look at how to use GitHub Actions to buil...
danielsaidi.com
November 18, 2025 at 2:03 PM
🔧 𝑶𝒏𝒆 𝑺𝒘𝒊𝒇𝒕 𝒎𝒊𝒔𝒕𝒂𝒌𝒆 𝒆𝒗𝒆𝒓𝒚𝒐𝒏𝒆 𝒔𝒉𝒐𝒖𝒍𝒅 𝒔𝒕𝒐𝒑 𝒎𝒂𝒌𝒊𝒏𝒈 𝒕𝒐𝒅𝒂𝒚 by Paul Hudson (@twostraws.bsky.social)

Your string replacements behaving unexpectedly? 𝑟𝑒𝑝𝑙𝑎𝑐𝑖𝑛𝑔𝑂𝑐𝑐𝑢𝑟𝑟𝑒𝑛𝑐𝑒𝑠 has subtle gotchas. Discover why and what Apple's modern alternatives offer.

#Swift #StringHandling #Debugging
One Swift mistake everyone should stop making today
TL;DR: You should use replacing(_:with:) rather than replacingOccurrences(of:with:)
www.hackingwithswift.com
November 18, 2025 at 9:01 AM
🧪 𝑷𝒊𝒕𝒇𝒂𝒍𝒍𝒔 𝒐𝒇 𝑷𝒂𝒓𝒂𝒎𝒆𝒕𝒆𝒓𝒊𝒛𝒆𝒅 𝑻𝒆𝒔𝒕𝒔 by Alex Ozun (@alexozun.com)

Five critical pitfalls that trip up teams adopting Swift Testing at scale. Learn the patterns that prevent test pollution, flaky assertions, and maintenance nightmares as your test suite grows.

#Swift #Testing #SwiftTesting
Pitfalls of Parameterized Tests | Swiftology
In this article, I share my experience adopting Swift Testing at scale and the lessons I learned about **Parameterized Tests**, including five common pitfalls teams may encounter. I also recommend…
swiftology.io
November 17, 2025 at 2:02 PM
🎨 𝑮𝒆𝒏𝒆𝒓𝒂𝒕𝒊𝒏𝒈 𝒊𝒎𝒂𝒈𝒆𝒔 𝒊𝒏 𝑺𝒘𝒊𝒇𝒕 𝒖𝒔𝒊𝒏𝒈 𝑰𝒎𝒂𝒈𝒆 𝑷𝒍𝒂𝒚𝒈𝒓𝒐𝒖𝒏𝒅 by Majid Jabrayilov (@mecid.bsky.social)

Image Playground brings text-to-image generation directly into Swift. No external APIs needed - generate, customize, and integrate images programmatically right in your app.

#Swift #ImageGeneration #iOS
Generating images in Swift using Image Playground
I’m continuing to work on AI-generated content in my apps, and this time, we’ll focus on image generation. You might be familiar with the Image Playground app on your Apple devices, which also has a…
swiftwithmajid.com
November 17, 2025 at 9:00 AM
📱 𝐈𝐬𝐬𝐮𝐞 #𝟔𝟔 𝐢𝐬 𝐨𝐮𝐭!

Fresh insights on iOS dev:
🎨 𝑮𝒆𝒏𝒆𝒓𝒂𝒕𝒊𝒏𝒈 𝒊𝒎𝒂𝒈𝒆𝒔 𝒘𝒊𝒕𝒉 𝑰𝒎𝒂𝒈𝒆 𝑷𝒍𝒂𝒚𝒈𝒓𝒐𝒖𝒏𝒅
🧪 𝑷𝒊𝒕𝒇𝒂𝒍𝒍𝒔 𝒐𝒇 𝑷𝒂𝒓𝒂𝒎𝒆𝒕𝒆𝒓𝒊𝒛𝒆𝒅 𝑻𝒆𝒔𝒕𝒔
🔧 𝑺𝒘𝒊𝒇𝒕 𝑴𝒊𝒔𝒕𝒂𝒌𝒆𝒔 𝒕𝒐 𝑨𝒗𝒐𝒊𝒅
🚀 𝑮𝒊𝒕𝑯𝒖𝒃 𝑨𝒄𝒕𝒊𝒐𝒏𝒔 𝒇𝒐𝒓 𝑩𝒖𝒊𝒍𝒅𝒔
⏳ 𝑻𝒂𝒔𝒌 𝑰𝒅𝒆𝒏𝒕𝒊𝒕𝒚
📬 𝑨𝒔𝒚𝒏𝒄 𝑵𝒐𝒕𝒊𝒇𝒊𝒄𝒂𝒕𝒊𝒐𝒏𝒔
🎬 𝑽𝒊𝒅𝒆𝒐 𝒐𝒏 𝒗𝒊𝒔𝒊𝒐𝒏𝑶𝑺
❤️ 𝑯𝒆𝒂𝒍𝒕𝒉𝑲𝒊𝒕 𝑻𝒓𝒂𝒄𝒌𝒊𝒏𝒈

#Swift #iOS #SwiftUI
iOS Newsletter Issue 66
Issue 66 • November 14, 2025
ios-newsletter.snappmobile.io
November 14, 2025 at 3:00 PM
🎨 𝐷𝑒𝑒𝑝 𝐷𝑖𝑣𝑒 𝑖𝑛𝑡𝑜 𝐴𝑛𝑖𝑚𝑎𝑡𝑖𝑜𝑛 𝑜𝑛 𝑣𝑖𝑠𝑖𝑜𝑛𝑂𝑆 by Cristian Díaz (@elkraneo.bsky.social)

Overwhelmed by visionOS animation options? Cristian demystifies all 10 animation mechanisms to help you choose the right tool for motion.

#visionOS #Animation

stepinto.vision/articles/dee...
Deep Dive into Animation on visionOS
Explore how the animation tools and rendering paths on visionOS can enhance your spatial applications. Learn how temporal cues improve user clarity and comfort while navigating spatial changes.
stepinto.vision
November 13, 2025 at 2:23 PM
📦 𝑠𝑡𝑎𝑡𝑖𝑐 𝑐𝑜𝑛𝑠𝑡 𝑖𝑛 ℎ𝑒𝑎𝑑𝑒𝑟 𝑐𝑜𝑠𝑡: 𝑑𝑦𝑙𝑑 𝑠ℎ𝑖𝑝𝑠 𝑤𝑖𝑡ℎ 𝑟𝑒𝑑𝑢𝑛𝑑𝑎𝑛𝑡 2𝐾𝐵 𝑑𝑎𝑡𝑎 𝑐𝑜𝑝𝑦 by Kyle Ye

Every kilobyte counts in system frameworks. Kyle reveals how 𝑠𝑡𝑎𝑡𝑖𝑐 𝑐𝑜𝑛𝑠𝑡 creates binary bloat and how 𝑖𝑛𝑙𝑖𝑛𝑒 𝑐𝑜𝑛𝑠𝑡𝑒𝑥𝑝𝑟 fixes it.

#Performance #Binary
November 13, 2025 at 8:06 AM
🔍 𝐹𝑖𝑛𝑑 𝑡ℎ𝑒 𝑆𝑤𝑖𝑓𝑡𝑈𝐼 𝑉𝑖𝑒𝑤𝑠 𝑡ℎ𝑎𝑡 𝑈𝑝𝑑𝑎𝑡𝑒 𝑡ℎ𝑒 𝑀𝑜𝑠𝑡 𝑈𝑠𝑖𝑛𝑔 𝐼𝑛𝑠𝑡𝑟𝑢𝑚𝑒𝑛𝑡𝑠 by Mark Szymczyk

Is your app re-rendering views more than needed? Xcode 26's new SwiftUI Instruments help you identify the performance culprits fast.

#SwiftUI #Performance

swiftdevjournal.com/posts/swiftu...
Find the SwiftUI Views that Update the Most Using Instruments · Swift Dev Journal
Articles for iOS and Mac developers
swiftdevjournal.com
November 12, 2025 at 2:22 PM
🛠 𝑃𝑜𝑤𝑒𝑟-𝑈𝑝 𝑆𝑤𝑖𝑓𝑡𝑈𝐼 𝐹𝑜𝑟𝑚 𝑉𝑎𝑙𝑖𝑑𝑎𝑡𝑖𝑜𝑛 𝑤𝑖𝑡ℎ 𝐾𝑒𝑦 𝑃𝑎𝑡ℎ𝑠 by Daniel Saidi (@danielsaidi.bsky.social)

Form validation boilerplate getting unwieldy? Use keypaths to reduce repetition and boost readability in your SwiftUI forms.

#SwiftUI #Forms

danielsaidi.com/blog/2025/10...
Power-Up SwiftUI Form Validation with Key Paths
I struggled to start using keypaths in Swift, but I’m really glad that they’re now a go-to tool to reduce repetition and increase readabi...
danielsaidi.com
November 12, 2025 at 8:07 AM
📊 𝑃𝑙𝑎𝑦𝑖𝑛𝑔 𝑤𝑖𝑡ℎ 𝑆ℎ𝑒𝑒𝑡 (𝑜𝑛 𝑖𝑂𝑆) by Danny Bolella (@dbolella.bsky.social)

Master sheet presentations beyond basic modals. Explore 𝑝𝑟𝑒𝑠𝑒𝑛𝑡𝑎𝑡𝑖𝑜𝑛𝐷𝑒𝑡𝑒𝑛𝑡𝑠, interactive gestures, and dismissal patterns for fluid interfaces.

#SwiftUI #iOSDev

captainswiftui.substack.com/p/playing-wi...
Playing with Sheet (on iOS)
A look at how Apple has reshaped modal and sheet presentations in SwiftUI for iOS
captainswiftui.substack.com
November 11, 2025 at 2:21 PM
✨ 𝑍𝑜𝑜𝑚𝑖𝑛𝑔 𝑊𝑖𝑡ℎ 𝑇ℎ𝑒 𝑀𝑎𝑔𝑛𝑖𝑓𝑦 𝐺𝑒𝑠𝑡𝑢𝑟𝑒 𝑖𝑛 𝑆𝑤𝑖𝑓𝑡𝑈𝐼 by Gabriel Theodoropoulos

Pinch-to-zoom mastery: handle both temporary and persistent magnification with 𝑀𝑎𝑔𝑛𝑖𝑓𝑦𝐺𝑒𝑠𝑡𝑢𝑟𝑒. Gabriel shows how.

#SwiftUI #Gestures

serialcoder.dev/text-tutoria...
November 11, 2025 at 8:08 AM
🎯 𝑄𝑢𝑖𝑐𝑘 𝑎𝑐𝑡𝑖𝑜𝑛𝑠 𝑖𝑛 𝑆𝑤𝑖𝑓𝑡𝑈𝐼 by Wesley de Groot (@0xwdg.bsky.social)

Long-press quick actions just got easier. Wesley breaks down the UIKit integration needed to add seamless quick actions to your SwiftUI app.

#SwiftUI #iOSDev

wesleydegroot.nl/blog/quick-a...
Quick actions in SwiftUI - Wesley de Groot
Quick actions are a powerful feature in SwiftUI that allows developers to add contextually relevant actions to their views. These actions can be triggered by user interactions, such as tapping and…
wesleydegroot.nl
November 10, 2025 at 2:20 PM
⚡ 𝑅𝑜𝑎𝑑𝑚𝑎𝑝 𝑓𝑜𝑟 𝑖𝑚𝑝𝑟𝑜𝑣𝑖𝑛𝑔 𝑡ℎ𝑒 𝑡𝑦𝑝𝑒 𝑐ℎ𝑒𝑐𝑘𝑒𝑟 by Slava Pestov

Swift's tackling the "compiler unable to type-check this expression" errors with exponential performance gains on complex type checking. A roadmap worth following.

#Swift #TypeChecker

forums.swift.org/t/roadmap-fo...
November 10, 2025 at 8:09 AM