SwiftLee Weekly - Issue 267


This week's SwiftLee Weekly covers:

  • How .ipa files can increase app security
  • Optimizing user flows in apps
  • Flexible SwiftUI user interfaces

Enjoy this week's SwiftLee Weekly!

THIS WEEK'S BLOG POST

Swift Reduce: Combining elements into a single value

Reduce is a typical functional pattern, a higher-order function that combines a collection into a single value cleanly and expressively. When I looked up how often I use it in RocketSim's codebase, I was quite surprised! Way more often than expected. Yet, I did not write about this function at all, so it's time to give it some proper attention.

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

Building Better Apps with RocketSim - Special Guest Antoine van der Lee!

In just a few hours, I’ll be live on YouTube with Peter Friese (Developer Advocate at Google) to show you how to make the most of RocketSim. I can already promise you some untold background stories, so you don’t want to miss this one!
youtube.com

Using NavigationPath with TabView in SwiftUI

Combining a Tab View with a Navigation Stack is a common use case, but it comes with challenges, such as managing the navigation state across those tabs properly. This article provides guidance and demonstrates how routers can help out.
tanaschita.com

Create flexible interfaces in SwiftUI

Learn how to size a SwiftUI view relative to its nearest container to create flexible interfaces.
createwithswift.com

Supercharging SwiftUI Text with Dynamic Content Styling

I’ve often found myself trying to style text in text differently, ending up with a maze of Text combinations. This library can be a great solution to create the same in a more readable manner.
danielsaidi.com

How to inspect .ipa files and secure your iOS app from common mistakes

An .ipa file is the package format for iOS apps and can teach you what you’re shipping. The outcome allows you to increase the security of your apps.
artemnovichkov.com

ALMERE TECH MEETUP

From Side Project to Going Indie

If you're around Almere (Netherlands), I'd love to see you this Thursday in person at the Almere Tech Meetup. I'll be giving a 40-minutes talk about turning your side projects into success. See you there?

CODE SNIPPET OF THE WEEK

Swift Reduce examples

You can find this post on Twitter/X, LinkedIn, or Bluesky.

twitter profile avatar
Antoine v.d. SwiftLee 
Twitter Logo
@twannl
9:54 AM • Apr 15, 2025
1
Retweets
55
Likes

QUESTION OF THE WEEK

How do you approach optimizing user flows in apps?

You might not expect it, but I didn't do a bachelor on programming. Instead, I studied Communication and Multimedia Design (CMD) in Amsterdam. It's a study that teaches you how to optimize products for end-users.

I was able to teach myself the programming side and ended up with a perfect combination to successfully develop apps. Whenever I look at existing apps (either my own or others), I'd love to think in so-called funnels.

You define your app's key action and you determine the steps in the funnel to succeed. Each step is a crucial conversion point with potential drop offs. If you can reduce drop off in each step, you'll automatically increase the conversion into the key action.

Sounds straightforward, but it all comes down to proper telemetry. I'm often surprised to speak with developers who know their key action, know their funnel, but have no way to show me how it performs.

Finally, if you can create a flywheel into that funnel, you're setting yourself up for success. See if you can get another funnel-start for each user that completes your key action and you'll allow your app to grow exponentially. A simple example: add a share screen at the end of the funnel.

A key action could be completing level one of a game, where the share function would be to show off on socials that you did complete level one. This potentially brings in new users, who will also complete level one, and who might also share their result → flywheel.

Btw, if this sparks your interest, I go way deeper into funnels in my "From Side Project to Going Indie" course. You can now get it as a bundle when purchasing my Swift Concurrency Course. Enjoy!

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

A new SwiftLee article, code snippet, Swift Evolution updates, 5 top community articles, and a weekly answer to a question from the community to level up your Swift skills.

Read more from SwiftLee Weekly by Antoine van der Lee

This week's SwiftLee Weekly covers: Structured spacing in SwiftUI Test scoping traits A great app that nobody knows about Enjoy this week's SwiftLee Weekly! THIS WEEK'S BLOG POST SwiftUI Alert Guide + Code Examples A SwiftUI alert can be presented in several ways. In this article, we explore these common view modifiers, changing the default action of an alert, and a convenient error-presenting extension I prefer to use in my projects. SPONSORED Transform Your Career with the iOS Lead...

This week's SwiftLee Weekly covers: What's new in Xcode 16.3 and Swift 6.1? Static vs. Dynamic dispatching New: RocketSim AI Enjoy this week's SwiftLee Weekly! THIS WEEK'S BLOG POST SwiftUI Grid, LazyVGrid, LazyHGrid Explained with Code Examples SwiftUI offers a Grid view, but it also comes with a LazyVGrid and LazyHGrid. Do you know when to use which? SPONSORED Discover the Top 10 Best Practices in App Distribution Appcircle seamlessly integrates the best app distribution practices into your...

This week's SwiftLee Weekly covers: SwiftData's ModelActor is weird A new FlowNavigation library for SwiftUI Why you should avoid using Group in SwiftUI Enjoy this week's SwiftLee Weekly! THIS WEEK'S BLOG POST SwiftUI TabView: Explained with Code Examples A standard TabView in SwiftUI isn't that interesting, but have you already played around with the sidebarAdaptable style and sections? I love how easy it has become to create this kind of navigation. SPONSORED Capture, Debug, and Optimize...