Stewart Lynch Newsletter 2025-11


Stewart Lynch News
2025-11

Please pass on the subscription link to others in your sphere so I can broaden my reach.
https://stewartlynch.kit.com

This Week's Video

In this week's video, you saw how to build flexible and reusable containers in SwiftUI using @ViewBuilder. We looked at how to pass in customizable parameters with default values, use view modifiers to mimic container behavior, and decide when it’s better to use a container view versus a modifier.

You also learned how to inject logic with closures and manage internal state within your containers.

Along the way, we built three full examples. It was a hands-on, advanced guide designed to give SwiftUI developers practical tools for building powerful and reusable components.

video preview

What is Coming?

Next week’s video is a follow-up to this week's video, but this time, we’re exploring what iOS 18 adds to the mix.

With the latest updates introduced at WWDC24, SwiftUI now gives us powerful new tools like access to section subviews (headers, content, and footers) and the new ContainerValue struct for driving dynamic view behaviour.

I’ll walk you through two practical examples, and along the way, we’ll build modular custom container views, use SwiftUI’s new scroll and animation capabilities, and apply conditional styling to grouped data. You won’t want to miss it!

Not the Answer I Was Looking For

Sometimes when you post a question on social media, your intent gets misunderstood. Responses veer off track, and your original point gets lost. That happened to me last week.

I was experimenting with the symbolEffect function on SF Symbols and discovered that it accepts an isActive parameter. This parameter defaults to true, so you can omit it if needed. For example, you can create a pulsing image using an SF Symbol like this:

Image(systemName: "plus.circle.fill)
.symbolEffect(.breathe)

.breathe is just one of many available symbol effects, and it creates a nice pulsing animation like the one shown here.

What caught my attention was the ability to control whether the effect is active. That inspired me to create a quick demo where the effect is only active when needed. I shared a simple ToDo list example: when the list is empty, a toolbar button pulses to draw the user’s attention. Once a ToDo is added, the pulsing stops:

.symbolEffect(.breathe, isActive: todos.isEmpty)

The intent was to highlight a subtle way to direct a user’s attention—without relying on the Tips framework.

Unfortunately, my example backfired. I asked:

I’m looking for subtle ways to draw attention to a button only if necessary, without using the Tips framework.
Comments?


It was a poorly worded post with a questionable example, and the majority of responses focused on how I should have used ContentUnavailableView instead. And they’re right—that would have been the better approach for this particular case. I’d normally use ContentUnavailableView too.

But that wasn’t really the point.

What I hoped to spotlight was the flexibility of symbolEffect, particularly with the isActive parameter, and how it could be used in other scenarios where ContentUnavailableView isn’t appropriate.

I still believe this technique has potential, and I’d love to hear your thoughts. Have you used symbolEffect in a clever way? Reach out and share—I’d love to learn from your ideas!

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

CustomGPT

A custom ChatGPT that has indexed the transcripts of my videos.
Add to your ChatGPT Sidebar

Smile4Me Course

Learn how to build a multi-targeted app using a Jokes API.
Don't let the low cost of the course fool you into believing that low cost means low content. 6.5 hours of content and 56 videos.

Enrol in the course

Affiliate Links

Affiliate Links

Below are a number of affiliate links for products that I not only endorse but use all the time. I will never endorse something that I do not believe in.

RocketSim - Build Apps Faster 

This is an invaluable tool when working with the simulator in Xcode.

   https://gumroad.com/a/122988499/ftvbh 

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

113 Cherry St #92768, Seattle, WA 98104-2205
Unsubscribe · Preferences

Stewart Lynch

Join over 23,000 YouTube subcribers who are mastering Swift and SwiftUI.Level up your iOS development skills with concise tutorials and professional development tips delivered straight to your inbox. Subscribe now for exclusive discounts, insider insights, and curated highlights from my 350+ YouTube tutorials.

Read more from Stewart Lynch

Stewart Lynch News2025-13 Subscribe to my YouTube Channel Please pass on the subscription link to others in your sphere so I can broaden my reach.https://stewartlynch.kit.com This Week's Video This week I launched a brand new series with one goal: to build a reusable SF Symbol Picker Swift Package that you can easily integrate into any project. In the first video, we focused on an essential skill for iOS and macOS development: decoding property lists (plists). You learned how to: Create and...

Stewart Lynch News2025-12 Subscribe to my YouTube Channel Please pass on the subscription link to others in your sphere so I can broaden my reach.https://stewartlynch.kit.com This Week's Video In this week's video, I explored two exciting new additions introduced at WWDC24: • Accessing section subviews (headers, content, and footers) • Using the new ContainerValue struct for dynamic view behaviour I walked you through two practical examples: enhancing a basic list with stylized sections and...

Stewart Lynch News2025-10 Subscribe to my YouTube Channel Please pass on the subscription link to others in your sphere so I can broaden my reach.https://stewartlynch.kit.com This Week's Video In this week's video video, we improved our SwiftUI theming system by addressing three key issues: ✅ Fixed dark mode inconsistencies ✅ Resolved unwanted background reveals in modal sheets ✅ Persisted the selected theme between app launches We explored solutions using SwiftUI’s preferredColorScheme,...