You really don’t know the benefits of automation until you see it for yourself

Hopefully by the end of this article I would have convinced you to stop what you are doing and add some automation to your app/project.


A few weeks into this new freelance project, maybe a month, I set up a distribution process in Firebase so the client can start receiving frequent progress updates and provide feedback as soon as possible.

At the beginning it was all manual, archiving the only scheme (pointing to staging) from Xcode, exporting for Ad-hoc, uploading the .ipa to Firebase, and send…


Concurrency is a concept that every mobile developer should know. It is the notion of multiple things happening at the same time.

The key is to divide our program into small tasks that can run in parallel, and the final result shouldn’t be affected by the order of the task completion, meaning if task A finishes before task B, the outcome should be the same as if task B finishes before task A.

In the iOS ecosystem, there are several tools to achieve that:

  • NSOperation
  • NSThread
  • Grand Central Dispatcher
  • Reactive Programming frameworks like RxSwift, ReactiveSwift, Combine, etc

When dealing with…

At a company that I have worked in the past, a high-traffic online classifieds, the backend was transitioning from a monolithic architecture, to a micro-services one.

At the time I joined, the apps had to consume some endpoints from the legacy (monolith) backend, and some endpoints already migrated to the new backend. For example, getting the User’s details were on the old one, but getting the favorited items were on the new one.

The backend engineers haven’t considered the creation of a single interface in order to handle the login in both architectures, meaning the apps needed to authenticate the…

A few years back I joined the top 1 online classifieds company in the world. One of the first tasks I was given, was to reduce the app launch below the 2 seconds mark. The users were leaving comments on the App Store because the app was “slow”.

The app, as you can imagine, had a mix of Swift and legacy Objective-C code, 4000+ files distributed in 8 repositories (main app and 7 internal libraries). In addition to this, around 30+ third-party libraries, everything linked using Cocoapods.

A few months ago, I joined a fashion retail company owner of multiple unrelated physical stores. For example they have one store selling multi-brand premium clothing, another selling jewellery and accessories, luxury house furnitures and decoration, etc.

In the past, the company didn’t have a centralized IT team, and each store had the freedom of deciding the e-commerce platform, since they are treated as independent sub-company. They ended up having one using Magento, another Shopify, another Salesforce, etc.

I joined a newly created team, as the only iOS engineer, with the mission of providing common tech solutions across all the…

Alan Steiman

Senior iOS Developer • Digital Nomad • Extreme Sports

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