• 2023-11-10
Why mobile apps need a good abstraction?

Imagine you’ve just implemented a nice feature. Cleanly separated UI from business logic, added some unit tests, etc. Surely, code review would be a formality. Instead, this insufferable Senior Dev requested that you wrap one of the services with abstraction. Surely, you’ve read somewhere that you should operate on abstractions…

  • 2023-08-09
How to implement scalable and testable SwiftUI navigation?

Although SwiftUI is a great framework, it’s not without its limitations. If you’ve ever had to implement a complex application, utilizing branching navigation flows, you probably know what I am talking about. Yes, navigation components in SwiftUI have been a constant source of headache…  An iOS 16 addition, the NavigationStack,…

  • 2023-07-11
Why is code quality crucial in iOS apps? Explained with memes.

How much is it going to cost me to implement these Unit Tests?Is this refactor really necessary? Money doesn’t grow on the trees, you know… As mobile devs we’ve heard similar questions more times than we care to remember. Whenever we brooch the subject of improving the quality of our…

  • 2023-06-09
How to test UIKit & SwiftUI views? Explained with memes.

The benefits of having an exhaustive automated tests suite are obvious to anyone who ever worked on an app for more than a few months. We’ve all seen what lack of code maintenance might do: duplication, hidden side effects, convoluted business logic. A project codebase is like a garden -…

  • 2023-05-01
How to implement universal networking module in Swift (pt.2)

Let’s pick up where we left off! So far in part 1 we’ve discussed how to make a universal and robust networking client. Now, let’s take a look at how we can make it even better. Arguably, the most important feature of any universal tool is extendibility. We cannot account…

  • 2023-04-10
How to implement universal networking module in Swift (pt.1)

What’s the first service you usually implement in an app? It’s either networking or storage, right? And when it comes to networking, what are your choices? Most people either operate on URLSession directly, leveraging its multiple APIs, or add a 3rd party library like Alamofire.  But there is also a…

  • 2023-03-21
Why should you KISS your SwiftUI views? Explained with memes

What are KISS SwiftUI Views? If you’ve been a software developer long enough, you’ve surely heard about the Keep it Simple, Stupid (KISS) design pattern, right? It states that we should implement our systems the simplest way possible across all the application layers: persistence, services, business logic and the UI. …

  • 2023-02-11
App analytics – done the right (memical) way

A story of our lives… Imagine wrapping up an iOS app with only one feature left to implement: the analytics. The client’s marketing team chose a well-known framework that should be easy enough to integrate. They even provided you with a document describing which user actions to track! Nice. It…