|
Stewart Lynch News 2026 - 19
Please pass on the subscription link to others in your sphere so I can broaden my reach. https://stewartlynch.kit.com/
|
|
|
Latest Videos
YouTube has changed the way in which it counts view so now, all one has to do is click on my video and see only the first frame and it sounds as a view. Previously, one had to view much more content before the view was counted. So, as a result all of my videos are not getting at least 1000 views in the first day, which is nice, but I am going to have to pay more attention to retention.
Here are the latest videos since my last newsletter.
AsyncImage Caching in iOS 27: Everything You Need to Know
iOS 27 gives AsyncImage native caching—and this walkthrough shows how to take control of it. Learn how to set up a dedicated image cache, track and clear its disk storage, and test each URLRequest cache policy so you can choose the right freshness-versus-speed trade-off for your SwiftUI app.
SwiftUI Alerts & Confirmation Dialogs in iOS 27
Learn how iOS 27 simplifies SwiftUI alerts and confirmation dialogs with optional item bindings, built-in error handling, and an enum-driven pattern for managing multiple alert actions through a single presentation.
|
|
|
What's Next?
Here are the next two videos coming out.
Master SwiftUI Reordering in iOS 27
iOS 27 introduces a new SwiftUI reordering API that makes drag-and-drop ordering in lists, grids, and custom layouts much more straightforward. This video walks through the new reorderable and reorderContainer modifiers, explains how to interpret the reorder difference, and shows how to turn that difference into an updated collection without duplicating logic between list and grid views.
You’ll also see how to persist a reordered SwiftData collection by updating a sortOrder property and saving the model context, plus a more advanced sectioned-list example that supports moving items both within and between sections while updating the underlying favorite status. Watch if you want a practical, end-to-end guide to adopting SwiftUI’s new reordering tools in your own apps
SwiftUI Swipe Actions Beyond List in OS 27
Swipe actions are no longer limited to SwiftUI’s List in OS 27. This video walks through adding familiar leading and trailing swipe actions to rows in a ScrollView and cards in an adaptive LazyVGrid, including delete, archive/unarchive, and favorite/unfavorite actions. You’ll see how to turn a ScrollView into a swipe-actions container, add animations where List previously handled them automatically, control full-swipe behavior, and adapt a reusable card layout for both list and grid presentations.
The video also covers an important current limitation in the OS 27 beta: swipe-action button labels and icons may not refresh after an in-place update in ScrollView and grid layouts. I explain, the likely cause, demonstrate a practical workaround using a Hashable row identity, and show you how to improve the resulting interaction with animations. Watch if you want to keep native system swipe actions while gaining the layout flexibility of custom scroll views and grids.
|
|
|
New on the Blog - Make Repeated Xcode Code Reusable with Snippets
If you find yourself rewriting the same SwiftUI views, function outlines, test helpers, or other boilerplate, Xcode code snippets can turn those repeated blocks into reusable templates. This blog post explains how to create snippets, find them in Xcode’s Library, insert them by dragging or through code completion, and make them more useful with descriptive placeholders that you can move through using Tab.
The most helpful details are the ones that make snippets reliable in everyday work: choosing a memorable completion prefix, selecting the right scope so suggestions appear where you need them, and handling SwiftUI’s @ViewBuilder contexts, where the All scope is often the most dependable choice. It also covers where Xcode stores custom .codesnippet files, why they do not automatically travel with an app’s Git repository, and practical ways to copy, back up, or manage a portable snippet collection across Macs. Read the full article for a clear workflow that can help you reduce repetitive typing without losing sight of the code you insert.
https://www.createchsol.com/blog/2026-09-23-creating-and-using-code-snippets-in-xcode.html
|
|
|
Two valuable tips
I monitor a lot of blogs and social media feeds and make note of useful tips that could possibly make my workflow a lot better. Recently I came across two that I think you might appreciate.
DeviceHub keyboard shortcuts
This tip was shared by Kris Slazinski on his Next Planet blog.
For some odd reason, Apple decided to disable keyboard shortcuts in Device Hub, their replacement for Xcode Simulator. Well, most shortcuts - things like Toggle Appearance (to turn Dark Mode on/off), Zoom to Fit, Physical Size, and, most importantly, Screenshot and Record Screen
Well It turns out that there is a quick way to enable them and get them back again.
Open the terminal application and type the following:
defaults -container com.apple.dt.Devices write com.apple.dt.Devices hostKeybindingPolicy -int 0
This will add those keyboard shortcuts back to both the Compact and expanded mode.
Apple Markdown
This tip I learned from Andrii Fedin on LinkedIn.
This is absolute gold for iOS and other Apple platforms developers!
A couple of quick URL changes can help you make any Apple guide more readable for your agent and also save on tokens.
Just insert "tutorials/data/" before "design/" and add ".md" or ".json" in the end and get a clean doc to feed to your coding agent..
So you can turn this https://developer.apple.com/design/human-interface-guidelines/designing-for-iphone-duo
into this:
https://developer.apple.com/tutorials/data/design/human-interface-guidelines/designing-for-iphone-duo.md
I thought that this was pretty cool, so I just thought that I would see what would happen if I just added the ".md" extension to the url of any of the Apple documentation pages. And low and behold, it worked!
So instead of going to https://developer.apple.com/documentation/swift/array
You can use https://developer.apple.com/documentation/swift/array.md to get the markdown version.
|
|
|
If you enjoy what I do and want to support my work, you can join my Ko-fi community and either make a one-time donation or become a monthly supporter for as little as $5/month. Monthly supporters get early access to my videos as soon as they’re uploaded to YouTube (as unlisted videos), sometimes up to a month before they’re made public. Monthly supporters also get priority responses to their questions, and I’m happy to help with coding challenges.
In addition to PayPal, Ko-fi now supports Stripe, which makes it easier to pay by credit card.
|
|
|
My Other Stuff
Channel Listing App
A Searchable Mac app containing a list of all of my YouTube videos including the ability to watch them in the app and download starter and completed source code
Free on Gumroad
SymbolBrowser App
Browse Apple's complete SF Symbols library from your menu bar. Search, preview effects, customize colors, generate SwiftUI/UIKit/AppKit code, and copy symbols as images — all without leaving your workflow. Available on Gumroad: (Pay what you want)
GitHub Directory Downloader for Mac
This simple app lets you download any specific directory from any GitHub repository—whether it's public or private. Just copy the folder URL, paste it into the app, and download exactly what you need. It remembers your download locations, keeps a history of what you've grabbed, and even supports branch selection. Perfect for developers who want quick access to starter projects, code examples, or specific folders without the hassle of cloning entire repositories. Available on Gumroad: (Pay what you want)
Smile4Me Course
The course is now Free to download from: https://stewartlynch.github.io/Smile4Me-Course-Content/
|
|
|
Affiliate Links
BigMountain Studio Books
Mark Moeykens is a master at creating SwiftUI reference books. I have purchased every one of these books and refer to them all the time.
Use this link and we both will benefit
https://www.bigmountainstudio.com/a/77jt8
|
|
|