Continuous Integration for Mobile Apps

Continuous Integration for Mobile Apps

Continuous integration (CI) is a development approach that favors testing and reporting of changes to a given build as they happen, rather than at set artificial intervals, or at the end of a given process. This means that if a given change to the code base is implemented and is faulty, the flaw will be picked up immediately, and reported in near real-time, allowing the team to react accordingly. The goal of Continuous Integration for Mobile Apps is to establish a rapid and consistent feedback system that will allow developers to fix or adapt to constantly changing application or software.

Graphic Credit: MERA Software Services

“CI is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily – leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly.”
Martin Fowler 2006

While originally used for standard software development, continuous integration for mobile apps has long been adopted as well.

As Martin’s quote above illustrates, CI is strongly associated with automated build practices, including automated testing. The goal is to build the software or application whenever a change is applied, in order to detect and confirm any integration errors as they happen. By building, we mean a process of compiling, inspecting, testing and deploying integrated segments of source code to prove that it all works together as it should. This, of course, requires specialized tools and platforms, some of which we will discuss in today’s article, in particular those that focus on mobile application development.

Considerations for CI for Mobile Apps

 

Platform

One of the primary considerations is, of course, what platform you are developing for. For example, Shippable supports Android, but not iOS (according to comparison chart at bottom of their page). If developing for both iOS and Android, Travis CI and CircleCI might be better choices, based on this criteria alone. Of course, the list of considerations is a lot more complicated than that, and the right product for one company is not going to be the right one for another.

If supporting more than one platform, this consideration may be adapted to which tool best supports both platforms. Provided a CI toolset supports both, gear your decision towards the side that provides your primary project workload. Supporting more than one CI tool for different development teams can prove both costly and problematic, especially if you would like to implement cross-platform testing.

If you plan on adding a development platform in the near future (for example, if Windows gains a more considerable app market share), you will want to be sure to factor this into your decision. If the platform does not yet support the expansion platform, it should be a prominent part of their product roadmap.

Hosted vs On-premise (or Self-Managed)

Another consideration to keep in mind is whether the CI server used is on-premise or a cloud service. Each provides its own strengths and potential weaknesses to the discussion. This decision rests strongly on the degree of control you want over your CI solution...

READ MORE

要查看或添加评论,请登录

Martin Poschenrieder的更多文章

社区洞察

其他会员也浏览了