Choosing a Mobile Deployment Platform

ubiquitousstrumpetMobile - Wireless

Dec 10, 2013 (3 years and 8 months ago)

123 views

Choosing a Mobile
Deployment Platform
Lloyd Heberlie
Tom Brenneman
Agenda

Understanding options for mobile GIS

What questions to ask when deciding on a mobile
platform

Native vs. web

Case studies

Digging into the strengths and weaknesses of each
platform
Why mobile?

Mobile is where the market is going

Mobile internet adoption outpaces desktop internet
adoption by 8x (Economy + Internet Trends
)

More smartphones than PCs will be sold in 2011
-
RBC analyst Mike Abramsky

Within 5 years “More users will connect to the
Internet over mobile devices than desktop PCs.”
-
Mary Meeker
Mobile development options

Native platform
-
ArcGIS Mobile SDK
-
ArcGIS API for iOS
-
ArcGIS API for Windows Phone
-
ArcGIS API for Android – Open Beta
-
ArcGIS API for Flex
-
ArcPad Studio

Web
-
JavaScript Compact Build – dojox.mobile, JQTouch,
Jquery Mobile.
Mobile
solution
How do you decide on a mobile solution
How will the
application be used?
Consume and
query content
Simple data
updates
Picture / Video /
Voice data updates
What devices
are available?
Complex data
forms
Provisioned
devices
Existing
users
devices
Pier to pier
interaction
What’s your
budget?
We have to use
existing skills
and personnel
The value of the
project defines
its scope
Can be
disconnected
Geocoding and
geoprocessing
Native vs. Web

Native
-
Deployed application through app store / marketplace
-
Application deployed with the device

Web
-
Web page accessed from the mobile device
Why use a native platform

Performance

Functionality
-
Access to device capabilities
-
Camera, contacts, compass, calendar, etc.
-
Push notifications

Usability
-
Native platforms are designed for the device

Market penetration
-
App store / Marketplace is where mobile users look first

Easier to monetize
Why web platform

Code reuse / budget

One development environment

Targeting multiple devices
-
Modifications needed for each device but development
environment is the same

Limited device access

Full control over deployment
-
No approval process

Faster to production
-
No app store
Case study: ESPN

Web – Desktop
-
Full content access

Web – Mobile
-
Focused content access
-
Main news stories
-
Vote for Sports nation
-
Simple data editing
-
Simple menus
categorizing content

Native – Mobile (ScoreCenter)
-
Track scores for myTeams
-
Push updates for scores
-
Link to web content

Native – many other options
Case Study: CNN

Web – Desktop
-
Full content – tabbed sections

Web – Mobile
-
Scrollable sections

Native – Mobile
-
News by section
-
Location based news
(My CNN)
-
iReport –
data collection
Common themes from case studies

Web – Desktop
-
Most content

Web – Mobile
-
Focused content (similar to desktop)
-
Simple feedback

Native – Mobile
-
More complex data entry
-
Location based content
-
Push notifications
Case Study: Gulf Oil Spill

Web – Desktop
-
Common Operational Picture
-
Community outreach

Native – iOS
-
Command center
decision makers

Native – ArcGIS Mobile
-
Shoreline assessment,
Deployed boom,
Engineered obstacles,
etc.
-
Detailed GIS data
collection
ArcGIS Mobile SDK

Platforms
-
Windows Mobile 5.0,6.0,6.1, and 6.5

Development platform
-
Windows XP/Vista/7
-
.NET Framework 3.5 SP1

Development environment
-
Visual Studio
-
WPF – .NET Framework 3.5 SP1
-
Win Forms - .NET Framework 2.0
ArcGIS Mobile Customization options

Extend the existing mobile and windows applications
-
New Tasks
-
Extend Tasks – Project Extension

Build a complete application

See: Developing Applications with the ArcGIS Mobile
API
-
Wednesday, 10:30 – 11:45, Mesquite GH
Why ArcGIS Mobile

Professional GIS data collection

Good GPS and data collection controls

Easily configurable without code
Picture /
Video / Voice
data updates
Complex data
forms
Provisioned
devices
Pier to pier
interaction
Consume and
query content
ArcGIS API for iOS

Platform
-
iOS version 3.1.2 or higher

Development platform
-
Mac

Development environment
-
Xcode, Interface Builder, Instruments
-
Cocoa Touch, Objective C
-
iOS SDK 4 or higher

See: Advanced Development with ArcGIS API for iOS
-
Thursday 8:30 am and 1:30 pm, primrose C/D
Why iOS

Large smart phone user base
-
Largest app community

Tablet and phone development in the same
environment

iTunes / App Store
Picture /
Video / Voice
data updates
Existing
users
devices
The value of the
project defines
its scope
Consume and
query content
Geocoding and
geoprocessing
iOS Demo
(Parcel value for iPhone)
iOS using C# - MonoTouch from Novell

Platform
-
iOS

Development platform
-
Mac

Development environment
-
Apple’s iPhone SDK
-
ArcGIS API for iOS
-
MonoDevelop

MonoTouch Map Viewer for iPhone 4
on ArcGIS.com
-
Bound assembly to ArcGIS API for iOS native library

The end result is a true native iOS application

See: Writing iOS a Mapping Application in .NET C#
-
Today 4:00 – 4:45, Demo Theater 2 – Oasis 1
ArcGIS API for Windows Phone

