Here’s my second (traditional) newsletter 📮

First, I have once again a big thank you to all the people that attended my second “livestream newsletter” on Thursday ❤️

However, I know that this format isn’t for everyone, so here’s the traditional e-mail version of my newsletter 💌


I have a big thank you to the sponsor of this new issue: Runway ❤️

Runway is a better way to automate and collaborate on iOS releases, from kickoff to rollout and everything in between.

Check out their website 👉 https://get.runway.team/ios


How to use async/await with completion handlers

async / await has been part of Swift for more than 2 years, but I’m sure you still need to deal with code that uses a completionHandler from time to time. So here’s a guide that explains how to easily wrap such code and make it work with async / await 👌

Understanding Swift Concurrency’s AsyncStream

Now that you know how to bridge a completionHandler with async / await, you might curious how to proceed with more complex patterns, like a delegate? 🤨 The answer is to use AsyncStream, and here’s the guide on how it works!

Different ways to sort an array of strings in Swift

Sorting an Array seems like an easy task: just call .sort(), right? Turns out there’s a bit more to it, especially when you start to deal with special rules tied with the Locale of your user!

Observing the content offset of a SwiftUI ScrollView

If you’ve used ScrollView in SwiftUI, you’ve probably been amazed by how simple it is to setup, compared to our good old UIScrollView! But have you notice that there’s also no way to observe the contentOffset of a ScrollView? Here’s a clever trick to fill this gap 😌

Transitions in SwiftUI

Beautiful animations is one of the best way for your app to convey a feeling of high-quality. Luckily, SwiftUI makes it quite easy to animate the entrance or the exit of a View, through the use of a .transition().

That’s all for my second (traditional) newsletter, thanks for reading it ❤️

Previous
Previous

Only 15% of iOS developers get the right answer 😧

Next
Next

Discover CaseIterable