The first Apple iPhone was introduced ten years ago. The development for mobile devices accelerated ten years ago, and it hasn’t stopped since then. The released applications, of course, are never flawless, and often times we would like to extend them with additional features. How can we make sure, that we release new versions of the application with a 100% confidence? How can we accelerate this process, so that we are able to release a new version every week?
Modern technology - the presence of different APIs, and open source libraries - provides possible solutions for these. Nowadays, companies manage the releases of the applications manually, therefore to understand the problem, first we need to understand the process of the manual release.
Besides that, the manual tasks are monotonous, and take up a lot of engineer time, they are also very error prone. Even one little mistake can have serious consequences, like the postponement of the release.
Even though a fully automated release service sounds very appealing, creating one is nearly impossible, but it is also not the goal. It is very likely that someone will always need to supervise the release process, therefore the goal is to reduce the number of manual tasks of this person.
In the beginning, I will present the differences between web and mobile in terms of “continuous deployment”, describing in detail the difficulties in releasing for mobile. After that, I will describe the manual release processes in detail, while also pointing out the possible points of failures; and then, I will introduce the services and tools used by Skyscanner for release management purposes. Later on, I describe the automated release service’s architecture and key features; and as closing, I will highlight the service’s currently existing issues, and I will provide possible solutions for it.