Mobile DevOps
{{Essay-like|date=January 2025}}
Mobile DevOps is a set of practices that applies the principles of DevOps specifically to the development of mobile applications. Traditional DevOps focuses on streamlining the software development process in general, but mobile development has its own unique challenges that require a tailored approach.{{Cite book |last1=Tak |first1=Rohin |last2=Modi |first2=Jhalak |title=Mobile DevOps: Deliver continuous integration and deployment within your mobile applications |date=2018 |publisher=Packt Publishing |isbn=9781788296243 |pages=12–18}} Mobile DevOps is not simply as a branch of DevOps specific to mobile app development, instead an extension and reinterpretation of the DevOps philosophy due to very specific requirements of the mobile world.{{Cite web |date=2022-09-28 |title=What is Mobile DevOps in iOS and Android App Development? |url=https://ionic.io/resources/articles/what-is-mobile-devops |access-date=2024-03-26 |website=ionic.io |language=en}}
Rationale
Traditional DevOps approach has been formed around 2007-2008,{{Cite web |last=Atlassian |title=History of DevOps |url=https://www.atlassian.com/devops/what-is-devops/history-of-devops |access-date=2024-03-26 |website=Atlassian |language=en}} close to the dates when iOS and Android mobile operating systems were released to the public. The traditional DevOps approach primarily evolved to meet the changing needs of the software development world with the paradigm shift towards continuous and rapid development and deployment (such as in web development, where interpreted languages are more prevalent than compiled languages).{{Cite web |last=Smith |first=David |date=2024-01-25 |title=The Evolution of DevOps |url=https://devops.com/the-evolution-of-devops/ |access-date=2024-03-26 |website=DevOps.com |language=en-US}} While traditional DevOps embraced agility and flexibility, mobile operating system providers steered towards a walled-garden approach with compiled apps with tight controls over how they can be distributed and installed on a mobile device.{{Cite web |last=Appcircle |date=2022-10-08 |title=5 Differences Between Mobile CI/CD and Web/Backend CI/CD |url=https://appcircle.io/blog/5-differences-between-mobile-web-backend-ci-cd/ |access-date=2024-03-26 |website=Appcircle Blog |language=en}} This difference in the mobile development mindset compared to what the traditional DevOps approach is advocating, is augmented further with the mobile applications to be deployed on a high number of varying devices and operating systems.{{Cite journal |last=Yarlagadda |first=Ravi Teja |date=2019 |title=How DevOps Enhances the Software Dévelopment Quality. |journal=SSRN Electronic Journal |volume=7 |issue=3 |pages=358}}
Eventually, the concept of Mobile DevOps took off as a trend around 2014-2015,{{Cite web |title=Google Trends for the keyword "Mobile DevOps" |url=https://trends.google.com/trends/explore?date=all&q=mobile%20devOps |access-date=2024-03-26 |website=Google Trends |language=en-US}} in line with the fast growth of the number of applications in mobile app stores.{{Cite web |title=Number of available apps in the Apple App Store from 2008 to July 2023 |url=https://www.statista.com/statistics/268251/number-of-apps-in-the-itunes-app-store-since-2008/ |access-date=2024-03-27 |website=Statista |language=en}} As individuals and corporations alike are developing and publishing more and more mobile applications, the need for efficiency and shorter release cycles increased, which is addressed by the continuous feedback and continuous development approach within the concept of DevOps, while requiring a significant level of adaptation and extension of the traditional DevOps practices.{{Cite journal |last1=Eramo |first1=Romina |last2=Soccia |first2=Gian Luca |last3=Noletti |first3=Martina |last4=Celi |first4=Alessandro |last5=Autili |first5=Marco |title=An Empirical Study on the Role of Devops in the Development of Mobile Applications |url=https://dx.doi.org/10.2139/ssrn.4719199 |journal=SSRN |pages=|doi=10.2139/ssrn.4719199 |url-access=subscription }}
Mindset shift from traditional DevOps to mobile DevOps
Mobile DevOps has a unique set of challenges and constraints, which solidifies the fact that it needs to be approached as a separate discipline.
These challenges can be outlined as follows:
- Platform-specific requirements and tight controls of mobile operating system providers, where for instance a macOS device is mandatory for iOS application development and release.
- The walled-garden approach of distributing mobile apps, specifically applying to iOS applications,{{Cite web |last=Kirkwood |first=Megan |date=2024-02-06 |title=Regulating the Walled Garden: The Challenge of Taking on the Gatekeepers {{!}} TechPolicy.Press |url=https://techpolicy.press/regulating-the-walled-garden-the-challenge-of-taking-on-the-gatekeepers |access-date=2024-03-27 |website=Tech Policy Press |language=en}} which comes with app review and app release delays that would not be needed in web development, for instance.
- Code signing requirements that come with the walled-garden approach, which introduce additional processes in the mobile application build pipeline along with new security concerns.
- An entire deployment cycle is re-run even in the slightest code change due to how applications are compiled and delivered to the users.
- The final product is to be deployed to a wide variety of mobile devices worldwide, which requires extensive testing and user feedback.
- Monitoring mobile applications require additional tools and approaches to be able to get data from an application running on a mobile device while respecting user privacy.
- Frequent operating system updates by mobile platforms can require rapid adaptation of apps, introducing further complexity to the development and maintenance cycles.
Benefits of mobile DevOps
Mobile DevOps is not an abstract concept and offers a range of benefits that can help improve the efficiency and effectiveness of the mobile app development process. These benefits can even be quantified by collecting the data within the mobile application development lifecycle.
The benefits can be categorized into the following areas:
- Faster Release Cycles: By automating tasks and streamlining the development process, mobile DevOps enables teams to deliver new features and updates more frequently.
- Improved Quality: Automated testing and continuous monitoring help to identify and fix bugs earlier in the development cycle, leading to higher quality apps.
- Optimized Resource Utilization: Mobile DevOps promotes optimized resource utilization by automating tasks and streamlining workflows. Furthermore, mobile DevOps practices like containerization can help to create more efficient and scalable development environments.{{Cite book |last=Nabil |first=Moataz |title=Mobile DevOps Playbook |date=2023 |publisher=Packt |isbn=9781803242552}}
- Increased Agility: Mobile DevOps allows teams to be more responsive to changes in the market and user feedback.
List of Dedicated Mobile DevOps Platforms
Even though it is possible to run a mobile DevOps cycle with most of the CI/CD platforms, they may require significant effort compared to non-mobile CI/CD (e.g. you need to bring your own infrastructure{{Cite web |last=Bapat |first=Vaishnavi |date=2022-09-09 |title=Announcing macOS Runners in Bitbucket Pipelines |url=https://bitbucket.org/blog/macos-runners-bitbucket |access-date=2024-11-03 |website=Bitbucket |language=en-US}} or it may require "reinventing the wheel" for commonly used platforms like Jenkins{{Cite web |title=Building iOS Apps with Jenkins |url=https://www.jenkins.io/projects/gsoc/2023/project-ideas/buiilding-ios-app/ |access-date=2024-11-03 |website=Building iOS Apps with Jenkins |language=en}}).
To overcome the mobile-specific challenges specified, there are certain platforms that are dedicated to the lifecycle of mobile applications. These platforms exclusively focus on DevOps processes for mobile app development and are also referred as mobile CI/CD platforms.
- Appcircle (Multiplatform | Cloud-based & On-premise)
- Visual Studio App Center (Multiplatform | Cloud-based)
- Xcode Cloud (Apple platforms only | Cloud-based)
See also
References
{{Reflist}}
{{Software engineering}}
{{Mobile operating systems}}
{{Mobile phones}}
External links
- [https://developer.android.com/develop Android Developer Documentation]
- [https://developer.apple.com/documentation/ Apple Developer Documentation]
- [https://docs.flutter.dev/ Flutter Developer Documentation]
- [https://learn.microsoft.com/en-us/shows/on-net/what-is-mobile-devops--devops-for-mobile What is mobile DevOps? by Microsoft]
Category:Mobile software development