Building Mobile Apps on Azure

Azure App Service

In May 2016, Microsoft announced that the Azure Mobile Services suite, its initial solution for building mobile applications on Azure, would be discontinued beginning that December. Launched in 2012, Mobile Services had provided functionalities such as authentication, storage, and notifications to Azure customers who used it to build mobile apps in the cloud. Mobile Services has now become Mobile Apps, which is part of the Azure App Service suite.

Azure App Service is a platform as a service (PaaS) solution that Microsoft intends to be the dedicated one-stop solution for users to build applications in the cloud. Whereas many developers previously placed their mobile apps and web apps in different containers, Azure App Service allows developers to move all of their apps within a single container in order to build an integrated application platform.

Within Azure App Service, web apps, logic apps, and mobile apps all live in the same context, allowing them to share authentication and API data that can move cleanly throughout the system. The App Service platform also includes several features that were lacking from Azure Mobile Services, including support for continuous integration and continuous deployment using Visual Studio and GitHub, as well as built-in load balancing, scaling, and performance monitoring.

Azure Mobile Apps

First released in March 2015, Azure Mobile Apps is a development platform for building mobile applications which easily integrate with other Azure offerings: website apps, logic apps, and API apps. It can also be described as a “mobile backend as a service” (MBaaS): a cloud-based solution that gives developers access to back-end storage and APIs. The major functionalities of Mobile Apps include:

• Client SDK support for building native applications on Android, iOS, and Windows devices, as well as cross-platform applications using the Xamarin and Cordova (PhoneGap) frameworks. Developers can create native mobile applications, or use Cordova to create “hybrid” applications built using HTML, CSS, and JavaScript that work in both web and mobile environments.

• Applications that can work offline and sync data in the background by connecting with APIs and data sources in order to update themselves unobtrusively.

• A variety of options for user authentication and authorization, including Azure Active Directory for corporate authentication and social media platforms such as Facebook and Twitter.

• Customized push notifications sent to all of the users of an application on any device.

• An Open Data Protocol (OData) data source for integrating the app with SQL data providers and software as a service (SaaS) API providers like Salesforce and Office 365.

• Environments for running multiple versions of an application, in order to perform A/B testing or DevOps testing in production, as well as isolated environments for high-scale load and stress testing.

Mobile Apps also inherits a number of useful developer features from its parent entity Azure App Service, such as staging environments, automatic scaling of virtual machines, and support for continuous deployment engineering practices.

Using Mobile Apps, developers can extend the service’s back-end capabilities by writing custom code. For example, if the app needs to connect to a SQL database, a Table Controller can be created in order to make a SQL table available to a mobile client. Developers can also add code to connect to SaaS APIs such as Salesforce. The Salesforce login information is linked with the developer’s Active Directory token, so the entire experience flows smoothly without needing to reauthorize the application.

Other Azure Solutions

Beyond Azure Mobile Apps and Azure App Service, Microsoft provides a host of related products and solutions intended to assist mobile developers working in the cloud.

Visual Studio Mobile Center

Introduced in November 2016, Visual Studio Mobile Center is a next-generation “mission control for mobile apps,” as Microsoft describes it, that provides cloud and lifecycle services to facilitate the process of mobile app development. It is intended to include and absorb the functionalities of other current Microsoft products for mobile development, such as HockeyApp and Xamarin Test Cloud.

A startup acquired by Microsoft in 2014, HockeyApp aids developers at all stages of writing, distributing, and testing their mobile applications. Its features include:

• Detailed crash report generation that analyzes crash events over time and easily connects to other applications.
• Automatic upload and distribution of new app versions for the benefit of beta testers.
• User metric tracking to monitor statistics such as active users and length of sessions.
• In-app user feedback and opinion collection.

Xamarin Test Cloud allows testing and QA staff to perform cloud-based automated testing of mobile apps on more than 2,000 mobile devices, offering a diversity of hardware, physical specifications, manufacturers, and operating systems. Testers can interact with their apps using standard user actions such as tapping, swiping, and pinching and use device features such the camera and GPS.

Azure Marketplace

Microsoft’s Azure Marketplace, an online market for buying and selling SaaS applications, contains a number of products oriented toward App Service and Mobile Apps. Some of the most useful for mobile developers are:

• App Dynamics: An application performance management (APM) solution that helps find bottlenecks in application code and measure application performance before and after migrating to the cloud.

• Aspera Server On Demand: Software with a proprietary protocol for direct, high-speed download and upload of files and data into Azure Blob object storage.

• New Relic: Like App Dynamics, an APM solution with support for Java, .NET, Ruby, Python, PHP, Node.js, and more than 60 application frameworks.

• Raygun: An error monitoring, bug finding, and crash reporting service that works with a variety of programming languages for mobile development.

RevAPM CDN: A service to simplify and accelerate content delivery networks. Users can control the performance level of their applications while reducing the chance of sluggish connections and lag.

Leave a comment