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…
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…
If you've been a software developer for a while, you've likely heard about the Keep it Simple, Stupid (KISS) design principle. It suggests that our systems should be implemented in the simplest way possible across all application layers: persistence, services, business logic, and the UI. For all non-user facing app…