Implementing fastlane in 50 lines of code

Fastlane is a tool used by almost every mobile developer. The main advantages are its simplicity, the time it saves us and the fact that it’s built on top of...

Types of types

Let’s talk about types and memory! In Swift a type can either be value type or reference type. Value types A Value type is a type that provides value semantics....

Linting licenses

Dependencies are at the core of programming. In iOS, we often use Cocoapods to manage dependencies in our projects. But if we are not careful, we can add a dependency...

Visit Monitoring

As Covid-19 started to spread, we tried to find a way to help as developers, with the tools at our disposal. One idea was to use out of the box...

Approaches to Type Erasure in Swift

Protocols bring a lot of power and flexibility to our code. Some might say that this is the most important feature of Swift, especially since Apple described it as “Protocol...

UIAlertController with Function Builders

I always found the UIAlertController API too verbose. You first have to create an instance of UIAlertController, then create multiple instances of UIAlertAction and finally add the actions to the...

An overview of reactive programming with Android

The Android platform is asynchronous by nature. And so are android apps. Information is flowing asynchronously through your app, from multiple sources. The system will trigger your broadcast receivers, forward...

How to make the best of protocol with associated types using type erasure

Protocols with associated type, first let’s see what Apple says about them: When defining a protocol, it’s sometimes useful to declare one or more associated types as part of the...

Why you should use TDD to build your app

To better code requires to be rigorous and methodical in testing. But it’s not easy to pick a test methodology. You may also ask yourself whether to write tests before...

How to leverage HTTP cache in iOS

One of the most difficult subject in programming is caching because there is no silver bullet to the problem and each solution comes with compromises. In this article I want...