As the backend systems are evolving to cloud-native apps and the frontend clients are unifying around mobile apps, continuous integration (CI) and continuous delivery (CD) are getting more and more crucial in every software development project regardless of the size and the scope. Mobile app development is one of the areas that can benefit from CI/CD the most.
This article is the first in our CI/CD article series, where we answer the following questions:
- What is CI/CD and why do you need CI/CD in mobile app projects? (This article)
- What are the operational and business benefits of CI/CD?
- How does Appcircle solve the common problems in mobile app lifecycle?
In our first article, we will start with a quick introduction.
What is Continuous Integration and Continuous Delivery?
Continuous Integration (or CI for short) is the automated way of building every code pushed to a common code repository. This build process is ideally enhanced with workflows for steps like code reviews, code analysis and unit tests.
Continuous Delivery (or CD for short), as the name indicates, is the automated delivery of the application with environment deployment (e.g. a development or production variant), code signing, versioning and sharing the successfully built releases with the related users (e.g. testers).
So, then, what is a pipeline (CI and CD)?
When you consider CI and CD together, we get a full application “pipeline”. With CI, you build your app and push it towards the pipeline. With CD, you ensure the app is transported through the pipeline properly to the correct recipients.
How do CI and CD relate to some of the most prominent problems in mobile app projects?
After laying the groundwork, let’s explain why you need CI/CD in mobile app development, starting with the causes, the problems that are commonly observed in mobile app lifecycle and how CI/CD addresses them.
- Code repositories being used like a file storage, not as a collaboration tool: Automated CI/CD process encourages frequent code pushes.
- Low application quality with issues slipping through the cracks in the end user release: Automated CI/CD process eliminates manual operation and possibility of human error.
- Long build times of large apps with multiple dependencies: Agent-based CI/CD tools free the local environments from the resource and time-consuming build process.
- Rapidly changing landscape with frequent updates to mobile operating systems and development frameworks: CI/CD tools handle the environment to be up to date while providing a wide range of options for build configurations.
- Complexities and delays caused by application code signing due to the unique requirements of Apple and Google: With CI/CD all the complex steps in the app lifecycle are automated and the developers are isolated from these complexities
- Complicated set of build artifacts to gather at every step of the app lifecycle: The CI/CD tools automatically collect and deliver all the artifacts from a single convenient point of access
With all these problems and many more, it is indeed necessary to have a proper CI/CD solution in place and we can now have a more detailed look on why you would need CI and CD in mobile app projects.
Why do you need Continuous Integration in mobile app projects?
CI is not just about using a source control system and resolving conflicts when multiple developers are working on the code. It is about establishing a discipline and a standard for development.
The reason for this is that even if a team is using a common code repository but without an automated build process, the general tendency is to use it like a backup tool and push changes at the end of the day.
From this perspective, one of the most important advantages of CI lies in the automated builds, which is then enhanced with automated workflow steps such as static code analysis, code quality review and of course, integration with testing automation or manual testing distribution.
CI enables shorter release and test cycles, which is even more crucial with the unique complexities and error-prone nature of mobile apps.
For instance, if you are developing your apps with a native or hybrid cross-platform framework, which is highly likely to have a single-project structure, building the same project for iOS and Android requires totally independent efforts, which can be automated with mobile CI.
Why do you need Continuous Delivery in mobile app projects?
Similarly, CD is not just about uploading and downloading multiple app binaries for different environments. CD automates the release process and eliminates the human factor, which again enables shorter release cycles and producing more reliable releases.
In mobile apps, one of the most crucial pain points is the environment switches and with an automated CD process, you can easily get the same application for multiple environments.
Another point that makes mobile CD more complex but also more important is code signing, which is not applicable for the majority of the web applications. Especially for iOS apps, there are different code signing procedures for different distribution methods (ad hoc, enterprise distribution and public distribution) and manual signing is indeed a complex process.
These are just the tip of the iceberg in terms of the reasons and the benefits of using CI/CD in mobile development.
Appcircle is an all-in-one automated mobile CI/CD platform is that makes mobile CI/CD best practices accessible to everyone.