Advertisement
![What’s the difference between any and Any?](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1712678134626-TGN6E9WF24QOGH8A9L6Y/any+vs+Any.001.png)
What’s the difference between any and Any?
![How to test Push Notifications in the simulator](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1712592759146-MFBL4FFY3JTGNK0KL0FJ/NotificationSimulator.001.png)
How to test Push Notifications in the simulator
![Swift has more formatters than you know!](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1711472237329-LDLWN4ERCSMQM12QB0UJ/formatters.002.png)
Swift has more formatters than you know!
![Using a Swift macro to generate an EnvironmentKey](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1711369002637-OEZAV12VB3B5LB8ETEB8/EnvironmentStorage.001.png)
Using a Swift macro to generate an EnvironmentKey
![Do you know what .layoutIfNeeded() actually does?](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1710668141140-FIE8J0QMPMDCM15AIQNR/layoutIfNeeded.001.png)
Do you know what .layoutIfNeeded() actually does?
![I can teach you the basics of UIKit in 2 hours 👩🏽🎓👨🏻🎓](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1710158288309-V45QUVGD3XWEHTD0FC9R/Article-Newsletter.png)
I can teach you the basics of UIKit in 2 hours 👩🏽🎓👨🏻🎓
![Be careful when using .onTapGesture()](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1709658493796-U142WX0XZ24UGOXFRF1I/onTapGesture.001.png)
Be careful when using .onTapGesture()
![How to easily test In-App Purchases 🛍️](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1709553985731-T31QNFWCXYGZOFK7IHSO/Article-Newsletter.png)
How to easily test In-App Purchases 🛍️
![How to mock any network call with URLProtocol](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1709485619608-FQNTVI1SVHVSIPK7NTTU/URLProtocol.001.png)
How to mock any network call with URLProtocol
![When should you use a hybrid framework? 🤔](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1708947436039-DQUPIXH6VFA65641CRXE/Article-Newsletter.png)
When should you use a hybrid framework? 🤔
A couple weeks ago I did a livestream and someone in the chat asked me a very interesting question:
What’s your opinion on using hybrid frameworks to develop apps?
It’s a question that’s actually quite common and I’ve realized that I’ve never created any content on this topic!
So it’s time to fill that gap, here’s my answer to that question.
![Bad practice: not using .isMultiple(of:)](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1708451397289-S9QQT60LTMNORT6WRXL2/isMultipleOf.001.png)
Bad practice: not using .isMultiple(of:)
![How to write safer code using the Lock 🔒 and Key 🔑 pattern](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1708018203772-5LHN0P4W07ZKPQ5E29X9/lock+key.001.png)
How to write safer code using the Lock 🔒 and Key 🔑 pattern
![Bad practice: using .lowercased() to compare strings](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1707248727434-44T2ST8BPKD0KJ17L6PM/case+insensitve.001.png)
Bad practice: using .lowercased() to compare strings
![Do you know what translatesAutoresizing MaskIntoConstraints actually does? 🤨](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1707162344127-QSFRVSRBWROICR7AT8BP/Article-Newsletter.png)
Do you know what translatesAutoresizing MaskIntoConstraints actually does? 🤨
If you’ve ever written programmatic layout code with UIKit, you already know that if you forget this line, it’s guaranteed that your UI will break.
But have you ever wondered why that’s the case?
What does this line exactly do?
And what’s this “autoresizing mask” that it mentions?
![How to make a completionHandler much safer](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1706636790714-WNWMV4X9IFDCGS6WJ9R0/defer+%2B+completion.001.png)
How to make a completionHandler much safer
![How to give great answers to technical interview questions 👩🏽💻👨🏻💻](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1706528272906-MRDYDQTTGWM1872WLTK1/Article-Newsletter.png)
How to give great answers to technical interview questions 👩🏽💻👨🏻💻
Going through a technical interview is a stressful experience 😣
Between the interviewer that tries to evaluate your skills and the pressure of trying to land a job, it's very easy to stumble and deliver subpar answers 🫠
So I want to share with you a simple 3-step framework that will help you answer interview question in a way that feels clear, structured and impactful 😌
![Bad practice: loading a large image on the main thread](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1706283321158-D5B1PZQXQAMWL6OEYDNT/prepareForDisplay.001.png)
Bad practice: loading a large image on the main thread
![Hidden feature: subscript](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1706282158351-EQIDCL80QI2CQN385QKM/subscript.001.png)
Hidden feature: subscript
![How to write Unit Tests for Code Performance ⏱️](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1704822538381-HYHQ42SL4YY8TV6TDJVD/Performance+Test+Xcode.001.png)
How to write Unit Tests for Code Performance ⏱️
![How to easily debug your network code 🛰️](https://images.squarespace-cdn.com/content/v1/63139bb1e1a1a078e071f30c/1704721721963-VGT6C19G93876FMSP7J3/Article-Newsletter.png)
How to easily debug your network code 🛰️
Debugging network code can be a pretty frustrating experience…
But did you know that there are tools that make it easier?