2. 2
RBA
Technical services across the full Microsoft
stack
Microsoft National Systems Integrator
Gold Certified Microsoft Partner
7 Gold Competencies
6 Silver Competencies
Named Best Places to Work in the
Twin Cities 5 times
Joe Koletar
Mobile Solution Lead
joe.koletar@rbaconsulting.com
Minnesota Enterprise Mobile November 2013
4. 4
User Expectations
The Mobile Challenge
Consumers now have an expectation that any
desired information or service is available, on any
appropriate device at your moment of need
Forrester Research, The Mobile Mind Shift
Minnesota Enterprise Mobile November 2013
5. 5
Mobile OS Market Share
Market share fracture and ongoing shift means
there is no obvious, single choice.
3
%
Windows
39
%
iOS
52
%
Android
5
%
Blackberry
Comscore, Top Smartphone
platforms, ending April 2013
Minnesota Enterprise Mobile November 2013
6. 6
Mobile Wish List
Support multiple platforms - BYOD
Provide a rich, native experience
Get to market quickly
Have an easily maintained code base
Support future flexibility
Do it at a reasonable cost
Minnesota Enterprise Mobile November 2013
7. 7
Mobile Objective
How to develop applications to reach the
broadest range of users in the most effective
manner for the least cost
Minnesota Enterprise Mobile November 2013
8. 8
Understanding the Trade-Offs
Performance and familiarity increase the closer to platform
specific your app gets but so does cost and complexity.
Cross-Platf orm Options
Mobile
Web
Native
Wrapper
Interpreted
Platform
Specific
Cross
Compiled
Value
Minnesota Enterprise Mobile November 2013
9. 9
Mobile Web
Web site with a mobile customized UI
• Detect user device and customize display to
device form factor
• Responsive Design
Minnesota Enterprise Mobile November 2013
10. Mobile Web
10
Users access the site from device browser
Business/Data Code
HTML 5/CSS/JavaScript
Web Browser
Web Browser
Web Browser
iOS
Android
Windows Phone
Minnesota Enterprise Mobile November 2013
13. Platform Specific
13
Native application is written for each platform
Objective C
Java
C#
Native App
Native App
Native App
iOS
Android
Windows Phone
Minnesota Enterprise Mobile November 2013
15. 15
Native Wrapper
Web App is wrapped in device specific
code to run as a Native App
Web app is hosted in a chromeless
browser window.
Minnesota Enterprise Mobile November 2013
16. Native Wrapper
16
Web app is wrapped in device specific code
Access to sensors is achieved through bridge
HTML 5/CSS/JavaScript
Web View
Web View
Web View
Bridge
Bridge
Bridge
Native API
Native API
Native API
iOS
Android
Windows Phone
Minnesota Enterprise Mobile November 2013
18. 18
Interpreted
Interpreted applications map a common
language to platform specific APIs
−Abstraction layer is provided on top of the native API
−Code is written to run on the abstraction layer
Minnesota Enterprise Mobile November 2013
19. Interpreted
19
Application is written in scripting language
Script proxies provide access to native widgets
Script
Script
Script
Script
Interpreter
Interpreter
Interpreter
Native API
Native API
Native API
iOS
Android
Windows Phone
Minnesota Enterprise Mobile November 2013
21. 21
Cross Compiled
Cross compiled applications map a
common language to platform specific
SDK
Minnesota Enterprise Mobile November 2013
22. Cross Compiled
22
Common business logic is combined with
platform specific UI code into native app
C# Business/Data Code
C# iOS UI
C# Android UI
C# Win Phone UI
Native App
Native App
Native App
iOS
Android
Windows Phone
Minnesota Enterprise Mobile November 2013
24. Xamarin – What do you get
24
Allows programming C# to iOS and Android
Access to .NET Base Libraries
Full featured C# 5.0 support includes:
−LINQ
−Generics
−Task Parallel Library
−Lambdas
−Async
Minnesota Enterprise Mobile November 2013
25. 25
Xamarin – How does it work
Evolved from Mono project
−Open source version of the .NET Runtime
−Ported to various platforms
C# bindings for nearly the entire
underlying platform SDKs
−UI code is platform specific
−Supports native User Experience
−Also imposes a learning curve
Minnesota Enterprise Mobile November 2013
26. 26
Xamarin – How does it work
Xamarin.iOS does
full Ahead Of Time
(AOT) compilation
to produce an ARM
binary suitable for
Apple’s App Store.
Xamarin.Android
takes advantage of
Just In Time (JIT)
compilation on the
Android device
Minnesota Enterprise Mobile November 2013
27. Xamarin – Demo
27
Android
• Hello, World
• Tasky Pro
iOS
• Hello, World
• Field Service App
Minnesota Enterprise Mobile November 2013
28. Tasky Pro Architecture
28
iOS App
Shared Code
Data Layer
Data Access
Layer
TaskDatabase
Business
Layer
TaskManager
Application
Layer
UI Layer
Xamarin.iOS assemblies
TaskRepository
SQLLite
System, System.Core, System.Xml
Task
Android App
Application
Layer
UI Layer
Xamarin.Android assemblies
Minnesota Enterprise Mobile November 2013
29. 29
Xamarin – Licenses
Licenses are per developer, per platform,
per year
• Starter – Free, Limited App Size
• Indie - $299, Xamarin Studio Only
• Business - $999, Visual Studio, Email Support
• Enterprise- $1899, 1 day SLA
Minnesota Enterprise Mobile November 2013
31. 31
More Links
Tasky Pro Source Code
https://github.com/xamarin/mobilesamples/tree/master/TaskyPro
Tasky Pro Case Study
http://docs.xamarin.com/Android/Guides/Applica
tion_Fundamentals/Building_Cross_Platform_A
pplications/Case_Study%3A_Tasky
Field Service App
http://xamarin.com/prebuilt/fieldservice
Minnesota Enterprise Mobile November 2013