Multiplatformx

sprocketexponentialMobile - Wireless

Dec 10, 2013 (3 years and 8 months ago)

75 views


Cross Platform Mobile
Application Development





 

So. . .


According

to

the

Global

Developer

Survey


13

conducted

by

Telerik
,

over

5000

developers

said

that

they

developed

apps

using

HTML
5

in

2012

and

90
%

of

them

plan

to

do

so

in

2013
.



Only

15
%

of

developers

said

they

would

prefer

to

use

a

native
-
only

approach
.

Platforms developers are looking forward to

0
10
20
30
40
50
60
70
Windows 8
Chrome OS
Firefox OS
Blackberry 10
Tizen
13%

36%

47%

66%

Source: KendoUI.com

8%

Development Difficulty









Blackberry
and
iOS

are the
most

difficult

platforms to
develop
for


Windows 8 and Windows Phone 8 ranked as
the easiest with Android falling in the middle.

Types of Apps being built using HTML5









The
most important modern web technologies right now
include forms and validation, databases and flexible layouts
(grids,
flexbox
, etc.)

U
sage


Apple’s
iOS

is the leading mobile OS in

30 countries.
Canada
-
83.7%, United
States
at
35.2
%.


Android accounts for more than 50% of the mobile web traffic
with South Korea at 78.3% and United States at 23.3%.


Blackberry is the leading mobile OS in

four countries, Dominican
Republic, 57.1% and United States, 32.0%


Symbian is the leading mobile OS in more than

100 countries,
Nokia’s Symbian
-
based phones are widely used in developing
nations. However, it has almost no foothold in the US market.






Why Cross Platform


W
hat
your app will
do?


W
ho
it’s
for?


W
here
it will
run?


Do you maintain
different
and completely independent
apps for
each platform?


D
esign
a hybrid app with one code base?


Pros
and
cons?

Emerging Cross Platform Frameworks

Main Features


Most of them use web based languages


HTML5,
javascript


Performance solely depends on the language being used.


Provide Backend as a Service (
MBaaS
) which includes cloud
storage, social networking and ‘push notifications’.


Support Web Services ranging from JSON, XML, SOAP, HTTP
etc.


These tools cannot access device specific feature like the
bluetooth
, NFC and other controls.


Source code is typically organized in the MVC format
separating data tier, application and the interface.


Problem with compiling
iOS

Applications





Developed by
Appcelerator

Inc.


Titanium is free and
opensource


Apps written in
javascript


Support to build Android,
iOS

and Blackberry Apps, trying to
extend support for Windows.


Interpreter for Android and BlackBerry is
MozillaRhino
, for
iOS

JavascriptCore


Native experience


‘not quite there’


Source code organization


Device Specific Functionality


No built in support for Bluetooth
and NFC.


Web services


SOAP, XML, JSON


Code maintenance


MBaaS

support

Titanium


Developed by
Adobe Systems


Free
and
opensource


Apps written in
HTML5, CSS3 and
Javascript


Support
for
Android,
iOS
, Blackberry,
WebOS
, Windows
Phone, Symbian and
Bada
.


Apache Cordova is the heart of the backend.


Performance limited because of hybrid nature of the app.


Source
code organization


No
built in support for Bluetooth and NFC.


No Web services support built in.


Cloud Compiler

PhoneGap

Rhodes


Developed by
Motorola.


Native
app like feel.


Apps
written in
Ruby and recently extended for JavaScript


Support to build Android,
iOS
, Blackberry
Apps,
Windows
phone and Mobile.


Source
code organization


Device Specific Functionality


No built in support for
Bluetooth and NFC.


Rich web service support built in.


Free but not for commercial users.


RhoHub

is their
MBaaS

Corona


Developed by
Corona Labs.


Apps
written in
Lua
.


Free until app isn’t published.


Support to build Android,
iOS
, NOOK and Kindle Fire
Applications.


Application is compiled using
Lua

libraries mashed with OpenGL
and
OpenAL
.


Native controls using underlying library


Device Specific Functionality


No built in support for Bluetooth
and NFC.


Web services


HTTP,HTTPS,SOAP, JSON


Cloud service is called Corona Cloud.


Targeted for game developers.


Marmalade


Developed by Ideaworks3d
.


Upfront licensing.


Apps
written in
C++


Support
to build
iOS
, Android
, BlackBerry
PlayBook

OS, and
bada
.


Binary combined with Segundo
Embedded Execution
Environment (S3E)


All device specific functionality except Bluetooth
and NFC.


Web services


SOAP, XML, JSON


Marmalade Juice


plan to port Objective C source code into
Marmalade.

MonoCross


Part of the Mono Project


Built on the .NET framework.


C# is used to build apps.


Support to build
Android and
iOS
.


Specific platform tools


Xamarin

Mono and
Xamarin

MonoTouch
.


Interpreter for Android and BlackBerry is
MozillaRhino
, for
iOS

JavascriptCore


Native experience


‘not quite there’


Source code organization


Device Specific Functionality


No built in support for Bluetooth
and NFC.


Windows Communication Foundation


Bing Maps API

Sencha

Touch


O
ver
50 built
-
in
components.


Built
-
in
MVC
system


Apps written in HML5 and CSS3.


Sencha

Touch 2.2 is the latest
version


Faster, Cheaper and highly customizable


PC developers can now create
iOS

applications without
needing a Mac.



More
than 500,000 developers


Rich
set of documentation

jQuery

Mobile


Built
on the rock
-
solid
jQuery

and
jQuery

UI
foundation


Its
lightweight size
makes
it a speed freak



JQuery

Mobile
1.3.1 recently launched


AJAX
-
powered
navigation
system


Extensions are easy to
make


No established
architecture


Easy
to debug


Markup
-
based and is backed
by a smart community

What is good about CPD?


Implement a feature once and share it across
platforms


Using
a
webview

might be faster than writing a native
implementation for simple screens


Update
content without requiring a full app release by serving
your pages off a
server


One
tool to create, debug, and deploy
.



Speed increases and cost decreases


Multiple
security methods aren’t
needed


Simple for web developers to use


Complexity

Cons


Requires
a bridge for their pages to interact with native chrome
and call native
APIs


Maintain
a
fork, if new functionality is added


Write
a little code, run it on

iPhone, Android, Windows Mobile
simulator.


Several
straightforward implementations for a single complex
implementation.


Harder
problems are inconsistencies in platform conventions
.


Maybe web technology will one day be as fast as native code


What does it all boil down to?

Questions