8 Books that everyone should read

Looking for new books to read?


What is programming?

For me it has always been about solving problems, and analytical thinking.

Does it matter what language or platform you solve problems on? How do you learn more on your selected platform?

Improve your iOS Architecture with FlowControllers

When working on iOS app, now more than ever one should avoid having view controllers pushing other view controllers around.


Little things that can make your life easier in 2016

As we are closing this year, let’s take a look at few simple things you can add to your iOS developer toolbox to make your life easier and be more productive in 2016.

Details matter - harnessing the power of Core Animation

A friend showed me animations from Stripe Checkout and asked: “how could we implement that on iOS?”

Quite simply, Core Animation is very powerful and if one learns how to harness that power, they do not need write a lot of code.

Writing Xcode plugin in Swift

I’ve found myself using Xcode a lot more than I did in Objective-C.

One of things I’ve missed a lot from my AppCode setup, is the ability to jump to specific file & line that logged a console message.

Because Xcode doesn’t offer such functionality and because I do not like to complain, I’ve decided to write my own plugin for it.

I wrote it in Swift.

The beauty of imperfection

Perfection is not something one can truly achieve, so it’s very smart that one of the best meditation services called Headspace is using an imperfect dot as their brand logo.

If you ever used their iOS app, you can notice how their dot slightly deforms, captivating your focus.

When it comes to graphics, if you are able to cheat (if user can’t tell the difference) and make tech stuff easier, just do it.

Swift init()

With Swift strong typing and immutability, there are rules that prevent you from accesing variables until an object is fully initialized.

I do not like having a function do more than one thing, so I like to split my initializers into multiple functions, this becomes problematic.

Tips for Interface Builder

Young developers are happy when they write a lot of code, they like to brag about that project that has tens of thousands lines of code they wrote.

As we get more experienced, we realize that code is expensive. It’s expensive to maintain, debug and reason about.

That’s why we should aim to use tools that can help us avoid writing boilerplate code, one of those tools is Interface Builder.

Here are a few of my favourite tips & tricks.

Prototyping floating burger menu with CAShapeLayer

Reproducing above effect is very simple with CAShapeLayer and CoreAnimation…