Book Image

Mobile DevOps

By : Rohin Tak, Jhalak Modi
Book Image

Mobile DevOps

By: Rohin Tak, Jhalak Modi

Overview of this book

Today's world is all about perfection, and there are hundreds of applications that are released each day out of which only a few succeed. Making sure that the app looks, performs, and behaves as expected is one of the biggest challenge developers face today. The main goal of this book is to teach developers to implement DevOps to build, test, and deliver. This book will teach you to implement Mobile DevOps at every stage of your application's lifecycle with Visual Studio and Xamarin Mobile Lifecycle solutions. Later, it will also show you how to leverage Mobile Center's continuous integration and automated testing to develop a high-quality applications. Next, you’ll see how to mobilize your on-premises data to the cloud and increase your productivity with code reuse. Finally, you’ll discover how to find and fix bugs beforehand, improving the efficiency of your application while it is being developed. By the end of this book, you will be well-versed with Mobile DevOps techniques, delivering high quality and high performance mobile apps.
Table of Contents (13 chapters)

DevOps versus mobile DevOps

DevOps and mobile DevOps are similar, yet different in the sets of tools they use to achieve the same goal. To better understand the difference between DevOps and mobile DevOps, let's go through each step in the application development and operation life cycle, and discuss the differences in approaches.

Development

The development phase is almost the same for web and mobile application development, but at the same time, in mobile application development developers need to include SDKs and tools that will later help them track app crashes and user feedback, and better monitor users' activities. Mobile application developers can build a feedback mechanism into their application, with which they can ask users to submit feedback and even bug reports, which are often provided by the mobile operating system. There are even some SDKs mobile app developers can embed into their code to help feedback tracking and better end user interaction.

Tools such as HockeyApp provide this integration of user interaction and feedback directly to developers.

Testing

When it comes to testing, there is a big difference between the tools used for web application testing and mobile application testing. In web applications, the resources required to test the application are limited to a set of browsers and a limited number of operating system versions.

Manual testing is sometimes enough to ensure great quality products. But when it comes to mobile application testing, there are hundreds of different hardware-dependent combinations of devices that need to be tested to ensure your app will work fine when it goes live. After the rise of Android, there are so many different devices with a variety of hardware configurations and different operating systems. To ensure a wide user base, developers need to make sure their app is compatible with all the different versions and lower-end devices.

To quality-check such things, just testing on emulators is not enough for high-quality applications; they need to be tested on real-world devices, which is sometimes difficult and off-budget for many organizations. This is where cloud test environments such as Xamarin Test Cloud comes into the picture, to automate the process and test on real devices at low cost.

Deployment

In a web application deployment, the environment can be controlled and customized to our needs, but in mobile application deployment, the application needs to be published through some sort of operating system application store, which then verifies and publishes the application to be used by users on their devices.

Monitoring

To monitor a web application, developers use logs, some tools at the server side, and others on the client side to help them identify issues that might arise because of network or code quality. But in mobile applications, the area is quite wide because of the issues that can occur. Various hardware dependencies, device permissions, and other factors can crop up that are difficult to monitor without proper tools involved, and that's where mobile DevOps differs from DevOps.

Continuous delivery

Continuous delivery sounds very simple and it sure is that way if done properly. In DevOps, getting feedback and then working on it, fixing bugs, and then redeploying them is much simpler and less time-consuming than in mobile applications. Getting crash reports from users, then finding out the issue, and then going through the testing phase again can be very time-consuming if not automated.

Automating the process of development, testing on real-world devices, then signing apps and publishing them to the store, and again tracking users' feedback—this entire process becomes very complicated if the right tools are not used.