Design patterns are solutions to problems that someone once had and solved by applying a model that has been documented and that you can adapt entirely or according to the need for your solution.

The original idea of Design Patterns came up with Christopher Alexander when he proposed the creation of pattern catalogs for architecture. Christopher himself defined the patterns in this way:

“A pattern describes a problem that occurs numerous times in a given context, and it also describes the solution to that problem, so that this solution can be used systematically in different situations”.

The main purpose of…


We all know the importance of writing unit tests. But we also have seen many people who say that they take time to write, some things do not need to be tested, and all sorts of things that divide developer’s opinions as much as the endless debate ‘storyboards vs. programmatic views’.

But leaving personal preferences aside, I believe people develop some resistance to determined things because they might not understand or take time to understand those things. And it happens with me regarding automated testing.

The tests are useful to get fast confirmation that the code written works as expected…


The world today is more democratic for those who want or need to use computers, more precisely those who need to make use of computer programs. But this was not always the case, and in part what made access to the computer world something a little simpler or less expensive was open source or open source software. But what exactly is it?

An open source project is, in short, a project created and maintained by the people who use it.

Let’s say you have an open source football field close to your home: one person will help you mow the…


Photo by Pankaj Patel on Unsplash

When we think about the software development routine, we can quickly identify that many times, the solution to a specific problem has identical characteristics, if not equal to that found in a previously developed project but the solution and the problem had not been documented. So, you are facing a similar problem, that was solved in the past, but there’s no record of how it was solved, making it extremely hard to reuse ideas and solutions. …


Microinteractions have become increasingly important in a world with a dizzying number of digital platforms and an ocean of content. While microinteractions used to be considered an interesting resource in the early days of digital design, in today’s hypercompetitive digital space they have become a crucial element in the overall user experience.

Basically, a microinteraction is a particular moment of a user’s interaction with a product in order to complete a specific task. For example, when someone presses a “Like” button (whatever it looks like) and sees that their action produced feedback — the number has changed, the color of…


A UIPageViewController is a very popular element in iOS Projects. It’s commonly seen in onboarding screens, but it has a ton of other uses.

Me and my friend Mauro Marques are using one for the onboarding screen of our app Hira, and while I was developing the beautiful screens desgined by him, I decided to register the proccess of implementing it using a Test Driven Development approach.

Just like the name suggests, the entire development is driven by tests. The cycle consists of four steps:

  • Write a test that is going to fail — (Red)
  • Make the test pass — (Green)
  • Refactor the code
  • Repeat

We’ll begin with an empty project, with an unit test target. I am not going to use storyboards, so…


Have you ever stopped to think about why you do what you do?

I think it happens with all of us, at different levels, of course. In iOS development it can happen too. You write some code, just for the sake of writing, and then ask yourself: why?

That’s what used to happen regarding initializers for me. I would write only because I know I had to, or because the compiler told me to do so. So I decided to do a bit of research, in order to understand a bit better about them. I will share my findings in this article.

So, going straight to the point. According to Apple docs:

Initialization…

Vinícius Leal

I am an iOS app developer. In addition to publishing 2 apps to the App Store, I was awarded a WWDC2019 scholarship. http://vinileal.com

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