Strategies for Developing Multi-platform Mobile Applications

Chris Grove http://www.keylimetie.com
Tuesday, March 9, 2010

Overview

Tuesday, March 9, 2010

Overview

Tuesday, March 9, 2010

Overview
• Decisions for success

Tuesday, March 9, 2010

Overview
• Decisions for success • Implementation approaches

Tuesday, March 9, 2010

Overview
• Decisions for success • Implementation approaches • Alternatives

Tuesday, March 9, 2010

Overview
• Decisions for success • Implementation approaches • Alternatives • Q&A
Tuesday, March 9, 2010

First Decision

Tuesday, March 9, 2010

First Decision
Is it worth it?

Tuesday, March 9, 2010

Cross-platform is hard!

Tuesday, March 9, 2010

Rules of Optimization
1. Don’t do it 2. (Experts only) Don’t do it - yet

Tuesday, March 9, 2010

Indicators

Tuesday, March 9, 2010

Indicators
• Client requirement

Tuesday, March 9, 2010

Indicators
• Client requirement • Porting apps with a proven market

Tuesday, March 9, 2010

Indicators
• Client requirement • Porting apps with a proven market • Apps internal to an organization

Tuesday, March 9, 2010

Indicators
• Client requirement • Porting apps with a proven market • Apps internal to an organization • Good fit for a cross-platform framework
Tuesday, March 9, 2010

Cons

Tuesday, March 9, 2010

Cons
• Time

Tuesday, March 9, 2010

Cons
• Time • Skill set

Tuesday, March 9, 2010

Cons
• Time • Skill set • Multiple marketplaces

Tuesday, March 9, 2010

Cons
• Time • Skill set • Multiple marketplaces • Diminishing returns

Tuesday, March 9, 2010

Cons
• Time • Skill set • Multiple marketplaces • Diminishing returns • Low ROI
Tuesday, March 9, 2010

Second Decision

Tuesday, March 9, 2010

Second Decision
Which platforms?

Tuesday, March 9, 2010

Where is your profit?

Tuesday, March 9, 2010

Market-driven

Tuesday, March 9, 2010

Market-driven
• Overall platform market size

Tuesday, March 9, 2010

Source: distimo.com, Feb. 2010
Tuesday, March 9, 2010

Market-driven
• Overall platform market size

Tuesday, March 9, 2010

Market-driven
• Overall platform market size • Market by application category

Tuesday, March 9, 2010

Source: distimo.com, Feb. 2010
Tuesday, March 9, 2010

Market-driven
• Overall platform market size • Market by application category

Tuesday, March 9, 2010

Market-driven
• Overall platform market size • Market by application category • Other indicators

Tuesday, March 9, 2010

Other reasons

Tuesday, March 9, 2010

Other reasons
• Client-specified

Tuesday, March 9, 2010

Other reasons
• Client-specified • Platform features

Tuesday, March 9, 2010

Other reasons
• Client-specified • Platform features • Developer growth

Tuesday, March 9, 2010

Other reasons
• Client-specified • Platform features • Developer growth • Leverage toolsets

Tuesday, March 9, 2010

Third Decision

Tuesday, March 9, 2010

Third Decision
Native or web?

Tuesday, March 9, 2010

The Good

Tuesday, March 9, 2010

The Good
• Works for nearly all smartphones

Tuesday, March 9, 2010

The Good
• Works for nearly all smartphones • Increasing standardization

Tuesday, March 9, 2010

The Good
• Works for nearly all smartphones • Increasing standardization • HTML 5 brings powerful new features

Tuesday, March 9, 2010

The Bad

Tuesday, March 9, 2010

The Bad
• Need an Internet connection

Tuesday, March 9, 2010

The Bad
• Need an Internet connection • Can’t take advantage of app marketplaces

Tuesday, March 9, 2010

The Bad
• Need an Internet connection • Can’t take advantage of app marketplaces • Support for HTML 5 varies

Tuesday, March 9, 2010

The Bad
• Need an Internet connection • Can’t take advantage of app marketplaces • Support for HTML 5 varies • Don’t have full access to hardware
Tuesday, March 9, 2010

The Ugly

Tuesday, March 9, 2010

The Ugly
• Difficult to achieve native look-and-feel

Tuesday, March 9, 2010

The Ugly
• Difficult to achieve native look-and-feel • Performance can be sluggish

Tuesday, March 9, 2010

Implementing Native Apps

Tuesday, March 9, 2010

Coding guidelines

Tuesday, March 9, 2010

Coding guidelines
• Factor out common code

Tuesday, March 9, 2010

Coding guidelines
• Factor out common code • Separation of concerns

Tuesday, March 9, 2010

Coding guidelines
• Factor out common code • Separation of concerns • Isolate platform-specific code

Tuesday, March 9, 2010

Coding guidelines
• Factor out common code • Separation of concerns • Isolate platform-specific code • Development lifecycle
Tuesday, March 9, 2010

Data guidelines

Tuesday, March 9, 2010

Data guidelines
• Avoid native formats

Tuesday, March 9, 2010

Data guidelines
• Avoid native formats • Prefer platform-agnostic formats

Tuesday, March 9, 2010

Data guidelines
• Avoid native formats • Prefer platform-agnostic formats • SQLite

Tuesday, March 9, 2010

Data guidelines
• Avoid native formats • Prefer platform-agnostic formats • SQLite • Media formats
Tuesday, March 9, 2010

Implementing Mobile Web Apps

Tuesday, March 9, 2010

Pure web apps

Tuesday, March 9, 2010

Pure web apps
• Easy transition for web developers

Tuesday, March 9, 2010

Pure web apps
• Easy transition for web developers • Leverage investment in existing web sites

Tuesday, March 9, 2010

Pure web apps
• Easy transition for web developers • Leverage investment in existing web sites • Create apps for desktop and mobile

Tuesday, March 9, 2010

Pure web apps
• Easy transition for web developers • Leverage investment in existing web sites • Create apps for desktop and mobile • Can access many hardware features
Tuesday, March 9, 2010

Blurring the Line

Tuesday, March 9, 2010

Blurring the Line
• Emulating native look and feel

Tuesday, March 9, 2010

Blurring the Line
• Emulating native look and feel • Packaging as a native app

Tuesday, March 9, 2010

Blurring the Line
• Emulating native look and feel • Packaging as a native app • Accessing device hardware

Tuesday, March 9, 2010

Frameworks

Tuesday, March 9, 2010

Frameworks
• JQTouch

Tuesday, March 9, 2010

Frameworks
• JQTouch • Appcelerator Titanium

Tuesday, March 9, 2010

Frameworks
• JQTouch • Appcelerator Titanium • Rhomobile Rhodes

Tuesday, March 9, 2010

Frameworks
• JQTouch • Appcelerator Titanium • Rhomobile Rhodes • PhoneGap
Tuesday, March 9, 2010

PhoneGap

Tuesday, March 9, 2010

Alternatives

Tuesday, March 9, 2010

Not everyone has a smartphone

Tuesday, March 9, 2010

For not-quite-smart-phones

Tuesday, March 9, 2010

For not-quite-smart-phones

• MIDlets

Tuesday, March 9, 2010

For not-quite-smart-phones

• MIDlets • Telephony

Tuesday, March 9, 2010

For not-quite-smart-phones

• MIDlets • Telephony • You tell me

Tuesday, March 9, 2010

Conclusion

Tuesday, March 9, 2010

Questions?

Tuesday, March 9, 2010