1. Cross Platform
Mobile
marcelv@infosupport.com
Development - @marcelv
Introduction
What strategy works best for my apps?
#ISMOBILE
2. Agenda
Mobile space
– Market shares
– Research predictions
Building mobile apps
– What are my options?
– What is native app development?
– Hybrid solution with Mono
What strategy works best for my app?
Cross Platform Mobile Development - Introduction
3. Market research
# of mobile devices sold now exceeds # of
PC’s!
Cross Platform Mobile Development - Introduction
4. Market research
In a few years the number of mobile devices
will dwarf the number of PC’s
Cross Platform Mobile Development - Introduction
5. Market Shares
Right now it is a two horse race
Cross Platform Mobile Development - Introduction
6. Market shares
The game is not over, there is still a big market
to gain!
Cross Platform Mobile Development - Introduction
7. Smart Phone OS predictions
Others Others
Others
4% 2010 4% 2011 3% 2015
Android Window Window
Window
23% s Phone Android s Phone
s Phone Android
6% 39% 20%
4% 49%
Symbia
n Symbia
Symbia 19% n
n 0% iOS
37% iOS 17%
iOS BlackBe 19%
16% rry 13%
BlackBe BlackBe
rry 13% rry 13%
Source: Gartner (http://www.gartner.com/it/page.jsp?id=1622614)
Cross Platform Mobile Development - Introduction
8. Tablet Market shares predictions
2011 Others
2012
Android Others
2015
Others Android
Window 7% 22% 9% Android
10% 17%
s Window 35%
0% s
4%
iOS
iOS iOS 45%
73% 67%
Window
s
11%
Source: Gartner
(http://www.gartner.com/it/page.jsp?id=1800514)
Cross Platform Mobile Development - Introduction
10. Building apps for the Mobile Space
User Distribution:
Experience Developer Public or
productivity private
Corporate?
Security
& privacy
Which
platforms
?
Application
Lifecycle
Management
Cross Platform Mobile Development - Introduction
11. User interface design
Graphical design
– How does the app look?
Interaction design
– How do I create an effective and efficient user
interface?
– How do I create a natural experience that people
understand without training?
Cross Platform Mobile Development - Introduction
12. User Experience
Emotion
Sense
Sometimes almost a
religion!
Must closely match the
native device experience!
Cross Platform Mobile Development - Introduction
13. Touch interface
Cross Platform Mobile Development - Introduction
14. How target size influences error rate
USABILITY RESEARCH
1/25
1/100
1/1000
15. Use touch target size
Recommended size
– 7x7mm
Optimized for accuracy
– 9x9mm Microsoft: 9x9mm
Apple HIG:
44x44px
Optimized for small size
– 5x5mm
Each target has 2mm padding
18. HTML 5 mobile websites
Runs from the web
Maximum reach
No native user interface
Optional shortcut on the
device with offline support
Cross Platform Mobile Development - Introduction
19. HTML5 mobile apps
Can be purchased from
AppStore
Installed on the device
Network connection not
required to run
No native user interface
Cross Platform Mobile Development - Introduction
20. Native mobile apps
Can be purchased from
AppStore
Installed on the device
Network connection not
required to run
Native interface
Maximum richness
Cross Platform Mobile Development - Introduction
21. Native mobile apps
Different development
environments
– Java for Android
– Objective-C for iPhone
– XAML/C# for Windows Phone
Cross Platform Mobile Development - Introduction
22. Application types
Native look & feel -- -- ++
Camera Access -- +- ++
GPS ++ ++ ++
Secure service communication JSON/REST JSON/REST JSON/SOAP
Access to calendar -- -- ++
Twitter integration +- +- +
Distribution ++ AppStore presence AppStore presence
Cross Platform Mobile Development - Introduction
23. Building native apps, the options
C / C++
Different CPU architectures
Objective-C C# / Silverlight
C / C++ 3+
Cross Platform Mobile Development - Introduction
24. Building native apps, the options
Really?
Write an app for each device?
I need to master Objective C, Java and C#?
Any alternatives?
Cross Platform Mobile Development - Introduction
25. 3 types
WP7
Xamarin Silverlight
MonoTouch Xamarin
Mono for
Android
Appcelerator
Adobe AIR Titanium
WP7 ActionScript JavaScript > Native
XCode Silverlight
Objective- C#
C
Rhodes
Ruby + HTML
Service2Media
Lua
C#
Android
SDK
Java Antenna
Rapid
Sybase
Unwired
App Logic
Scripting “4GL” code gen
Language Shared
Kony PhoneGap language
Javascript HTML5 / CSS /
Lua JS
Vendor tools “Magic Box” Hybrid
Cross Platform Mobile Development - Introduction
26.
27. What is the meaning of “native”?
Native = use the frameworks and libraries
of the OS, regardless of the language or
tools
Native = User experience 100% aligned
with default OS device experience
+ Leveraging all device capabilities
Cross Platform Mobile Development - Introduction
28. Hybrid - .NET Multi platform
Mono for
MonoTouch C# / Silverlight
Android
• Wrappers on OS framework/API
• .NET feel: properties, events, LINQ, PLINQ, XML, WCF, etc.
• App & UX 100% native!
Cross Platform Mobile Development - Introduction
31. Perceived performance
Yes there is overhead
Native-to-Managed causes overhead
Mono has a garbage collector
CPU-intensive: use LLVM compiler
But it’s no problem
Most of us don’t build real time 3D gfx
Make the app feel fast
Keep download size small
Cut startup time by offloading tasks ASAP
Use background tasks & activity indicators
32. Even game developers choose Mono!
Cross Platform Mobile Development - Introduction
33.
34. You can access all device capabilities!
For each platform there is a set of namespaces
that enable full device access
iOS Android: Windows Phone:
MonoTouch.CoreLocation Android.Hardware.Sens Microsoft.Devices.Sensors.Gyroscope
MonoTouch.CoreMotion or Microsoft.Devices.Sensors.Acceleromet
MonoTouch.AVFoundation Android.Location er
MonoTouch.AddressBook Android.Bluetooth Microsoft.Devices.Sensors.Compass
MonoTouch.EventKit Android.Nfc Microsoft.Devices.Sensors.Motion
… … …
35.
36. Code sharing ISKE app
Android Reusable
Per App
16% Specifi
20%
WP7 c
12% 35%
Share
iOS Shared d
18% app logic 65%
Window 20%
s8
14% ...and that’s without the
back end
37.
38. What strategy works best for my app?
Business reasons for your app
– Presence
– I really want to add value to my product / brand
The tradeoff’s
– Always Connected
• HTML, Native
– Occasionally connected
• Disconnected HTML, Native
– What device capabilities do you need?
• GPS => HTML still an option
• Phone book, dial integration, Accelerator, compass, etc
– HTML + Magic box can be used
– Native
Cross Platform Mobile Development - Introduction
39. What strategy works best for my app?
So I choose for HTML
– Will I pick pure HTML or use magic box
– Magic box adds capabilities to access device
sensors
So I choose Native
– Will I pick a new development strategy for each
device?
– Will I use one uniform platform and programming
language
• Code sharing capability up until 70-80%!
– Bottom line: Native != 3 stacks
Cross Platform Mobile Development - Introduction
40. Call to action
Revisit your app development strategy
What are the reasons I choose my current
implementation strategy
Consider going native, since native provides the
best experience
– But don’t accept vendor multi stack as the only
solution
If going native consider the use of Mono
– Provides all capabilities you have with vendor tools
– Adds code sharing capability and will reduce
development cost significantly!
Cross Platform Mobile Development - Introduction
41. Questions?
Cross Platform Mobile Development - Introduction
Editor's Notes
De term Native wordt op verschilendemanierengeinterpreteerd. Op diverse OS-en hebben we eenbepaaldebetekenis, meestaleenverwijzingnaareen C of C++ achtigetaal.
Rhodes – rhomobile ; Ruby + HTML; MVC architectuur met extra framework zakenvoor sync en ORMAntenna: Appcellerator: pure javascriptoplossing met cross platform API. Wel: native UI bindings. Interpreted door meegedeployde interpreter
C/C++??? – NOG UITZOEKENGame developers: gemakkelijkom code teportenOpenGLWelkortnoemen, maar niet op sheetMono verhaalietsuitbouwen.