Issue 89
Nov 16, 2021

Non-fatals vs. Crashes, which ones are more important?

You could argue that crashes are more vital since they "break the app." However, non-fatals can break the app as well but are often recoverable.

This week at WeTransfer, we discussed our process around handling non-fatals, in which we agreed that we should handle them the same as crashes. With that, we mostly mean prioritizing non-fatals just like crashes and fixing them if they occur for many users.

If a non-fatal occurs a lot but does not become a reason for action, we consider logging such an error no longer. This way, we will end up with a list of critical non-fatal errors only.

In a way, this reminds me of many discussions around force unwrapping. Many engineers try to avoid force unwrapping as much as possible, prevent their apps from crashing. It makes it easy to say, "my app is 99.3% crash-free!". Though, does that mean your app is performing great? 

You should take non-fatals just as seriously as crashes since they likely hurt user experience.

----

This week is full of articles, so prepare yourself. Enjoy this week's SwiftLee Weekly!

THIS WEEK'S BLOG POST

Even though I'm an experienced engineer, I'm still learning quite a bit. Composition is one of those things I've been doing for a while, without really knowing what it means and how it works. I decided to write down my thoughts, combined with new learnings in this week's article.

SPONSORED

Firebase now offers enhanced support for Apple platforms, including beta-level support for tvOS and macOS. Deliver great cross-device experiences using Firebase products. For example, identifying critical crashes by filtering on device type or operating system using Crashlytics. Learn more.

CURATED FROM THE COMMUNITY

CODE

A fascinating article by Matt Ronge. Let me make one thing clear: it shouldn’t only be about the money. Though some of us need income from app subscriptions, for which data from this article might give you exciting insights—just switching to subscriptions? Matt wrote about that too.
If you’re just getting started, you’re going to love this list of resources curated by Alex Grebenyuk.
A great example by Peter Friese of how you can use View Modifiers in SwiftUI to make your code more readable and reusable.
I’ve linked John Sundell’s new framework in a recent issue already, but this time he wrote an article giving insights into how you can create a concurrent version of forEach and map. I found this inspirational for writing my custom concurrency solutions in the short term future.
Tjeerd In' T Veen gives us insights into different ways of testing and preventing issues from arising. I liked the software life-cycle graph, which made total sense to me! We're heavily focused on the left side at WeTransfer, partly by using Mocker, which this article mentions too.
Note to me since I definitely want to use this! Alex Grebenyuk shares a tip on how we can get a beautiful sidebar Developer folder with icon!

VIDEO

Although you might have read a lot about these topics through my dedicated concurrency category, you might prefer watching a video instead. Tundsdev published a great getting started video to help you kick off your journey into async/await, actors, and more.

TOOLS

I had not seen this article before, but it was fascinating to read! Not to confuse with MetricKit, this tool allows you to gather insights into your Xcode build statistics. Worth checking out if you need more insights for your team!

LEARNINGS

Jd warns you, a potential app rejection is around the corner.
Phased releases are tremendous and a default way of releasing for us at WeTransfer. Jared Sorge shares some insights into how phased releases work since it might not be apparent right away due to a lack of documentation.
If you’re interested in becoming a Swift instructor for a Swift academy, this might be your chance! If you’re ready to learn some Swift Fundamentals and looking for a course, check out this link as well!
TravelPerk built a Mobile Platform squad, and Luis G. Valle shared this article through Twitter in which they covered all highlights. An interesting read if you’re interested in improving processes for your Mobile team too.

MARKETING

An interesting idea by Jordi Bruin: closing Xcode and entirely focusing on App Marketing! I’ll be trying to join for RocketSim. Are you entering as well?
Excellent tips by Niels Mouthaan on increasing discoverability on the App Store. I recommend reading this thread if you want to optimize your app!

SWIFTLEE JOBS

Is your company hiring too? Post your job position for free at SwiftLee Jobs and reach thousands of developers.
TL;DR Build for macOS, iOS and iPadOS in SwiftUI. Salary £80k in salary and stock options + 0.25% equity in stock options Get good perks and work from a dope...
TECHSTACK: Swift, RX Swift, MVVM, Azure/Git, Scatch/Postman WAT GA JE DOEN? In de rol van iOS Developer werk je aan de mooiste apps binnen de Nederlandse markt (vinden we vooral...
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.