Multiplatform

advertisement
Cross Platform Mobile
Application Development
Naveen Danturi
Pranay Mahendra
So. . .
• According to the Global Developer Survey ’13 conducted by
Telerik, over 5000 developers said that they developed apps
using HTML5 in 2012 and 90% of them plan to do so in 2013.
• Only 15% of developers said they would prefer to use a nativeonly approach.
Platforms developers are looking forward to
8%
Tizen
13%
Blackberry 10
36%
Firefox OS
47%
Chrome OS
66%
Windows 8
0
10
20
30
40
50
60
70
Source: KendoUI.com
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.)
Usage
• 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
• What your app will do?
• Who it’s for?
• Where it will run?
• Do you maintain different and completely independent apps for
each platform?
• Design 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
Titanium
• 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
PhoneGap
• 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
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
• Over 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
Download