Cross PlatformDevelopmentBuilding Applications for Multiple
PlatformsCreated by / ||
Last Updated: August 31, 2013Femi TAIWO @dftaiwo GDG Lagos
Heads UpKey Areas
WhatWhyWhenHow
What is it?Let's lay (or re-lay) a foundation
What is a platform?A platform: hardware architecture and a software framework
Hardware:
Examples
PCsMacintoshVideo Game ConsolesMobile DevicesMainframe
Software Framework
Examples
Adobe AirJava Platform (Micro, Standard,...)Mono.NetSilverlightQt
PlatformsExamples
AndroidBada OSBlackberry OSChrome OSFirefox OSiOSMaemoTizenLinux | UbuntuWebOSWindows 8Windows MobileWindows Phone
Mobile PlatformsOperating system running on a smartphone, tablet, PDA, or other
digital mobile devices.
Mobile Platforms - BriefHistory
1999 - Symbian Launched2002 - Windows CE Smartphones 2002 - BlackBerry OS.2005 - Maemo OS2007 - Apple iOS2007/2008 - Android 1.0 2009 - Palm WebOS2009 - Samsung Bada OS 2010 - Windows Phone OS 2011 - MeeGo2012 - Tizen - Samsung,Intel,Linux Foundation 2012 - Firefox OS2013 - Ubuntu Touch2013 - BB10 OS2014 - ?
Next Slide to the Right
Foundation Laid
Types of Applications(Platform-Wise)Native | Non-Native
NativeApplications
What are they ?
Native ApplicationsApplications coded in a specific programming language
Programming LanguageLanguage designed for programming computers
Programming LanguageThousands of themExamples, anyone ?
Programming LanguageThousands of them
Examples : PHP, C++, Java, VisualBasic, C#, Python, Perl, Fortran,QBasic
Native ApplicationsA native app is an application written purely in platform-specific
programming language
Single-Platform-Based Development
Native App DevelopmentWarning: This is not exhaustivePlatform Languages Supported IDEsAndroid Java, C, C++ Android Studio, Eclipse,
NetBeansBlackberry Java Blackberry JDE, EclipseiOS Objective-C XCode, AppCodeSymbian C++ Qt, Carbide, BorlandWindows C#, Visual Basic, C,
C++Visual Studio
Non-Native
Non-Native!='Native Application'
i.e Not Platform Specific Programming
Non-Native AppBetter called "Cross Platform App"
Cross Platform Apps
One Code Base.Multiple Platforms
Well, mostly from one code base
Cross Platform AppsA cross platform app is an application written or compiled in a way
that allows it to run on multiple platforms.
With or Without Special Preparation
Cross Platform AppsLanguages include
C++C# (Mono)HTMLJavaQtRealbasicRubyOthers?
Phonegap (Cordova)* | Blackberry Webworks * | Ripple Emulator * |Titanium Appcelerator* | MoSync (C)| MoSync Reload (C+H)|
Rhomobile (H+R)| Xamarin (C#) | CodeNameOne (J)| Oracle ADFMobile(J+H) | DragonRad ($$$*$) | Platform SDKs | & much more
Cross Platform AppsTools & IDEs
* - HTML & Javascript based
Space for Examples
- Faster Deployment- Lower Dev & Maintenance Cost
- Easier Learning Curve- Easier Integration
Pros of CPD
- Non-Native Look- Limited Feature Support
- Slower Graphics API- Less Secure Storage
Cons of CPD
Quick ComparisonsCapability Metric WinnerRich User Experience Native WinsPerformance Native WinsCross Platform Development $ CPDFragmentation Similar ChallengesUpdate & Distribution Control CPDDevice Hardware NativeBleeding Edge Features NativeSecurity NativeLearning Curve CPD
IntroducingPlayer 3!{ Hybrid Apps }
This type of application has cross-platform compatibility but can stillaccess a phone's hardware.
Hybrid AppsThe best of both worlds
Hybrid AppsBuilt by combining a Cross Platform Language (e.g HTML5) and
the Platform-Specific Language (Android Java)
Hybrid AppsUse a regular IDE for HTML5 and Use the Platform SDK/IDE to
build the rest
More on the HTML5 PartsTools & Libraries
More on the HTML5 PartsMark Zuckerberg: Facebook & Fastbook
from on .Sencha Fastbook Sencha Vimeo
So let's build stuff.
Finally
Stellar LinksThe Sample Projects On GitHubNewsMix
THE END