How can we compare two objects with unknown types? By leveraging latest Swift features!
Sometimes your memory can play nasty tricks on you… Let’s have fun with it by having a look on how we can mutate… immutable properties!
App signing is probably the biggest nightmare of iOS developers. Time to face your fear and master it!
Modeling is not an easy task, especially if you don't know there are many kind of models that exist! Let's explore them and how to use them.
Know why your view is not rendering why you think it should have.
Let's see why sometimes protocols are not the best option by sharing with you a few alternatives.
Let's have a look on how to DI Container can help us injecting our dependencies.
How to leverage SwiftUI and Combine capabilities to build a feedback UI component.
How Trunk based development can help teams in being efficient.
How to build a form in a way you probably never did it before: from Domain perspective instead of UI.
An easy way to share code across views and test your UI
Let's talk about how to build a type safe request for our network framework
Let's dive into some bugs you might encounter while developing with SwiftUI and how to resolve them.
2021 is coming to an end. A perfect time for me to share with you the tech choices I've made over the year.
Bring URLSession to a whole next level
How you can make your Publishers functional and simpler than ever by just following a few tips.
Today let's dive in Cocoapods and how we can gracefully handle our build scripts thanks to script phases feature.
Let's see how we can use Swift Argument Parser to write powerful scripts for our applications.
Let's see how organizing our views into stateful and stateless views can greatly simplify our codebase.
After making our blog with Publish it is now time to publish it using Github Actions!
Let's have a look to how handling optional content in SwiftUI without relying on heavy `if let` everywhere in our codebase.
In these series of article I will tell you about the tools I used in order to make SwiftUnwrap. Let's start by having a look to Publish.
Let's see how we can avoid building non valid objects that would break our app by using self validation when dealing with complex objects like phone numbers or IBAN.
If you started to play along with SwiftUI, chances are you used List quite a bit in your code. And you probably had some unexpected challenges with it. So today let's see how to fix them in iOS13 and... iOS14!
Let's have a look to what is dependency injection and what we need to do to ensure our code is ready for injection before using frameworks like Swinject.
Since iOS8 a new class for building urls made it to Foundation: URLComponents. While convenient it has some subtilities about encoding that you should be aware of.
Fastlane is a very famous and useful tool but do you know how to use effective environments within it? Let's have a look!
Let's see a small tip helping us having a Binding which can change over time when interacting with a SwiftUI preview.
I see many developers adding too many code inside their ViewModel ending with a Massive ViewModel 🦛 while one of the first reason to use it was to actually avoid... Massive ViewController 🤷. Why is it happening? I think it is coming from one simple reason: they forget to think about Separation of Concern.
Models are the core of our applications and need to be defined with care. Yet they very often transform themselves into big monolithics becoming more and more complex while being less and less easy to use over time. But why is that?
When working on your project you often need to switch environments. Whether it is check a bug on production or to use the latest API on your dev server this is a quite common scenario. But doing it properly and easily in iOS has always been challenging. Let's see how we can handle it.
Welcome on SwiftUnwrap, yet another blog about Swift but also about design patterns. Throughout my years as a iOS developer I had the opportunity to build architectures for many apps and experiment a lot of things. Some were good choices, some other...