Photo by Kyle Glenn on Unsplash

Have you ever wondered how Alamofire extends native elements by attaching a domain-like suffix .af to Foundation objects (e.g. URLSessionConfiguration) instead of adding the desired functionality directly? Or why RxSwift (shout-out to Shai Mishali 👋) extends every component of UIKit by adding an .rx extension? In this article, I’m excited to share the answers to these questions with you.

Building our own framework extension

There’s no better way to explain things than by showing an example. So, let’s build a framework suffix extension of our own!

We’ll start by creating a wrapper that is expected to hold extended types:

Writing tests has always been a nontrivial task, especially if the code you are testing is mainly asynchronous (i.e., a tested method receives callback as one of its parameters). Although a callback-style function invocation is entirely appropriate within a program, this style doesn’t fit so well into a unit test environment.

The Definition of Clean Unit Test

I strongly believe in the rule of thumb that a unit test should be as simple as possible. It has the word “unit” in the definition for a reason: to emphasize that it shouldn’t be complicated. Based on my experience, a well-written unit test is:

1. Non-nested

If possible…

The Factory Method has been a well-known and broadly used pattern amongst developers for quite some time. If you’re completely unfamiliar with the pattern, I recommend first read this explanation, maybe look at its implementation in Swift, and then return to this article, in which I’ll show this pattern in a slightly different light.

The first association which comes to mind when you hear the word “Generics” is “strongly typed”. Therefore, you would probably ask: “What does Factory have to do with Generics? Isn’t the pattern, in all its variations, implemented using pure abstractions?” And you would be right, my…

I am going to introduce you to my short scripts, written on bash, for creating fat frameworks, libraries and xcframeworks. Those of you who have encountered with 3rd party code distribution on iOS must have heard those terms and must know that this topic is nebulous and ill-defined. Apple also doesn’t provide clear documentation on how to create these frameworks as they do for other subjects (at least I haven’t found any). However, even if you haven’t been exposed to these terms before, I hope you will still find this article relevant and it will serve as a useful reference.

Hi there! How many times you’ve asked yourself if there’s any b̵e̵t̵t̵e̵r cleaner way to write your application logic not only using if-else statements? Good news, in Swift, there is one indeed! And that’s using swift protocols extension power combined with generics. Let’s look at the example.

Before we start, a little preamble. Not a long time ago, my fiance left for a couple of days to visit her family abroad. While missing her a lot, I created this little Playground:


Hi, guys! I’d like to share with you a little shell script I prepared. It’s short and simple, but like any useful script, it can save you time by doing a daily routine for you. I’m talking about opening Pull Requests, or to be more exact git commands probably anyone will run before opening PR.

German Velibekov

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store