Friday, December 1, 2017

Introduction to the Microsoft platform for mobile app development

Vision: Create an adaptable, enterprise-grade mobile app strategy that spans your development, IT operations, and production management.

Building a mobile app development strategy to drive new business opportunities or to empower productive employees entails many decisions. More than simply selecting a programming language, it means deciding whether to invest and build apps for iOS, Android, or Windows with single-platform languages/SDKs or to adopt a cross-platform approach. It means building a strategy that makes it possible for the organization to adapt as the platforms and devices evolve—a strategy that delivers mobile back-end services that can scale. And, it means that apps are secure if the device is lost or if you need to restrict users or capabilities of the app. It even means integrating seamlessly with backend data, whether online or offline.

Decision-makers want a flexible, secure, and enterprise-grade strategy that can evolve with their
business. Enterprise developers want to take advantage of and expand on their skills—whether those
skills are in web/JavaScript, .NET/C#, or C++ and existing code base. And they want to be able to
connect to back-end systems, either in the cloud or on-premises, and deliver continuously and quickly—as required by the business. IT wants to have confidence in its secure management of apps
and devices, and marketing wants to drive effective, mobile, and targeted campaigns.

An organization might see its mobile client app strategy fulfilled by investments in websites, simple
client apps made up of web content, or in feature-rich client mobile apps that make use of many of
the capabilities of the device. Indeed, many organizations take a multichannel approach to their
business needs by investing in multiple approaches in a complementary manner.

A mobile web presence provides a broad approach that has a simple update process across all form
factors. It is, however, limited when thinking about device capabilities (such as the ability to interact
with a barcode scanner) and therefore less capable of engaging these capabilities or of promoting
employee productivity scenarios. Mobile client apps, on the other hand, which are distributed via
stores, have full device capabilities and engaged experiences but require compilation and packaging
for each target platform (iOS, Android, or Windows).

Selecting to go web or mobile client app (or to choose some combination of them) involves decisions
that range from an architectural point of view to considerations of cost, quality, and time to market
(and can vary from project to project). In today’s fast-moving world, it is not just about the construction of apps; it’s also about how productive the development teams are, how well they can
adjust to feedback and fix issues, how IT manages apps and devices in the modern “bring your own
device” (BYOD) environment, and how well marketing can engage with its audiences. Decision factors might therefore include the following:

 The existing skills or ability of a developer or team, along with costs to retool and retrain.

 The types of apps to be built and their business objective, such as Business to Employee (B2E),
Business to Business (B2B), or Business to Consumer (B2C).

 Technological requirements, such as device capabilities, security, existing enterprise systems, new
capabilities (like push notifications, beacons, or analytics to drive app health), user telemetry, or
marketing and engagement campaigns.

 Community and product support capabilities, including integration with existing tools and
processes.

 The time-to-market, quality, and adherence to the look and feel or user experience (UX) of the
desired platforms.

 Costs, skills, time, and ability to drive an agile, quality-focused development process from staging,
to beta, to production—the software development lifecycle (SDLC).

 Secure mobile client app delivery, management, or device management requirements.

The Microsoft platform for mobile app development has the following components:

 Apps development Developers can use client-side technologies to build client apps
themselves, using specific frameworks and patterns for a cross-platform approach. With Microsoft
technologies, developers can build native (native-single-platform using languages like Objective-
C and Java with Microsoft Azure SDKs, native and cross-platform apps using Xamarin, .NET and
C#), hybrid (using Cordova and its variants), or websites (ASP.NET), depending upon their decision
factors.

Professional developers building client front ends can make use of integrated development
environments (IDEs) and code editors such as Microsoft Visual Studio, Xamarin Studio, or Visual
Studio Code on PCs and Macs to construct their client apps. These tools offer a Rapid Application
Development (RAD) approach to building client mobile apps with designers, IntelliSense, and
other productivity features, such as cross-platform debugging. In addition, a no-code, visual RAD
tool, called Microsoft PowerApps, makes it possible for users to build codeless mobile enterprise
apps quickly and easily with connections to their back-end enterprise systems.

 Back-end services development Azure App Service, Azure Service Fabric, and Azure IaaS virtual
machines (VMs) provide the foundation from Mobile Back End as a Service (MBaaS) to PaaS and
laaS, depending upon levels of customization, scale, and coding. Developers can create APIs
backed by connectors to enterprise systems, SaaS, and ERP/CRM systems. Developers use mobile
services, such as push notification, data sync online/offline, and authentication, and a data
platform, which together form a comprehensive and expansive MBaaS that supports a variety of
app construction scenarios. Developers who want to implement a microservices architecture can
use Azure Service Fabric (PaaS) to produce composeable APIs for scale and performance. This all
runs on Azure cloud and on-premises with Azure Stack.

 DevOps and app analytics Developers creating mobile back ends and client front ends can use
Visual Studio Team Services (online) or Team Foundation Server (on-premises) to build out a
comprehensive application lifecycle management (ALM) or Agile team environment—from
source-code control and bug tracking to scrum workload tracking.

Developers can create mobile and cloud-focused DevOps for a fast, iterative process that covers
continuous integration (CI) delivery, continuous delivery (CD), and release management (RM).
Developers can produce native builds for all platforms and can run unit tests and UI automation—
including against emulators or real devices in the cloud—using Xamarin Test Cloud or partners,
such as Perfecto Mobile or Sauce Labs. Developers also can automate their back-end code
releases in Azure staging slots, from development to staging and production.

Developers creating comprehensive build tasks can automate their releases through to beta test
channels, such as HockeyApp, or deploy directly to enterprise stores or app stores or to enterprise
management products such as Intune.

Using HockeyApp, developers can easily distribute and gather exception telemetry from their
apps. As part of the beta process, HockeyApp gives developers the means to easily distribute their
beta versions to an internal or external audience. Additionally, by making use of HockeyApp SDKs,
developers can monitor and respond to issues in their apps through crash reports.

 End-user insights and business analytics Azure Mobile Engagement provides insights on users
and how they are using the app, along with a way to segment users and to create targeted
marketing campaigns based on push notifications sent to mobile devices.

 IT management and security Developers using Active Directory (AD) can produce apps that
support Single Sign-On (SSO), but integration with Azure App Service mobile apps back end
(MBaaS) simplifies the process and gives developers a way authenticate users via Azure Active
Directory (Azure AD) or social authorization, such as Twitter, Facebook, or Google. Use of Azure
App Service SDK also provides developers the ability to create secure online/offline data
protection, over the air and at rest, through local encryption.
Developers and IT can further manage access to back-end APIs by using Azure API Management.
IT can manage apps and devices in several ways:

 Microsoft PowerApps uses Azure AD to ensure access control across apps and connected
services.

 Apps deployed and managed through Intune can set policies to restrict features of the app or
to restrict the user or enforce encryption or VPN transport.

 Apps deployed to devices through Intune can be securely managed (for example, in the event
of loss of the device).

Microsoft therefore offers a complete foundation for a mobile app strategy. At the same time, it is a
collection of technologies with which you can optionally select and integrate with existing tools and
processes. The flexibility in a broad approach and the strength in the depth of capabilities place
Microsoft in a strong position for enterprise mobile apps development.

Source Of Information : Microsoft Platform and Tools for Mobile App Development

No comments: