• 2024-06-08
How to build a robust and scalable modular iOS app?

Recently, modularity has gained a lot of popularity in our field over the years. Architectures like TCA and VIPER pride themselves on their inherently modular design. Compared to a monolithic design, modularity offers various benefits: efficient work parallelization (especially in large teams), interchangeability, superior separation of concerns and responsibilities, and…

  • 2024-05-01
Why the best mobie apps need Software Craftsmanship?

What distinguishes a top 10% iOS developer? How can we draw parallels with the craftsmen of old? In what ways can we refine our skills following their lead? How should we select our projects, clients, and companies? Once involved in a project, how do we initiate change to ensure its…

  • 2024-04-15
When is Single Responsibility Principle helping us write better code?

How many responsibilities should a class have? As many as it needs! This is a common joke, but the reality often is far less amusing... How often do we encounter… “challenging” code annotated with "Do not change!!!" comments? Software development isn't rocket science. There are a few basic rules that most…

  • 2024-02-24
How to bundle assets in an iOS app?

Picture this: you're just dying to play a car racing game. After a quick scroll through the App Store you find the perfect one. It has cool graphics and some sweet retro cars to race. And it's even free! You're pumped, hit download and wait. Finally, you launch the game…

  • 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-09-18
Why every IT hero is forgotten? Explained with memes.

We absolutely must meet this deadline! Can you please do some overtime?Honestly, how many times did you hear that question throughout your career? What was your answer? If you said “no” did the business add any sweeteners?Only you can do it! You're my hero, the best developer I’ve ever met!…

  • 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…