Give your simulator superpowers

RocketSim: An Essential Developer Tool
as recommended by Apple

Issue 78
Aug 31, 2021

Is our async/await dream becoming true?

This week, a pull request with the title "Add an option to build the concurrency library for back deployment." got merged, which means we should look forward to the release notes of the next Xcode beta.

It's not confirmed to be actually true, but it seems that the development team is taking backward compatibility for the new concurrency changes seriously. 

This week's article is all about dropping OS versions and adopting new APIs. The same question arrives when the new concurrency changes become available. Until now, it wasn't really a discussion whether we should implement it at WeTransfer, as the APIs were iOS 15+ only either way. However, it seems that we can decide whether or not we want to migrate our code to use async/await.

Obviously, it's not that simple to change and refactor everything in existing projects. For us, the minimum to do is making sure often-used frameworks like our Networking package adopt and provide async/await as an alternative to existing methods. This way, we can progressively use async/await in new classes and structs we're creating.

Let's hope together for a new beta making our dream actually come true.

Enjoy this week's SwiftLee Weekly!

THIS WEEK'S BLOG POST

iOS 14 was released on the 16th of September, while iOS 13 was released on the 19th. You could argue we're only 3 weeks away from the final release of iOS 15, which means that we need to decide which minimum iOS version to support. To help you with that decision, I wrote down my thoughts and shared my tips.

SPONSORED

See how Firebase tools like Crashlytics, Remote Config, Performance Monitoring, and App Distribution can help you to track and fix stability issues in your app, and pinpoint performance issues early. Learn more

CURATED FROM THE COMMUNITY

CODE

When Donny Wals writes a full article only covering AnyCancellable, you know it’s going to go in-depth. Join Donny on his trip through several documentation quotes and underlying explanations on how cancellable in Combine works.
I know about file wrappers, but I never realized how to deal with them in code. The title of Swift Dev Journal’s article states SwiftUI, but the code examples in this project are perfectly usable outside of SwiftUI too. This might not be useful for all of you, but it can be interesting if you work with many files.
The new concurrency changes are often linked to “how would it work with Combine?.” John Sundell does a great job explaining both async sequences & streams while also explaining how to combine Combine with async sequences.
I really enjoyed reading this article by Kamil Tustanowski. The Vision framework is not something I’ve used often; I’ve only seen it passing by in our WeScan project. It’s incredible what we can do nowadays with default-provided APIs.
I find this article by  Joe Fabisevich quite inspiring as we deal with generic solutions for app-theming quite often at WeTransfer. We’ve written something similar, but yet, it’s interesting to see Joe’s solution!
Ole Begemann with a beautiful overview of numeric protocols in Swift. Have you used all of those protocols already?

PRODUCTIVITY

A short but neat little tip by Dominik Hauser helping you out in those cases where “Will attempt to recover by breakpoint constraint” revisits your Xcode console.
You might have read my article covering Google tips for productivity before, but this list by Chris Hladczuk is super useful too and adds quite a few extra tips to help you speed up.

SWIFTLEE JOBS

Is your company hiring too? Post your job position for free at SwiftLee Jobs and reach thousands of developers.
Playground is looking for iOS Software Engineers (all levels) to build the next generation of shapeable, intelligent products. Join the team in London 🇬🇧 or remote 🏝.
Work with Swift, SwiftUI, and Combine in a project that’s fully written in Swift. A modular foundation built with Swift Package Manager makes it a great project to work in.