Search

The Art of Mobile DevOps

Wycliffe Okemwa
November 14, 2019

I guess it’s always good to start with definitions. I will at once kick off with a disclaimer that it’s not the easiest thing to do. Myriads of definitions of varying levels of complexity and scope exist for the term, but I will keep mine simple:

“Dev-Ops, comes from two words development + operations. This suggests that it is a set of practices in a process encapsulating the actual coding and managing operations tasks to achieve agility, velocity through quality, which is only possible with automation technologies.”

Let’s break that down a bit, shall we?

Development — getting your hands dirty, writing lines upon lines of code to deliver on a particular project’s requirements, this being done with a clear set of deliverables.

Operations tasks — are those activities that don’t aim to produce anything new, but to maintain and sustain and streamline a system, inclusive of regular testing and deployment of applications. Operations are repetitive and static, and aim to keep everything running, thus the best way to go about all this is via automation.

DevOps offers this. It then implies that this entails an entire cultural paradigm shift in how we go about software development.

Why DevOps?

A brief point by point breakdown is as follows :

  • It gives facility to invent and focus on actual business needs instead of wasting hours/ weeks / months on operational tasks.
  • Enables us to deploy often without breaking what already exists.
  • Enables quick solutions in the case of a technical glitch.
  • Contributes to team health and smoother collaboration.

Focus

In mobile dev-ops, the focus is on two key processes:

  • Continuous Integration
  • Continuous Deployment

Continuous Integration

This is a development practice that requires developers to integrate code into a shared repository several times a day.CI systems let you automatically build and test your app every time you commit into a shared repository.

CI tools: Examples include:

GitLab Continuous Integration & Delivery
GitLab CI/CD is a part of GitLab, a web application with an API that stores its state in a database. It manages…
about.gitlab.com
Continuous Integration and Delivery
Get the best continuous integration and delivery platform for Linux, macOS, and Android, in the cloud or self-hosted.
circleci.com
Travis CI - Test and Deploy Your Code with Confidence
Edit description
travis-ci.org

For more information, Instabug greatly covered Top Mobile Continuous Integration (CI/CD) Tools.

Continuous Deployment

Software is automatically deployed for access by the necessary stakeholders once it passes through the continuous integration system. These could be QA ( Quality assurance testers), alpha as well as beta tester if these are set up; then the app, can then reach the target clients.

Automated deployment systems let you automatically deploy your app on the app store or play store (in the case of the mobile apps) every time when you commit into a shared repository or your trigger is fired. This is as opposed to manually generating an APK file / App bundle and manually uploading it to a specific track on the play console.

https://fastlane.tools/
https://fastlane.tools/

One of the best mobile CD tools is Fastlane. It offers a super fast and easy way to build and release mobile apps ( both IOS and Android ). For more information on how to get started with Fastlane, click here.

Based on your CI tool of choice, Fastlane offers integrations, so that you can easily plug in Fastlane to your existing process.

Possible combinations

This concludes the first part of this article. In the next part, We’ll talk a bit about Android tests as well as setting up the GITLAB CI + FASTLANE combination.

Adios!!!