The state of mobile DevOps: 3 platforms to build, deploy, manage your apps

public://pictures/Matthew-David-Senior-Manager-Kimberly-Clarke.jpg
Matthew David, Senior Manager of Mobility Center of Excellence, Kimberly-Clarke

With Microsoft no longer actively developing its Windows 10 Mobile OS, there are only two operating systems you need to build for: Apple's iOS and Google's Android. Android dominates, with close to 66% of all mobile devices worldwide running Android 5 or later.

Now that there are over 2.3 billion smartphones in use, DevOps teams must focus on three key delivery models: native Android apps, native iOS apps, and responsive web apps.

An efficient DevOps team is kept moving forward through a slick integration of MBaaS (mobile backend as a service), building tools, testing, and excellent communication. MBaaS tools include those for analytics, push notification, cloud data, and cloud API management.

Native apps must go through a build process before testing. Android and iOS have different build processes, and these differences can slow down a DevOps team. Code testing on physical and virtual devices offers an opportunity to validate that your code works. There are thousands of variations of Android and dozens of iOS-powered form factors, making it impractical to maintain your inventory of testing tools. Finally, an efficient DevOps team looks to communicate quickly and efficiently internally.

The three pillars at the foundation for modern DevOps are: Microsoft Visual Studio App Center, Google Firebase, and Amazon's AWS Mobile.

The ability to build, deploy, and manage mobile apps through automation took significant leaps forward in 2017. Here's what's new, what the modern mobile DevOps environment looks like, what's unique or different about each tool, and where each tool might be a good fit for your team.

World Quality Report 2018-19: The State of QA and Testing

Microsoft Visual Studio App Center

While 2017 was the year that saw Microsoft stop making Windows Mobile devices, it's also when the company launched a new suite of tools designed for mobile DevOps: Visual Studio App Center.

This suite is very late to the mobile development market. Unlike previous Microsoft entries, which aimed to ramrod the company's approach to mobile development down the throats of developers, this release is designed for modern mobile DevOps teams.

The first standout of Visual Studio App Center is the application of continuous build and release for native Android and iOS apps in the cloud. Now there is no need to have separate build servers for iOS apps.

The second standout feature is the inclusion of Xamarin's Test Cloud. Microsoft acquired Xamarin (maker of the cross-platform Xamarin.Forms and Xamarin.Native development tools) in mid-2016, and it has included Xamarin's cloud testing tools in Visual Studio App Center.

Xamarin Test Cloud is an extensive collection of over 1,500 physical Android and iOS devices in the cloud that your code can be loaded on and tested with popular frameworks such as Appium, Espresso, and XCUITest. The result is accurate UI and device hardware testing.

Visual Studio App Center is also loaded with analytics, crash-test information, and dashboards to communicate the health of your apps. The MBaaS suite also supports push notifications and connects directly with Microsoft’s mobile-optimized Azure tools.

Two final features make Visual Studio App Center compelling: communication and price. Visual Studio App Center will connect with Slack and Office 365 Teams to send and receive updates. For instance, when a build is run, a notification can be sent to a team's channel.

As for price, currently, Visual Studio App Center is free. This does not mean it will be free forever, but it does mean you can check out the tool and give the wheels a solid kick without spending a penny.

Google Firebase

Google launched Firebase at its 2016 I/O conference, and it continues to evolve. (The core MBaaS features for Firebase are covered in a prior TechBeacon article.)

Firebase is split into two sets of tools, one of which is for DevOps. Last year, Google added five new tools to round out the DevOps suite, all of which are currently in beta. They are:

  • Crashlytics: A purchase from Twitter that brings sense and meaning to the crash data you receive
  • Cloud Firestore: A NoSQL data store to manage security, data, and off-line services across iOS, Android, and web 
  • Cloud Functions: A tool that provides the ability to write functions that trigger events from Google's services to optimize the mobile app experience
  • Performance Monitoring: For diagnosing app performance issues
  • Predictions: For leveraging Google's AI to create dynamic user groups based on users’ predicted behavior

Firebase has excellent documentation and a growing community. And the fact that it's free to use is also very compelling.

The tools are, however, Android-centric. Cloud testing can only be performed on Android devices, and there are no cloud build services, critical for continuous delivery. It would be great to see Google add iOS and Android cloud-build services and iOS device testing in 2018.

[ Webinar: Agile Portfolio Management: Three best practices ]

Amazon AWS Mobile

Amazon is no slouch. It knows who the competition is, and it knows how to compete. Amazon can wave the big stick of its dominance in cloud computing.  

While Amazon does have its own mobile OS (Fire OS, a branched version of Android), it does understand that iOS, Android, and web dominate the developer landscape. For this reason, as with Visual Studio App Center, Amazon's mobile DevOps tools support all platforms equally. As with Google, Amazon has great documentation and great starter apps.

Unlike Microsoft and Google, Amazon gives only a selection of its mobile services away for free. (Check out the list here.) Most services have a "pay to use" license. The market for mobile DevOps is new, and it will be interesting to see how the pricing for Amazon's products changes to compete with Microsoft and Google. Expect prices to drop.

AWS Mobile doesn't include build services, scripting for testing is complicated, and it offers no tools to publish your app to the public app stores. 

Try 'em, you'll like 'em

There is a definite message with all of the services listed above: You are free to try them, and you should. Delivery teams know they have to support multiple platforms: web, iOS, and Android. It is critical that MBaaS tools mature to support full continuous delivery demanded by mobile DevOps. 2017 was the year that mobile DevOps moved from the sidelines to the main stage.