SwiftLee Weekly - Issue 251


This week's SwiftLee Weekly covers:

  • Dealing with in-app subscription billing issues
  • Getting started with Swift
  • Localization using SPM

Enjoy this week's SwiftLee Weekly!

THIS WEEK'S BLOG POST

Swift Tutorials: Learn Swift with Easy-to-Follow Code Examples

Since 2015, I've published over 250 articles. Yet, a good starting point didn't exist, and outside of search engine results, it's pretty hard to discover all the valuable content I've written. Therefore, I used this holiday week to publish an entry article for both beginner and intermediate articles. I've listed my must-read articles, so even if you're experienced, there's much to discover!

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

From Icon to Identity: The Essentials of Branding Your App

You might know how to code, but how do you create a good app branding? This article can be a great starting point.
createwithswift.com

VoiceOver on macOS: First Time, Huh?

Do you know how to turn on and use VoiceOver on the Mac? Bas Broek felt overwhelmed the first time, but that all had a reason.
basbroek.nl

Creating a SwiftUI text view with tappable links

I realize I run into this every now and then: how to add links into SwiftUI text? There are different ways, and I know that, but I always struggle to pick the right solution. Hopefully, that’s not happening anymore with this article by Daniel Saidi.
danielsaidi.com

Adjust the intensity of colors in SwiftUI views

You have a primary brand color, but how do you get other color tints that go well with it? This article by Natalia Panferova shares a convenient SwiftUI modifier that can help you.
nilcoalescing.com

Never Miss a Localized String Value Again

When I first noticed this article, I expected some kind of launch argument that would duplicate words or turn them into red. The opposite is true and the solution is actually quite interesting!
jacobzivandesign.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.

QUESTION OF THE WEEK

How do you prevent in-app subscriptions from ending due to billing issues?
Anonymous

This is a great question and something that's solved better on the web than in apps. As app developers, we're required to built custom solutions to get notified of user billing issues and email users accordingly.

Tools like RevenueCat offer webhooks that you can use to get a signal when a user subscription status changes to in_grace_period or in_billing_retry. You can use this status in-app to show an alert to inform users that their subscription might end soon if they don't fix their billing settings.

For RocketSim, I decided to go one step further. I've connected RevenueCat to Kit, and use an email sequence to inform users via email about their billing issues. You can use this deeplink to let users dive into their billing settings: https://apps.apple.com/account/billing for a higher chance of solving.

Altogether, it's these small improvements that will increase your subscription retention, revenue, and LTV.

Want to have your question answered next week? Ask your question via this form (anonymously) or reply to this email with your question.

EARN ROCKETSIM LIFETIME

Share and Earn RocketSim Lifetime & a 1-on-1 coaching session

Apple has recognized RocketSim as an Essential Developer Tool in the Mac App Store, and now you can get lifetime Pro access by sharing your unique referral link!

How to get started:

[RH_REFLINK GOES HERE]

Rewards:

  • Earn your first reward after just 3 sign-ups!
  • Check your progress anytime using your referral dashboard.
  • The grand prize? A personalized 1-on-1 career coaching session!

Several subscribers have already claimed their rewards—will you be next?

Thank you so much for your support, 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: Noncopyable types in Swift Exploring MLX Swift Xcode Library Customization Enjoy this week's SwiftLee Weekly! THIS WEEK'S BLOG POST SwiftUI Button: Custom Styles, Variants, and Best Practices SwiftUI provides different APIs to style buttons. You can use system styling using view modifiers or custom button styles. While writing this article, I learned about PrimitiveButtonStyle, which allows you to define both custom interactions and styling. New: Code for...

This week's SwiftLee Weekly covers: Exploring Apple Intelligence SwiftUI Design System Mutable let in Swift Enjoy this week's SwiftLee Weekly! THIS WEEK'S BLOG POST SF Symbol: How to for Swift & SwiftUI Remember the days you've had to search for a specific icon all across the web? We can be blessed with the quality of SF Symbols, which we can use for free in our apps. This week's article covers everything around the 6,000+ symbols you can use, from animations and variants to creating custom...

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...