I’m Ivan. I write here about iOS, Swift and soft skills.

Update existing library for async await


Async-await is a great new way to work with concurrency.

Let’s add async-await support for Apexy – library for organizing a network layer. The changes I describe you can find in this PR.

Read more ⟶

Writing SSL-Pinning by yourself


SSL Certificate Pinning is a mechanism that can be used to improve the security of a mobile app network connection. Pinning allows you to protect your users from man-in-the-middle attack (MITM). Yes, iOS/macOS/… and HTTPS have a high-security level, and you can’t read a whole HTTPS traffic of apps of someone’s iPhone. But it’s recommended to implement SSL-Pinning for financial or medical services because users’ data must be protected from such attacks. So let’s dive into how easily you can protect your users and what disadvantages it has.

Read more ⟶

Once again about code signing


Button angry person

Signing your apps can be complicated. And we understand this.

Code signing becomes automatic since 2017 and Xcode 8 release. It’s 3 years ago. Before that was not the easy thing to manage certificate, provisioning profiles dances for many iOS engineers. I’ve eaten dog not once on it while working in a big team and someone can accidentally revoke your certificate. I blame Apple for this for years.

Read more ⟶

Modular iOS architecture. Our way.


Header image

Here at Redmadrobot, we try to deal with serious businesses and long-term projects. So many of our clients work with us for years while we as developers improve functionality by new features. We need to refactor our code base from time to time, support new iOS versions to be on the edge.

Read more ⟶

Resumable file upload


Header image

In one of our mobile apps client wants to upload a big size file to a server. The main requirement was to resume upload after connection lost. Also if a connection is poor, it can be interrupted by timeout.

Read more ⟶

Finding ideal architecture


Header image

For 9 years since Redmadrobot was founded, year by year, day by day there were more features in our applications. That’s become easier to get confused with. When engineers became more than a dozen, there was another problem — how quickly swap people between projects. Outsource development has strict deadlines, and engineers have no months or weeks to dive into specifics of a new project, whilst it’s unnecessary to let people work on several projects through their career because they don’t get bored and develop new skills.

Read more ⟶

Anti-fraud with AVSession


anti-fraud sign

In one of our apps, I should do something called “hidden photos”. I’ll explain it. This is not spying for our users for sure. This feature was implemented for an enterprise application, users as employees use a camera in the main process of their job. So our client wants to be sure they don’t trick and make real photos of real objects. The real scenario is to make hidden photos every 10 seconds.

Read more ⟶

Should I speak at a conference?


Craig Federighi at Apple

Next, you will read my thoughts about public talks as an engineer. Many of us like to visit conferences. The luckiest ones were at WWDC, F8, or Google I/O. It’s great to learn something new: about apps, architecture, motivation, and so on.

Read more ⟶

Coaching is not waste of time


Baby

As a software engineer I like to coach less experienced colleagues and interns. Sometimes more, sometimes less. Our company has internships for 2 years and I actively participated in it.

Read more ⟶

Writing tests is more simple then you think


Rocket on launch

Do you write tests on your project(s)?

If not, you probably try to find reasons why you don’t. If you do, send this article to your friends who don’t.

Read more ⟶