This is a continuation of a series of articles on
operational engineering aspects of Azure public cloud computing. In this
article, we continue the discussion on Azure Maps which is a full-fledged general
availability service that provides similar Service Level Agreements as expected
from others in the category but with an emphasis on writing mobile
applications. Specifically, we target the Android platform.
We leverage an Event-Driven architecture style where the
Service Bus delivers the messages that the mobile application processes. As
with the case of GeoFencing, different messages can be used for different
handling. The mobile application is a consumer for the message making
occassional API calls that generates messages on the backend of a web-queue
server. The scope of this document is to focus on just the mobile application
stack. The tracking and producing of messages are done in the backend and the
mobile application uses the Bing Maps to display the location. We will need an active Azure Maps account and
key for this purpose. The subscription, resource group, name and pricing tier
must be determined beforehand. The mobile application merely adds an Azure Maps
control to the application.
An Android application will require Java based deployment.
Since the communication is over HTTP, the technology stack can be independent
between the backend and the mobile application. The Azure Maps Android SDK will
be leveraged for this purpose. The top-level build.gradle file will define the
URL https://atlas.microsoft.com/sdk/android.
Java 8 can be chosen as the appropriate version to use. The SDK can be imported
into the build.gradle with the artifact
description as "com.azure.android:azure-maps-control:1.0.0". The
application will introduce the map control as
<com.azure.android.maps.control.MapControl android:id="@+id/mapcontrol"
android:layout_width="match_parent" android:layout_height="match_parent"
/> in the main activity xml file. The corresponding Java file will add
imports for the Azure Map SDK, set the Azure Maps Authentication information
and get the map control instance in the onCreate method. SetSubscriptionKey and
SetAadProperties can be used to add the authentication information on every
view. The control will display the map even on the emulator. Sample Android
application can be seen here.
As with all application, the activity control loops must be
tightened and guide the user through specific workflows. The views, their
lifetime and activity must be controlled, and the user should not see the
application as hung or spinning. The interactivity for the control is assured
if the application is recycling and cleaning up the associated resources as the
user moves in and out of a page to another page.
It is highly recommended to get the activity framework and
navigations worked out and planned independent of the content. The views
corresponding to the content are going to be restricted to the one that
displays the control, so the application focuses mostly on the user navigations
and activities.
No comments:
Post a Comment