Challenges of applying DevOps to mobiles
Because of the fast and continuous delivery mindset, DevOps comes with many challenges, especially when applying DevOps to the mobile application development life cycle.
The following are some of the challenges that arise while applying DevOps to mobile.
Rapid technology adaptation
Mobile technologies are rapidly evolving and improving every day, and with mobile devices getting released with new features and hardware support every day, it's difficult for DevOps tools to keep pace with them.
Multi-platform support
Most mobile applications have multiple platform targets; the operating systems have different versions and applications need to support most of them to ensure a large user base. With Android, for example, many devices have old versions installed and do not get updated to later versions because of hardware limitations, and because manufacturers don't update their devices. At the same time, having different devices means customizing Android to suit personal taste and changing the user interface, and thus applications have to be compatible with all the different form factors and UI changes.
Keeping up with mobile development
Mobile applications are now an integral part of many organizations' frontends, and clearly drive changes to backend development as well. Organizations use service layers and data layers to do backend operations, but due to integration with mobile development, they need to better adapt to, and collaborate with, mobile and web development.
Releases
Because how releases and updates are consumed over mobile platforms is totally different from the web, it becomes more difficult to ensure updates are made and care about old versions. On mobile, users have to download the update; the application doesn't get updated automatically, as it does on the web whenever users access the URL. Most of the time, users choose not to download the update, and sometimes they have storage restrictions. So, application developers have to consistently make sure everything works on old and new versions.
Backward compatibility
As described earlier, mobile applications need to be working on new and old versions of operating systems. Just because you've developed new versions does not mean people on older versions are not your responsibility anymore. As it turns out, the majority of people who use older versions of operating systems don't download the latest updates. App developers have to use the latest features in new versions of the OS and at the same time they should make sure apps run perfectly fine on older versions as well.
Application stores
This is a new method of app distribution, mostly found in the mobile app industry. In web apps, you just have your application deployed on your web server and a URL where interested people can access your application.
Fixing issues and deploying patches becomes so easy, since you just have to deploy it on your servers and people accessing your web application will receive it immediately.
In mobile applications, apps must go through app stores in all different operating systems.
They must be verified before they can be published, and even updates and small patches need to go through the same route, so fixes are not available to end users immediately. This creates an extra step in the complexity of applying DevOps to mobile.
Feedback mechanism
In the web and other platforms, since the application is not going to the user through an application store, the feedback is personal to the application team. User feedback is not visible to other users, and they get to judge and use it as they see fit.
In mobile devices, users can give feedback on the application store and if the application does not live up to the expectations of users, it gets bad ratings that hurt the application in a big way. This sort of quick and visible feedback can help an application take off, or see it fail miserably if users don't like it. Acting on such feedback becomes very important in mobile DevOps.