Software (iOS) Development Engineer @ Dream Broker, Helsinki, Finland

The most famous of the SOLID principles and how it can change your mind set.

When it comes to discussing the SOLID principles the first one that usually comes to mind is the Single-Responsibility Principle, or just SRP, the first letter of the acronym. It’s become so obvious, that no one really ponder it anymore, its importance is just taken for granted nowadays.

Here’s its original expression by Robert C. Martin (a.k.a Uncle Bob:)

A class should have only one reason to change.

Image for post
Photo by call me hangry 🇫🇷 on Unsplash

In my early programming days I was so impressed by this simple idea, that it became my working mind set. Now it means for me much more than just “write small, testable classes”. I believe it can be applied to literally any aspect of the software development. …

Modern iOS development tools, such as SwiftUI and Swift Package Manager, through the prism of real-life app development.

Image for post
Photo by Martin Sanchez on Unsplash

W hen iOS 14 was released, it became the second iOS’s major version that supports SwiftUI. It means that, in theory, you can use it in commercial app development while supporting two last major iOS versions. Although it’s true only for the first SwiftUI version, I wanted to give it a deeper try for a number of reasons. The most obvious one is that SwiftUI and its satellite tools are considered as the future of the iOS software development.

The so-called SwiftUI 2 is more mature, not to mention it contains more useful features. And most importantly, using SwiftUI 2, apps may be built without a single line of UIKit code. In a year or another it’s likely we developers will stop using the latter at all. …

Common mistakes of transition to the Agile workflow and why should you care about them.

As a reputed coach and consultant James Schiel said, a lot of agile organizations instead of being truely agile just using right words. The cause of that is general misunderstanding of the idea of what the Agile method actually is. This leads to a set of mistakes in organizing software development process. In this post I tell about six ones I’ve been coming across most often and of which I think as of the most common and yet crucial.

Image for post
Photo by Ashes Sitoula on Unsplash

1. Misinterpretation

People who got used to work with exhaustive requirements often interpret the word Agile wrongly. Programmers think that they are allowed to do anything. Testers are sure that they will need to re-write test cases every day because requirements will also change every day. But in fact, the Agile methodologies teach us how to get by under volatility: to respond to changes and to re-arrange plans, to meet user’s needs and to deliver product by small chunks. …

Don’t read them all. Pick a few just for you.

I often notice that people don’t read much. I’ve been thinking that there’s something wrong with that. Not that those people are wrong, of course. There are just too many books out there and sometimes it’s hard to pick the right one.

Image for post
Photo by Susan Yin on Unsplash

I’m the opposite, I read a lot. And I can’t say that every book I’ve read is worthwhile (in my case, of course). In this post, I share a list of very remarkable ones and tell you about them in a few words. So, you’ll be able to choose the right one for you.

1. Code Complete. Not Only the Basics.

Code Complete. A Practical Handbook of Software Construction by Steve McConnell

This is one of my first programming books and I still keep recommending it to everyone. And for a good reason. This book will teach you everything but specific technologies and programming languages. …

Here’s my way across verious design patterns to my current shelter

There are a lot of posts about how to implement one design pattern or another. I’d like to clarify immediately that it’s not one of them. This post doesn’t explain patterns, but instead, requires reader to have some basic knowledge about them.

What I’m talking about here is my way across various design patterns to my current shelter. And the trip begins with a rather infamous one.

Image for post
Photo by Anna Lazareva-Zubova

Model-View-Controller (MVC)

A practical guide to the world of Agile.

Agile practices have been arising and evolving since the 1980s. But the real impact on the new philosophy was given by the Agile Manifesto, which had taken shape by the beginning of the 2000s. A little bit of hype and everyone rushed to proclaim themselves agile. Even without thinking of whether it’s true. The emergence of frameworks such as Scrum influenced the phenomenon even more. But in fact, most of those adherents just shortened time periods (e.g. sprints) on which they had been dividing their working processes. Hence, the Mini Waterfall — it was all the same. …

Many code-style guides exist. Which is the right one for you?

Image for post
Photo by Clark Van Der Beken on Unsplash

I’ve always been a person who pays attention to detail. When I read someone else’s code I always notice its formatting inefficiency, inconsistency, or, sometimes, even ugliness.

The advantages of good code style have been stated many times. In a nutshell, programmers spend more time reading other people’s code than writing their own. That’s why it must be readable.

I have my own Swift code style guidelines which have been evolving since my very first line written in Swift. It stayed with me when I switched projects and it’s never failed me. …

How writing blog posts can boost your skills and how to find an appropriate topic.

I write a lot. I love doing it because it makes me feel smarter — likely a bit smarter than I actually am. However, it’s not the only benefit from the process and its result, although rather considerable one. So, why do we write? Why oftentimes we don’t want to write? And why the heck don’t we do it even when we feel a desire to?

Image for post

Why Do We Write?

Aside from pure egotism, we all want other people (friends, colleagues, competitors) to appreciate our achievements. …

Algorithms — one of the main topics of programming, they are everywhere (especially in job interviews, haha).

Algorithms everywhere meme
How can one possibly do without an old joke in such a post?!

One of the most famous is so-called the Euclidean algorithm — perhaps, the most common way to find the greatest common divisor (GCD) of two non-negative integers. They also love to start learning (and teaching) corresponding mathematics and computer science sections.

Donald E. Knuth, the notorious author of the treatise The Art of Computer Programming (but not only this one), thinks that it’s the first algorithm at all. Because although the algorithm was invented and had been used before Euclidus (who lived in IV-III centuries B.C.) …

This time I’d like to talk about another creational design pattern from the Gang of Four’s arsenal — Builder. As it turns out, while having gained my experience I rather often have been caming across this pattern in Java code in general and within Android projects partucularly. But in iOS projects, both Swift and Objective-C, the pattern has been seen quite seldom. Nevertheless, considering its simplicity, the pattern might turn up pretty convenient and, as it’s fashionable to speak, powerful.

Image for post

This pattern replaces a complex initialization process with step-by-step object construction which is finished by a finalizing method at the end. …

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