O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Mobile DevOps

Book Description

This step-by-step guide will teach you to continuously improve your mobile application development process

About This Book

  • Efficiently deliver continuous integration and deployment within all the stages of your application's lifecycle
  • Learn to implement mobile DevOps with Xamarin and Visual Studio
  • Deliver high quality and performing mobile applications

Who This Book Is For

If you are a programmer and developer who wants to increase the efficiency and scalability of your mobile application with the implementation of DevOps, then this book is for you. You need basic experience of the application process development.

What You Will Learn

  • Become fluent with the basic components of Mobile Devops
  • Find out how to use code repositories and install Git on an EC2 server and manage users and groups
  • Set up an Android device for development and install Visual Studio and Xamarin on Windows
  • Create an Android project and UI for applications
  • Add permissions to Android Manifest
  • Write tests with Xamarin. UI and test using test cloud to check it on multiple devices
  • Monitor and optimize the application using the Android monitoring tool
  • Debug the mobile application and improve its efficiency

In Detail

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.

Style and approach

This clear, concise, and straightforward book will make you aware of mobile applications by showing you Devops fundamentals such as building, testing, and delivery. This book has been created to help you put new ideas into practice, and demonstrate precisely what's possible with mobile Devops.

Downloading the example code for this book You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.

Table of Contents

  1. Title Page
  2. Copyright and Credits
    1. Mobile DevOps
  3. Packt Upsell
    1. Why subscribe?
    2. PacktPub.com
  4. Contributors
    1. About the authors
    2. About the reviewer
    3. Packt is searching for authors like you
  5. Preface
    1. Who this book is for
    2. What this book covers
    3. To get the most out of this book
      1. Download the example code files
      2. Download the color images
      3. Conventions used
    4. Get in touch
      1. Reviews
  6. Introduction
    1. Introduction to DevOps
      1. Cultural aspects of DevOps
      2. Before DevOps
      3. After DevOps
    2. Introduction to mobile DevOps
      1. Continuous feedback and continuous development
      2. Importance of backlog in mobile DevOps
    3. DevOps versus mobile DevOps
      1. Development
      2. Testing
      3. Deployment
      4. Monitoring
      5. Continuous delivery
    4. Challenges of applying DevOps to mobiles
      1. Rapid technology adaptation
      2. Multi-platform support
      3. Keeping up with mobile development
      4. Releases
      5. Backward compatibility
      6. Application stores
      7. Feedback mechanism
    5. Summary
  7. Working with Code Repository Systems
    1. Source code management
      1. Need for source code management
      2. Common terms used in source code management and versioning
      3. Variety of source code management
        1. Centralized version control
        2. Distributed version control
    2. Creating an account with GitHub and using Git to create a repository
    3. Managing organization users and teams
      1. Creating an organization and inviting users to join
      2. Creating a team and adding members to the team
    4. Installing Git on different servers
      1. Installing Git on Windows
      2. Installing Git on CentOS/RHEL servers
      3. Installing Git on Ubuntu/Debian systems
    5. Configuring SSH keys
    6. Summary
  8. Cross-Platform Mobile App Development with Xamarin
    1. History of Xamarin
    2. Why you should learn Xamarin
      1. Benefits of cross-platform development using Xamarin
      2. Introduction to mobile app development
        1. Process involved in mobile app development
      3. Platforms supported by Xamarin
      4. Xamarin on Visual Studio
        1. Extensions and add-ons
    3. Installing Visual Studio and Xamarin on Windows
    4. Setting up our Android Virtual Device for development
    5. Summary
  9. Writing Your First Android Application with Xamarin
    1. Create your first Android project
    2. Xamarin solution structure
    3. Creating the UI for the application
    4. Handling user interactions
    5. Adding permissions to Android Manifest
    6. Adding an icon for the Android app
    7. Testing user interaction
    8. Application fundamentals
    9. Android APIs
    10. Resources
    11. Understanding Activities
    12. Activity class
      1. Methods in the Activity class
      2. Activity life cycle
    13. Deploying an application on a mobile device
    14. Enable debugging on the device
    15. Install USB drivers
    16. Connect the device to a computer
    17. Pushing code to a Git repository
    18. Summary
  10. Implementing Automatic Testing Using Xamarin
    1. Understanding the importance of automation testing in the DevOps cycle
    2. Testing a mobile application
      1. Challenges in testing a mobile application
        1. Testing against a real environment
        2. Deploy and test frequently
        3. Continuous feedback
    3. Writing tests with Xamarin.UITest
      1. Xamarin.UITest
      2. Fundamentals of UITest
      3. Understanding the AAA pattern
      4. Adding a UITest project to Solution
      5. Tests.cs
    4. Recall the application code
      1. Elements in the PhoneCallApp
      2. User interactions in the PhoneCallApp
    5. Steps to include in the test
      1. Writing your first UITest
      2. Running your test on your local machine
    6. Using Xamarin Test Cloud to test on multiple devices
      1. Challenges in mobile app testing
        1. Different mobile OS versions
        2. Devices with different screen sizes
      2. Introduction to Xamarin Test Cloud
        1. Xamarin.UITest
        2. Test Cloud
        3. Xamarin Test Recorder
      3. Using Xamarin Test Cloud as part of continuous integration
    7. Creating users and organizations on Test Cloud
      1. Users and organizations
      2. Test Cloud hierarchy
      3. Creating a team
    8. Creating a test run for your application
    9. Summary
  11. Configuring TeamCity for CI/CD with Xamarin
    1. Introduction to continuous integration
      1. CI/CD for a web application
      2. CI/CD for a mobile application
      3. Choosing tools for continuous integration
      4. Various tools for continuous integration
        1. TeamCity
        2. Jenkins
        3. Visual Studio Team Services
        4. Bamboo
    2. Using TeamCity with Xamarin for CI/CD
      1. Requirements for using TeamCity
      2. Steps involved in TeamCity setup
    3. Preparing the build server
      1. Firewall configuration
      2. Installing Visual Studio with Xamarin
      3. Android Keystore
        1. Creating your own Keystore
    4. Creating a build script
      1. Compiling the application
    5. Installing and configuring TeamCity
      1. Creating a TeamCity project
    6. Summary
  12. CI/CD for Android with Visual Studio Team Services
    1. Creating an account in Visual Studio
    2. Getting the code from GitHub
    3. Creating the build definition
    4. Configuring the build definition
    5. Queue build
    6. Triggers - build with every commit
    7. Summary
  13. Deploying Applications on AWS
    1. Creation of an instance
      1. Lightsail
      2. Terraform
        1. Installation
        2. Configuration files
          1. Creating instances
          2. Modifying instances
          3. Terminating instances
          4. Example of instance creation using Terraform
      3. EC2 CLI
    2. Creating an Elastic Load Balancer, launch configuration, and Auto Scaling Groups
      1. Elastic Load Balancer
      2. Auto Scaling Groups
    3. IAM roles
    4. Summary
  14. Monitoring and Optimizing Application
    1. API level monitoring
      1. Why API monitoring is critical
      2. Important factors in API monitoring
      3. Developer's role in handling API unavailability
    2. Various tools for API monitoring
    3. Using Test Cloud for monitoring
      1. Benefits of monitoring with Test Cloud
      2. PhoneCallApp
      3. Xamarin Store app
    4. Using Android monitoring tools
    5. Summary
  15. Debugging the Application
    1. Terminology
    2. Debugging with Xamarin on Visual Studio
      1. Using the output window
      2. Using the Console class to show useful output
      3. Using breakpoints
        1. Setting a conditional breakpoint
        2. Stepping through the code
      4. Using a watch
        1. QuickWatch
        2. Adding a watch
    3. Debugging Mono class libraries
    4. Android debug log
      1. Accessing logcat from the command line
      2. Writing to the debug log
    5. Debugging Git connections
    6. Summary
  16. Case Studies
    1. Case study 1 - Hello World GUI
      1. Prerequisites
    2. Case study 2 - ButtonWidget
    3. Summary
  17. Other Books You May Enjoy
    1. Leave a review - let other readers know what you think