SwiftLee Weekly - Issue 247


This week's SwiftLee Weekly covers:

  • Black Friday Discounts
  • Apple Intelligence in SwiftUI
  • Balancing support requests in side projects

Enjoy this week's SwiftLee Weekly!

THIS WEEK'S BLOG POST

Black Friday: 50% discount on RocketSim & Going Indie Course

It's that time of the year with crazy discounts floating around everywhere. I decided to join the madness and provide a 50% discount on my Going Indie course and RocketSim.

SPONSORED

Codemagic makes Apple M2 machines available, even on the free tier!

Codemagic is the first CI/CD to make Apple M2 machines available to everyone (including the free tier!). This is a free upgrade from M1 machines with no price change. Get started today.

CURATED FROM THE COMMUNITY

How to create and upload high-quality App Store assets

Using two professional tools together allows you to optimize the process of creating high-quality App Store assets.
polpiella.dev

Should we use Apple Intelligence for Text and Inputs in SwiftUI using writingToolsBehavior

I recently had to make changes to a MacOS Catalyst app, and this article was timely. It made me realize we can adjust the behavior of textfields and Apple Intelligence. At least, that’s what you would expect…
medium.com

Using Transactions Instead of Save in SwiftData and Core Data

Transactions in databases are essential for both data consistency and performance. SwiftData and Core Data support this; you can learn about it in this article.
fatbobman.com

Time-Based View Updates in SwiftUI

The TimelineView in SwiftUI is a container that redraws its contents based on a specific timeline provided. It’s a powerful element that can be used in many scenarios, and this article describes a few quite nicely.
digitalbunker.dev

Set supported platforms in file target membership options in Xcode

A pretty neat option I didn’t know existed until reading this article by Natalia Panferova. Instead of using #if os(macOS), you can configure metadata on a file level.
nilcoalescing.com

SWIFT EVOLUTION

An overview of last week's Swift Proposal state changes. Check them out when they're in review, as it's your opportunity to influence the direction of Swift's future.

There have been no Swift Evolution changes this week.

QUESTION OF THE WEEK

How do you balance working on the app and responding to users?
Philipp

Handling incoming support requests. It seems like a non-issue for side projects, but as soon as you gain momentum, you'll also gain more support requests.

These can be short requests like "How does feature X work?" or a bug report. However, they can quickly become longer email threads that can easily take up your time. How do you balance this while still making sure your reply is quick enough?

The latter is most important: what is quick enough?

When working with multiple developers on a project, you might get a question asked, too. If you're an expert in your team, it's often easier to ask you for the answer instead of investing time into finding an answer. While this is fine, it's also essential to let colleagues find their answers without your help. I always waited at least 10 minutes to answer and found colleagues often replying, "Oh, no worries, already found the answer!". The point is: they won't stop searching for the answer themselves, they just tried to see if you're the quickest way out.

Now, support questions are different. You want to be there for your users, but how quickly do they expect you to reply? In my experience, when I answered within 2 days, I would still get replies like "Thanks for answering so quickly!" The point is that many support teams answer late or sometimes not even at all.

So, for side projects where you don't have a support team, it's fine to bundle all support requests into a single day of replying. This brings you to a single context, making answering more optimized. Answering support emails daily is inefficient and will distract you quite a bit. My golden path is to either bundle all support requests into a single Friday or answer them between meetings when I don't have time for deep work.

Good luck!

Want to have your question answered next week? Ask your question via this form (anonymously)

SWIFTLEE MONTHLY GIVEAWAY

ARCTic Conference Giveaway winner

I'm happy to announce A. Radut as this month's giveaway winner! We'll contact you shortly.

EARN ROCKETSIM LIFETIME

Share and Earn Rewards

Apple lists RocketSim as an Essential Developer Tool in the Mac App Store, and now you can enjoy lifetime Pro access by spreading the word!

Share your unique referral link below with fellow developers who would appreciate my newsletter:

[RH_REFLINK GOES HERE]

Check your referral count anytime and track your progress toward earning your reward.

Thanks, and until next Tuesday,

Antoine

SwiftLee Weekly by Antoine van der Lee

SwiftLee Weekly keeps you up-to-date with the latest Swift Evolution proposals, delivers 5 handpicked articles from the community, and challenges your knowledge with a weekly question. Enjoy a monthly giveaway and dive into a fresh new article from SwiftLee every week. Plus, unlock $264 worth of exclusive discounts by subscribing.

Read more from SwiftLee Weekly by Antoine van der Lee

This week's SwiftLee Weekly covers: Concurrency step-by-step Geometry Effect in SwiftUI Reducing an iOS app's size by half Enjoy this week's SwiftLee Weekly! Oh, p.s., I'm finally on Bluesky. THIS WEEK'S BLOG POST Enum explained in-depth with code examples in Swift It's been a while since I wrote the first version of this article. Swift enums are well-known in their basics, but do you know how to use the fallthrough keyword? Or statements like guard case and if case? Now and then, I revisit...

This week's SwiftLee Weekly covers: App Store Nominations ChatGPT for Xcode Lazy vars and observable classes Enjoy this week's SwiftLee Weekly! THIS WEEK'S BLOG POST Contingent pricing for in-app subscriptions Contingent pricing is close to one year old and still in the piloting phase. After joining forces with the team behind Helm, I wrote an article based on my experience integrating discounted subscription offerings using contingent pricing. SPONSORED Master Test Distribution & App...

This week's SwiftLee Weekly covers: Xcode's integrated code formatter ARCtic Conference Is Swift too complex? Enjoy this week's SwiftLee Weekly! THIS WEEK'S BLOG POST MainActor usage in Swift explained to dispatch to the main thread Swift Concurrency was brand new when I first wrote this article in 2023. This week, I revisited the article and brought it back up to date. One key learning I’ve added: @MainActor does not guarantee execution on the main thread.avanderlee.com SPONSORED Transform...