Photo by Onur K on Unsplash

When developing software we find ourselves with the need to manage the changes that are being made in the code and that, when working as a team, all team members always have a copy of this code in which they can work and, later, integrate these changes. To facilitate this work we have version control systems, which allow us to track and manage changes that occur in the code over time: for this we are going to see the use of and the workflow with GitFlow.

Git is a version control software developed by Linus Torvarlds (the creator of Linux)…

Photo by Rick Mason on Unsplash

You can also find this story at

In a previous article, in which I introduce Flutter, I discussed the importance of widgets in Flutter. Let’s see how it is built in Flutter.

What is a widget?

We can think of widgets as reusable code blocks that describe the appearance of the user interface (UI). They do this based on their state, which, as we will see later, can be static (does not change) or dynamic (changes over time).

A widget can not only be a button, a text, an image … something that we would associate directly with a graphic appearance, but it…

Photo by RoseBox رز باکس on Unsplash

You can also find this history at

If you are like me, when developing an application you are always looking (although sometimes it is difficult) to use a series of ‘rules’ that help you to make the code cleaner, be as uncoupled as possible, be scalable …

In a previous article I already talked about SOLID principles and how to apply them with Swift. In this article I am going to discuss a pattern that will allow us to reduce the coupling of our code and that will make it more easily testable: Dependency Injection.

But, what is dependency injection?

If we go directly…

About 8 months ago I started publishing articles on Medium, since it seems to me a good platform to share my knowledge, what I am learning, with the hope that it can be useful to someone.

Publish0x discovery

Although my articles are basically focused on the development of mobile applications for iOS, about 4 months ago, during the confinement due to the Covid-19 pandemic, I began to be interested in the world of Blockchain and cryptocurrencies. It was at this time that I discovered Publish0x.

Publish0x is a blogging platform in which registered people (simply with an email, with Facebook or with…

Introduce ‘map’, ‘reduce’, ‘filter’, ‘flatMap’, and ‘compactMap’ into your code

Photo by Avel Chuklanov on Unsplash

You can also find this history at

In previous articles, we’ve seen how to improve the architecture of our code through design patterns and the use of SOLID principles. Now we’ll see how to improve our Swift code with higher-order functions. Surely, you’ve used them more than once, but what are they and how can you improve your Swift code with higher-order functions?

Swift Higher-Order Functions

Higher-order functions are functions that take other functions or closures as arguments and that return a function or a closure. …

Comparable enums, multi-pattern catch clauses, no need for self in closures, and more

Photo by Alexandru Acea on Unsplash

What is new in Swift 5.3 (whose publication process was announced by Apple on 3/25) can be found both at the code level (e.g., multi-pattern catch, multiple trailing closure) and in the use of Swift Package Manager (addition of binary dependencies or resources). Here I detail some of the new features in Swift 5.3 (keep in mind that we expect to see the new beta of Swift 5.3 at WWDC20, although to test it, you can download it at

Found this article and much more at Thinking In Swift:

Synthesized ‘Comparable’ Conformance for ‘enum’s (SE-0266)

Thanks to this new addition, we can adopt the Comparable

Show your users exactly how to get somewhere

Photo by Sebastian Hietsch on Unsplash

Have you noticed the number of applications that show us a map in which they place us, indicate interesting places nearby, mark routes …? In this article, I will explain how to build a maps-and-routes application with MapKit.

But what is MapKit? MapKit is an Apple framework that bases its operation on the API and data from Apple Maps, so that you can easily add maps to the applications developed, in this case, for iOS.

This project can be found in full on GitHub:

And much more stuff at Think in Swift:

UI Design

This project will basically consist of an MKMapView

One of the main problems that a team of developers working on the same project usually encounters is the fact that, when the code of each one of them is merged, conflicts between different developers’ code, errors, etc. can occur, which makes this process slow. To solve this point, Integration and continuous distribution comes into action to automate the deployment of applications. In this article we are going to learn how to automatize the deployment of iOS applications with Bitrise.


In a previous article we already saw what Continuous Integration (CI), Continuous Delivery(CD) and Continuous Deployment (CD) are, and how…

Perform actions when you push to certain branches

Image by Pxfuel

Let’s talk about how to set up continuous integration and continuous delivery (CI/CD) with GitHub Actions. But wait a minute — what does CI/CD mean?

When different developers work together in an application, if the merge of code occurs at the same time, numerous problems can occur: conflicts between different developers’ code, errors, etc. This all makes the process slow. This is where CI/CD comes in.

Continuous Integration (CI)

Continuous integration (CI) allows different developers to upload and merge code changes in the same repository branch on a frequent basis. Once the code has been uploaded, it’s validated automatically by means of unit…

Photo by Kevin Ku on Unsplash

Congratulations! You have decide to learn to program. Maybe you have great ideas to develop new applications or you would like to create web pages as impressive as the ones you see while browsing the internet. But, where can you start? There are several programming languages, and new languages or forms of programming appear every day.

Suppose you have chosen a programming language and want to learn it, auqneu how do you do it? …

Raúl Ferrer

First Chemist, now Mobile Tech Lead & Senior iOS Developer. Always learning. You have an idea, develop it and make it BIG. My web:

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