• No results found

Cross Platform Mobility

N/A
N/A
Protected

Academic year: 2021

Share "Cross Platform Mobility"

Copied!
23
0
0

Loading.... (view fulltext now)

Full text

(1)

Chris Auld

8 May 2012

Cross Platform Mobility

Why and How to Build Cross Platform

Mobile Applications

(2)

WHY? MOBILE STRATEGY DISCUSSION

Why mobile matters? Types of mobile apps

By user class

By technology approach

Why cross platform matters?

Does cross platform matter? Which platforms?

When?

HOW? MOBILE EXECUTION DISCUSSION

Value in unique user experiences Cross platform options

HTML+PhoneGap Mono

Native x N

Approaches to sharing code Mono vs PhoneGap

(3)
(4)

Does anyone in the room *not* have a smart device? Anyone in your family 15yr-65yr *not* have one?

What did you use 1st today, PC or Smart Device? How about last yesterday?

Have you used an app today?

(5)

Morgan Stanley Research from 2009

Actual inflection point

(6)

BY USER CLASS

Types of Mobile Apps

Enterprise

- Field force etc.

SME/BYOD

- Expense claims etc.

Consumer - Mobile banking BY APPLICATION APPROACH Web Apps - It works - It’s optimized - ICBINB ‘Real’ Apps - Wrapped HTML - Native

(7)

Does it matter?

Does need for enterprise apps kill BYOD strategy?

Why Cross Platform Matters

Application Approach Extra Cost

Web App/Wrapped HTML 20% X-Platform Toolkit (Mono) 30% Full Native 70%

Assume: Enterprise app build of say $250k

Assume: BYOD strategy to save $200/device via co-pay Assume: Three platforms ‘supported’ for BYOD

Extra Dev Capex Org Size for Break Even

$50,000 250 $75,000 375 $175,000 875

(8)

For Consumer/Public focussed apps it really does

matter.

iOS has massive penetration in high value user

segments

Android is bring Smart devices to the masses

Microsoft is playing catch-up, but, is prepared to buy

share

Think back to the first slide… how do you use mobile?

(9)

Market share? Visitor share?

Your site?

Some other ‘common’ site?

Which Platforms?

You want to target, in priority order, the platforms used by people most likely to use

(10)

IRD GST Site

Want to support filing GST return from mobile device

Business users

Blackberry is still very popular with business users Should we prioritize Blackberry? iOS?

(11)

How do app usage patterns differ?

Both Android and iPhone users D/L approx 10 apps

/month

19% of Android users buy at least one app /month 50% of iPhone users buy at least one app /month

Which Platforms?

(12)
(13)

Different platforms are…different

(14)
(15)

Cross Platform Mobile App Dev

HTML + PhoneGap

Significant reuse

 Re-use web assets

Doesn’t look native

 Everything like iOS?

AppStore issues X-Browser issues No offline on WP7 Animations poor APIs unavailable • Hardware access • Platform specific • It’s Javascript

 Must use OSS

 Less productive Mono C# + .NET in VS.NET  Lambdas, LINQ  Delegates, Events • Rich communications

Access to almost all platform APIs via Mono Wrappers

Go native if needed

UI still written ‘by-hand’

• Write UI for each platform +ve&-ve

100% Shared Code 0% Shared Code

Platform specific UX

Can write highly optimized code

• Games

• Graphics intensive apps

Write the app 3 times

• 3 different languages

• 3 x code to maintain

(16)

Shared files co-located; *.csproj for each platform Each solution has

Platform specific project Shared project

Similar MVVM pattern for all platforms

Shared Models Shared Repository

May be able to share ViewModels

Can use shared Interface + Platform Specific Implementation WindowsPhonePreferencesProvider: IDevicePreferencesProvider Can use pre-processor directives

#if MONOTOUCH

Can support Windows Mobile easily. No support for Blackberry

(17)

All files co-located A solution has

General purpose HTML + HTML templates Shared CSS + JS + Images

Platform specific CSS + JS + Images

Use MVVM or MVC pattern for all platforms

Backbone.js/Knockout.js Share ‘everything’

Complexity increases as platform count increases

Each platform may require some specific shims

Windows Mobile not supported & Older Blackberry OS is very hard to support Older phones may get a ‘bad’ experience

(18)

PHONEGAP

Choosing between PhoneGap or Mono

Existing advanced HTML+JS skills Must have MVVM/MVC

knowledge

Existing web resources

A need/desire to support browser

based viewing

Communications layer REST ready

MONO

Existing .NET C# dev skills Useful to have MVVM/MVC

knowledge

Complex communications requirements

Need lots of platform hooks

Performance matters

More productivity up-front

The smaller your organization and project the more developer productivity matters…

(19)

Intergen staff have been involved in developing several reference applications that are freely downloadable in source code form

Project Silk http://silk.codeplex.com/ (Don Smith AKL)

Rich HTML+JS Web Apps.

Project Liike http://liike.github.com (Don Smith AKL)

Rich HTML+JS Mobile Web Apps.

StockTrader v6 https://azurestocktrader.cloudapp.net/

(Chris Auld/James Carpinter WLG + others)

Massive scale Azure based app with cross platform rich client for iOS, Android, WP7, HTML5+JS, Windows Metro (Mono based)

(20)

Mobile Matters – Mobile First

Do you *really* need x-platform

(21)
(22)
(23)

References

Related documents

Cost - Material Escalation - General 2008 Trend of Secondary Construction Costs Increasing... Cost - Economic Impact on Material

The question, then, is how much detailed guidance does Flawless Execution provide to support Kotter’s 8-stage change management model.. Furthermore, how does Flawless

Jelasity and Kermarrec [20] proposed the following simple gossip protocol for this problem: In each round, a node contacts a peer chosen uniformly at random, and both nodes

A) 6° right. The distance between positions A and B is 180 NM. An aircraft departs position A and after having travelled 60 NM, its position is pinpointed 4 NM left of the

To give two examples: For example, we shall say that the pension of the year group of people born in 1920 increased by 4á in 1981 and the entry pension of the cohort of just

In Figure 9a, we assume =O.75 and illustrate the fraction of agents choosing to have an out-of-wedlock birth in each period starting with time t=0 before AFDC, going through

plastid genome fragment with that of non-photosynthetic (Prototheca wickerhamii) and photosynthetic (Chlorella vulgaris) close relatives.. The sequenced regions are

Since the firewall treats all hosts in a class the same, testing one address from each class gives com- plete coverage of the entire firewall policy.. For instance, when using nmap