Platform
-
Windows Phone 7

Development platform
-
Windows 7 or Windows Vista with SP 2

Development environment
-
Visual Studio
-
Windows Phone Developer Tools
Why Windows Phone

Leverage existing Silverlight / .NET
development skills

Strong native platform

See: Introduction to ArcGIS API for
Windows Phone
-
Wednesday 2:45 pm –
Pasadena/Ventura/Sierra

See: Advanced Development with ArcGIS
API for Windows Phone
-
Thursday, 10:15-11:30 -
Pasadena/Ventura/Sierra
Picture /
Video / Voice
data updates
Existing
users
devices
We have to use
existing skills
and personnel
Consume and
query content
Geocoding and
geoprocessing
ArcGIS API for Android

Platform
-
Android

Development platform
-
Windows, Mac, Linux

Development environment
-
Eclipse 3.5 or 3.6, Java development kit 6
-
Android Development Tools plugin for Eclipse
-
SDK Platform Android 2.1, API 7
-
SDK Platform Android 2.2, API 8
Why Android

Leverage existing Java development skills

Rapid active / growing development
community

Android Marketplace

See: Introduction to ArcGIS API for Andoid
-
Today 4:30 Primrose C/D

See: Advanced Development with ArcGIS
API for Android
-
Thursday 8:30 am and 1:30 pm – Primrose A
Picture /
Video / Voice
data updates
Existing
users
devices
Consume and
query content
Geocoding and
geoprocessing
The value of the
project defines
its scope
Android Demo
ArcGIS API for Flex

Platform
-
Android, iOS

Development platform
-
Windows, Mac, Linux (no IDE)

Development environment
-
Adobe FlashBuilder, Creative Suite
-
ActionScript, MXML
-
AIR for Android, packager for iOS
Why Flex

Leverage existing skills

Strong developer / design community

Good support for device capabilities
-
Camera, Accelerometer, GPS

See: Using the ArcGIS Flex API to Build
Collaborative Mobile Applications
Deployed on Multiple Platforms (Android
and iOS)
-
Wednesday, 10:30-11:15 –
Demo Theater 2 – Oasis 1
Picture /
Video / Voice
data updates
Existing
users
devices
We have to use
existing skills
and personnel
Consume and
query content
Geocoding and
geoprocessing
Flex Mobile Demo
When to use the Native ArcGIS Application

Fast deployment
-
All you need is a web map
-
Users will need instruction on the map to
load

Phase 1
-
Get user reaction to default app to hone
requirements for phase 2

Deployment to the GIS community
Picture /
Video / Voice
data updates
Existing
users
devices
We have to use
existing skills
and personnel
Consume and
query content
Geocoding
Write once – deploy multiple (sort of)

Never seamless between platforms
-
Tweaks are always necessary: iOS to Android to
Windows Phone
-
Tablets may warrant their own interface

JavaScript compact build
-
Style appropriately for platform
-
Dojox.mobile likely easiest approach

ArcGIS API for Flex
-
Adobe Flex SDK “Hero” + Adobe Flash Builder “Burrito”
JavaScript compact build

JavaScript API with smaller footprint (~30kb)
-
No dijits
-
Limited modules

Can use with variety of JavaScript toolkits
-
Dojox.mobile
, jQuery mobile
, jQtouch
, Sencha Touch
,
etc.

PhoneGap
(Some access to phone capabilities)
-
Build native app from JavaScript
-
Development requirements vary by targeted platform

No limitations on platform, developer platform or IDE
Using the JavaScript compact build

Load modules not included if they are needed
-
dojo.require(“esri.tasks.query”)

Use Application cache (HTML 5) to store code locally
-
Check manifest to see if new code is available

Samples available on mobile at
http://links.esri.com/javascript

ProtoFluid is a great app for testing page size of
devices http://app.protofluid.com/
-
Use in conjunction with FireBug to debug layout on
desktop
Support and API

New mobile features at JavaScript API 2.2
-
Better touch support
-
Gallery widget

Supported browsers
-
Android 2.2+
-
iOS
-
BlackBerry Torch
Why JavaScript

All the why web platform

More easily deploy across platforms

Leverage web developers skill set

See: Advanced Development with ArcGIS
API for JavaScript
-
Wed 10:30am Pasadena/Ventura/Sierra (RH)
-
Thu 1:30pm Primrose B (PSCC)
Simple data
updates
Existing
users
devices
We have to use
existing skills
and personnel
Consume and
query content
Geocoding and
geoprocessing
Demo JavaScript compact Build
Getting more information
Where can I get more information?

Resource center
-
http://resources.arcgis.com/content/mobilegis/about

ArcGIS.com groups
-
ArcGIS Mobile Code Samples
-
ArcGIS for iOS Developer Samples

Training
-
Building Application Using the ArcGIS Mobile SDK
-
Building Web Applications Using the ArcGIS API for
JavaScript
Esri Training for Mobile GIS Developers
http://www.esri.com/training
DevSummit Agenda: Mobile Technical Sessions

New Capabilities in ArcPad 10 for Advanced
Developers
-
Wednesday 1:00 – Demo Theater 2 – Oasis 1
Summary

What are your requirements?

What is your budget?

What is negotiable?
Please fill out the session
survey