Advertisement

Bad practice: using "YYYY" to format a Date

How to get started with The Composable Architecture 📱
Are you looking to learn how The Composable Architecture (or TCA) works?
As it turns out, learning TCA might be easier than you think!

Did you know that Xcode has a search history? 💡
I’m sure you’ve already used the search feature in Xcode.
But did you know that it has a hidden feature?

Hidden feature: typealias

Swift has more formatters than you think! 🤯
If you have some experience with iOS, I’m pretty sure you’ve already used a DateFormatter or a NumberFormatter.
But did you know that Swift has more formatters than just these two?

Bad practice: not using PersonNameComponentsFormatter

Here are 8 tips to design a great paywall 🤑
For subscription apps, the paywall is very important because it’s basically the salesperson of the app.
That’s why such apps spend a lot of time trying to optimize their paywall as best as possible: the better a paywall is, the more revenue it generates.
So let’s go over 8 tips that will help you design a great paywall 🚀

Are optional closures escaping or not? 🤨
Have a look at this function: func f(_ closure: (() -> Void)? = nil)
.
Would you say that the optional closure is escaping or not?

Hidden feature: initializers

Have you ever used Multiple Cursors in Xcode? 🤨
Last week I’ve told you about the advanced features of breakpoints in Xcode, and this week I want us to stay on the topic of little-know features in Xcode!
This time we’re going to talk about multiple cursors and how they enable us to quickly edit repetitive pieces of our code.

Bad practice: not using UIAction

Discover the advanced features of Xcode’s breakpoints 🐛
Nobody wants to spend their day adding breakpoints here and there, to try and piece together the reason why something is not working as it should.
So I want to walk you through the advanced features of breakpoints in Xcode: this way the next time a sneaky bug comes along you’ll be well equipped to track it down fast 😌

Hidden feature: final

How to write tests that detect memory leaks 💦
Memory leaks can cause a lot of damage and they are often very hard to fix 😔
That’s why I want to show you a nice little trick that will let you write tests that can detect memory leaks!

Bad practice: not using multiline strings

Hidden feature: enum

Here’s a great use case for Parameter Packs 🤌
Have you heard of a new feature of Swift called Parameter Packs?
I want to show you a use case where they really shine!

This small mistake will crash your SwiftUI app 🧨
SwiftUI feels like a pretty safe approach to build your app’s UI, doesn’t it?
But did you know that a small syntax error has the potential to completely crash your entire app?

Bad practice: not using Phantom Types

Here are 8 tips to optimize your iOS app 📱
Last week I’ve released a video that I was really excited about, because it focused on a topic that I had never really covered on my channel until then: How to optimize the performance of iOS apps!
The video was received very positively, so I figured that it could be worth it if for this week’s email I wrote an outline of all the tricks!