How do you build different versions of the same app from one codebase?
You use build types, product flavors, and variants!
Let's explain the concept and dive into some examples.
What is a build type
A build type defines how the app is built.
T...
Supporting older operating system versions is often seen as a safe and user friendly choice. The assumption is simple. The more OS versions you support, the more users you can reach. In practice, the cost of backward compatibility is rarely visible a...
Keeping up with mobile development requires a steady flow of high quality information. RSS feeds are still one of the best ways to follow platform updates, deep technical articles, and long form insights without relying on social media algorithms.
...
In Part 11 we built a clean networking layer using Swift’s modern concurrency and URLSession. The example endpoints were public and didn’t require authentication. Real-world apps, however, usually require you to authenticate users and attach short-li...
Networking is at the core of most iOS apps. Almost every modern application needs to talk to remote services, fetch or send data, and present fetched information in real time. This makes it essential to have a reliable, safe, and maintainable approac...
If you’ve been using Xcode for a while, you’ve probably noticed that it eats up storage on your Mac at an alarming rate. Between old device/OS support files, derived data, caches, logs, and archives, it’s not unusual for Xcode to consume tens or even...
Apple releases new Xcode versions frequently, often requiring developers to switch between stable, beta, and older versions for compatibility testing. Xcodes.app1 is a simple yet powerful macOS application that allows you to:
Easily install and mana...