2. RBA
Microsoft National Systems Integrator
Gold Certified Microsoft Partner
7 Gold Competencies
6 Silver Competencies
Named Best Places to Work in the
Twin Cities 4 times
Xamarin Premier Partner
Joe Koletar
Mobile Solutions Lead
joe.koletar@rbaconsulting.com
P:2 CROSS PLATFORM MOBILE DEVELOPMENT
3. MOBILE DEVICE OPPORTUNITY
Opportunity
– Mobile devices present an opportunity to reach users
where its most convenient
• Business to Consumer (B2C) Applications
• Business to Business (B2B) Applications
Challenge
– How to develop applications to reach the broadest
range of users in the most effective manner possible
for the least cost
P:3 CROSS PLATFORM MOBILE DEVELOPMENT
4. CROSS PLATFORM TOOL OPTIONS
There are a spectrum of technology options to
provide cross platform support for enterprise apps
Cross Platform Solutions
Mobile Native Cross
Interpreted Native
Web Wrapper Compiled
P:4 CROSS PLATFORM MOBILE DEVELOPMENT
5. MOBILE WEB
Definition
Web site with a mobile customized UI
– Detect user device and customize display to device
form factor
• Responsive Design
– HTML 5 encourages a common browser experience
and provides some offline support
P:5 CROSS PLATFORM MOBILE DEVELOPMENT
6. MOBILE WEB
How it works
Users access web site from device browser
Business/Data Code
HTML5/CSS/JavaScript
Web Browser Web Browser Web Browser
iOS Android Windows Phone
P:6 CROSS PLATFORM MOBILE DEVELOPMENT
8. NATIVE APP
Definition
Native App is written custom for each device
P:8 CROSS PLATFORM MOBILE DEVELOPMENT
9. NATIVE APP
How it works
Native App is written custom for each platform
Objective C Java C#
Native App Native App Native App
iOS Android Windows Phone
P:9 CROSS PLATFORM MOBILE DEVELOPMENT
10. NATIVE APP
Cost
Maintainability
Performance
User Experience
Offline Capability
Sensors
Toolset Choices
P:10 CROSS PLATFORM MOBILE DEVELOPMENT
11. NATIVE WRAPPER
Definition
Web App is wrapped in device specific code to
run as a Native App
– Web app is hosted in a chromeless browser window.
P:11 CROSS PLATFORM MOBILE DEVELOPMENT
12. NATIVE WRAPPER
How it works
Web App is wrapped in device specific code
– Access to sensors is achieved through a bridge
HTML5/CSS/JavaScript
Web View Web View Web View
Bridge Bridge Bridge
Native API Native API Native API
iOS Android Windows Phone
P:12 CROSS PLATFORM MOBILE DEVELOPMENT
13. NATIVE WRAPPER
Cost
Maintainability
Performance
User Experience
Offline Capability
Sensors
Toolset Choices
P:13 CROSS PLATFORM MOBILE DEVELOPMENT
14. INTERPRETED
Definition
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
P:14 CROSS PLATFORM MOBILE DEVELOPMENT
15. INTERPRETED
How it works
Application is written in scripting language
Script proxies provide access to native widgets
JavaScript
Script Script Script
Interpreter Interpreter Interpreter
Native API Native API Native API
iOS Android Windows Phone
P:15 CROSS PLATFORM MOBILE DEVELOPMENT
16. INTERPRETED
Cost
Maintainability
Performance
User Experience
Offline Capability
Sensors
Toolset Choices
P:16 CROSS PLATFORM MOBILE DEVELOPMENT
17. CROSS COMPILED
Definition
Cross compiled applications map a common
language to platform specific languages
P:17 CROSS PLATFORM MOBILE DEVELOPMENT
18. CROSS COMPILED
How it works
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
P:18 CROSS PLATFORM MOBILE DEVELOPMENT
19. CROSS COMPILED
Cost
Maintainability
Performance
User Experience
Offline Capability
Sensors
Toolset Choices
P:19 CROSS PLATFORM MOBILE DEVELOPMENT
20. XAMARIN TOOLS – A DEEPER LOOK
Allows programming C# to iOS and Android
– Access to .NET Base Libraries
– Full featured language support:
• LINQ
• Generics
• Task Parallel Library
• Lambdas
– C# 5.0 support targeted for March
• Async feature
C# bindings for nearly the entire underlying
platform SDKs
– UI code is platform specific
– Supports native User Experience
– Also imposes a learning curve
P:20 XAMARIN TOOLS
21. XAMARIN – HOW IT WORKS
Built on top of Mono
Open source version of the .NET Framework
Ported to numerous platforms
On Android, Xamarin’s compiler compiles down
to Intermediate Language (IL), which is
then Just-in-Time (JIT) compiled to native
assembly when the application launches.
On iOS, Xamarin’s Ahead-of-Time (AOT)
compiler compiles Xamarin.iOS applications
directly to native ARM assembly code.
P:21 XAMARIN TOOLS
22. XAMARIN PRODUCTS
Mono for Android
– Targets Android platform
– Can code in either Visual Studio or MonoDevelop
MonoTouch
– Targets iOS platform
– Requires Macintosh computer running at least OSX Lion
– Can code in MonoDevelop
Free Trial versions do not support deployment to
device
– Must perform testing in an emulator/simulator
P:22 XAMARIN TOOLS
26. XAMARIN LINKS
Download trial software at:
– http://xamarin.com/trial
TaskyPro Source Code
– https://github.com/xamarin/mobile-samples/tree/master/TaskyPro
TaskyPro Case Study
– http://docs.xamarin.com/Android/Guides/Application_Fundamentals/B
uilding_Cross_Platform_Applications/Case_Study%3A_Tasky
Numerous tutorials available at Xamarin Dev Center
– http://docs.xamarin.com/
– http://forums.xamarin.com/
YouTube Xamarin Channel
– http://www.youtube.com/user/xamarinhq
X86 Emulator install instructions
– http://docs.xamarin.com/Android/Guides/Deployment,_Testing,_and_Metrics/Confi
guring_the_x86_Emulator
P:26 XAMARIN TOOLS
27. MOBILE TOOLS SELECTION
Considerations
Your mobile technology is a vital strategic
selection
– Must consider immediate and future needs
– Assess skills needed to build and maintain
– Determine best fit for the application
P:27 CROSS PLATFORM MOBILE DEVELOPMENT
28. CLOSING
Questions
Giveaways
P:28 CROSS PLATFORM MOBILE DEVELOPMENT
Editor's Notes
Presentation has 4 partsSurvey of cross platform options – give Xamarin contextHow Xamarin worksAndroid demoiOS demoGiveaways
Note that this is mostly my own taxonomy
AdvantagesLowest costOnly need to write it onceVery device agnosticNo need to install or provisionFamiliar toolset – HTML5, CSS, JavaScriptBusiness logic can be in more robust languageDisadvantagesDoesn’t handle disconnected experience wellNot in App StoreLeast compelling UI (lowest common denominator)Varying browser support HTML 5 standardsLimited device sensor integrationShallow Experience“Delivering a rich, immersive, transformative mobile experience has become the de facto requirement to ensure wide adoption and success.”Appcelerator Q1 2013 Mobile Enterprise Report
AdvantagesCan be tailored to each deviceSupports disconnected experienceMost flexible sensor integrationAccess to latest APIsBest performanceDeep experienceDisadvantagesExpensiveMust be coded and maintained for each environmentRequires a variety of developer toolsetsLeading platform changes frequently
AdvantagesMust be coded only onceSupports disconnected experienceSupports sensor integration via wrapping APIAbility to use familiar toolsetDisadvantagesLeast compelling UIComplex logic in JavaScriptPerformance can be an issue
Titanium Appcelerator provides a JavaScript implementation of the Android and iOS APIRhoMobile provides a Ruby implementation of the Android, iOS, Windows phone API and others
AdvantagesMust be coded only onceSupports disconnected experienceSupports sensor integration via InterpreterAbility to use common languageBetter UI control than Native WrapperDisadvantagesPerformance can be an issue, but less so than native wrapper appsConstraints on business logic language
AdvantagesBusiness logic must be coded only onceSupports disconnected experienceSupports sensor integrationAbility to use common languageBetter UI control than Native WrapperEssentially native performanceDisadvantagesMust understand platform specific UI codingLarger executable