Give your simulator superpowers

RocketSim: An Essential Developer Tool
as recommended by Apple

Issue 77
Aug 24, 2021

What comes after async/await?

It's been 4 years since the first release of the Swift Concurrency Manifesto, which was the starting point for many of us Swift developers to look ahead for async/await during each WWDC and each new Swift release.

Now that the new concurrency changes arrived, it's time to look ahead: what will be next?

Reading SE-302 this week was super interesting as its motivation section covered a lot of ground related to the future of Swift after async/await. Quoted from this proposal:

"A key goal of the Swift Concurrency effort is to 'provide a mechanism for isolating state in concurrent programs to eliminate data races.'"

After reading this, I'm looking ahead now for Swift to make our lives even easier, eliminating more bugs with compile-time checks and new Swift features. Actors are a great start, combined with async/await, but I can't wait for what's next.

Crashes that don't make sense, bug reports that are not reproducible, and weird EXC_BAD_ACCESS or hard to fix deadlocks. Will this ever belong to the past? Let's hope.

Enjoy this week's SwiftLee Weekly!

THIS WEEK'S BLOG POST

The @AppStorage property is great but not always as flexible as I wished. Therefore, I decided to list the requirements and revisit the app storage property wrapper by creating one on my own. Combining techniques like the DynamicKey protocol, accessing enclosing property wrappers, and Combine results in a more flexible solution.

SPONSORED

Tempo helps reduce the number of distractions caused by email. We deliver new emails in batches around a customisable schedule, giving you control of when you get notified to sort through everything that's new. Currently available for Mac & iOS. Try Tempo today for 14-days.

GIVEAWAY

Last week's edition contained the first giveaway, allowing you to win a ticket for the Swift Leeds conference. With 416 entries, the giveaway was quite a success. A random winner has been chosen: congrats to Wesley De Groot 🥷 for winning the ticket!

INTERVIEWS

Last week, I was invited to chat with the Ios Academy to cover making decisions during development, the history of Swift development, and looking ahead to what Swift will bring us in the future.
This week, I joined John Sundell to discuss Swift’s latest features. We cover a lot of ground, including the new concurrency changes and a few lesser-known added functionalities.

CURATED FROM THE COMMUNITY

CODE

Andy Ibanez introduced me to this new property wrapper which seems to be an example of something you’ll find more useful as soon as you do more with async/await. It’s good to know it exists and how it works, and you might want to try it out soon to know how it can be useful for your projects.
New iOS releases require us to revisit ‘hacks’ to see whether they are solvable in a nicer way now. Bas Broek shares a great tip on simplifying this process by reminding ourselves automatically once a new iOS version drops.
It’s ambitious to say “every” because there are many, but Five Stars Blog comes a long way in describing each available SwiftUI environment value we have today. This might be one of those articles you want to favorite while developing apps with SwiftUI.
Another great open-sourced library from the team behind Point-Free. Several methods can help us during debugging, as the custom dump method, but I especially like the differencing capabilities which can be super useful.
I’m not sure whether I would ever build an app this way, but I learned we can now use the @main attribute in Swift packages, opening many doors. Alwaysrightinstitute explains to you how this works.
Curious to see async/await in action with MVVM? Check out this detailed video by Tundsdev covering much ground, including SwiftUI View bindings and setting up networking.

STORIES

You might have used the In Your Face app from Martin Höller before not to miss any meetings. There’s an interesting story behind the launch and lifetime of this app described in this article. A lot of learnings are shared for both Indie app developers as well as business app developers.
Kamil Tustanowski shares his experience of failing projects. It’s an interesting approach to an article contrary to similar articles, which often cover “How to succeed a project.” The great thing is, you’ll learn exactly the opposite of failing a project while reading this article.

SWIFTLEE JOBS

SoundCloud is the world’s leading audio platform, allowing everyone to share and discover unique content anywhere, anytime, on mobile and on the web. We are now looking for a technical...
Is your company hiring too? Post your job position for free at SwiftLee Jobs and reach thousands of developers.