Cross-Platform Libraries

Programmers are lazy. They really are, but in a good way. According to Larry Wall (you know, the Perl guy), laziness is one of the virtues of great programmers. Programmers do not like to repeat themselves, implement the same stuff over and over again, or waste time solving the same problems. But above all, they hate fixing the same bugs.

In theory, all that can be avoided by creating reusable code, and programmers do that a lot.

Continue Reading

How Does Super Work?

As Objective-C programmers, we encounter and use the super keyword on a daily basis. We know how it works and what to expect from it. Some metaprogramming approaches may, however, require a deeper understanding of its implementation.

Continue Reading

How Do We Hire the Best of the Best?

Last week I read a post by Laurie Voss (npm’s CTO) about the process of hiring good developers. There is some really good advice there, but the article also felt as if it described a world that was just a little bit too perfect. Maybe that’s the difference between the Apple universe and the Node universe, or maybe between the United States and Poland, but some bits and pieces of the article just didn’t stick. So I decided to write a few words on how we approach the process of hiring people. First of all, if you want to read what kind of questions do we ask at out technical interviews, Bartek wrote a good piece on it. Go ahead and read it, especially if you plan on sending your résumé our way. Here, I will try to concentrate more on the human and behind-the-scenes aspect of the process.

Continue Reading

Applications as State Machines

Applications tend to have a set of states with various transitions between them. Modeling them as finite state machines can help disassemble the problem of building the whole application into several separate smaller parts. This separation can be further improved by maximizing the hermetization of the resulting components. One possible way to reduce coupling between the modules is to abstract out the transition logic into a separate entity, which I call the TransitionController.

Continue Reading

Macoscope Objective-C Style Guide

Learning a new programming language can be daunting, especially if it relies heavily on a set of idioms or patterns you have never encountered before. Before you start writing good code in a new language, you first need to know what good code looks like. Having a standard style guide can help you get up to speed on best practices used throughout the community – and making it easier for new developers to join the platform is something we should all strive towards. At Macoscope, we believe in helping fellow developers out, an attitude which we hope is reflected by our small but constantly growing library of open-source code and our engagement with the community at events like Mobile Central Europe.

Continue Reading