
iOS Databases in 2026: The Complete Guide
SwiftData, Core Data, GRDB, Realm - which one to choose? Surprising facts, hidden pitfalls, and the brutal truth about each solution. Benchmarks, decision flowchart, and common mistakes you can avoid.
Technical articles about iOS development, Swift, SwiftUI, and mobile app development best practices.

SwiftData, Core Data, GRDB, Realm - which one to choose? Surprising facts, hidden pitfalls, and the brutal truth about each solution. Benchmarks, decision flowchart, and common mistakes you can avoid.

From MVP + Coordinator + UIKit to Clean Architecture + SwiftUI + MVVM + Tuist. A practical guide to incremental migration using the Strangler Fig pattern. What to avoid, where to start, and why a big bang rewrite is a recipe for disaster.

Actors in Swift were supposed to be the answer to data races. In practice, they introduce subtle pitfalls that catch even seniors. Reentrancy, actor hopping, false sense of security with @MainActor - here's what to avoid.

In this article, I wanted to highlight the pitfalls in SwiftUI. It's a deeper look at how the framework works under the hood and the mistakes that can cost you hours of debugging, or worse, go unnoticed until users start complaining about a laggy interface.

Recently, wanting to expand my skill set, I decided to take on web development. For a long time, friends had been asking me if I do this, or if I know someone who does. This motivated me to dive into the topic and see if it's for me. It turned out that web development is quite enjoyable.

Every iOS developer knows this moment: you start a new project, open Package.swift and wonder whether to add a library or write it yourself?

Back when I was starting out as a junior iOS developer, I often found myself in a situation where QA would report a bug, I'd fix it, and two more would appear in its place. I kept wondering - was I just that careless, or was the problem somewhere else entirely? The answer came with time.

A pragmatic approach to state management in iOS without vendor lock-in. ViewModels in classic MVVM often evolve unpredictably, and in this article I show how to control that.

After more than 8 years of iOS development, I've learned to appreciate architecture that serves the team and project, not the other way around. Some time ago, I joined a project where the app was written in The Composable Architecture (TCA). After several months of challenges, we decided to rewrite it using Clean Architecture. I want to share what this taught us.