ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Cross-Platform Development
for Mobile Applications
Anna Troedsson Alm¨¦r
David Karlsson
tisdag den 11 juni 2013
Mobile business applications
tisdag den 11 juni 2013
Motivation
tisdag den 11 juni 2013
Name: Link: Description:
Titanium http://www.appcelerator.com/products/ HTML+JavaScript
jQuery Mobile http://jquerymobile.com HTML5
Particle code http://www.particlecode.com/features/overview/ aquired by appcelerator, HTML
Unity3d http://unity3d.com/unity/multiplatform/ Gaming, footprint
CoronaSDK http://www.coronalabs.com/products/corona-sdk/ LUA
Marmalade http://www.madewithmarmalade.com/
marmaladesdk/supported-platforms
native CPU instructions
Xamarin http://xamarin.com generates native
MOAI http://getmoai.com LUA
Gideros http://www.giderosmobile.com/ LUA
Cappuccino http://www.cappuccino-project.org Javascript
PhoneGap http://phonegap.com HTML
MoSync http://www.mosync.com HTML
Rhomobile http://www.motorola.com/Business/US-EN/
Business+Product+and+Services/Software+and
+Applications/RhoMobile+Suite
Ruby,HTML
WidgetPad widgetpad.com HTML
Kivy http://kivy.org/#home Scripting, python
PyMob http://pyzia.com generates native
XMLVM http://xmlvm.org/android/ translate dalvik to ios
Adobe AIR http://www.adobe.com/se/products/air/
features.html
http://www.adobe.com/devnet/?ash/articles/
app_store_guide.html (app store OK)
NDK http://developer.android.com/tools/index.html
J2ObjC
tisdag den 11 juni 2013
Mobile Application
Development Models
tisdag den 11 juni 2013
Mobile Application
Development Models
tisdag den 11 juni 2013
Mobile Application
Development Models
tisdag den 11 juni 2013
Mobile Application
Development Models
tisdag den 11 juni 2013
Mobile Application
Development Models
tisdag den 11 juni 2013
Mobile Application
Development Models
tisdag den 11 juni 2013
Requirements
Executable application
Approved for markets
Existing development environment
Platform speci?c UI
HTTP+Cache
Filesystem+DB
tisdag den 11 juni 2013
Mobile Application
Development Models
tisdag den 11 juni 2013
Mobile Application
Development models
tisdag den 11 juni 2013
C++ and NDK
tisdag den 11 juni 2013
C++ and NDK
tisdag den 11 juni 2013
C++ and NDK
tisdag den 11 juni 2013
Titanium
tisdag den 11 juni 2013
Titanium
tisdag den 11 juni 2013
Xamarin
tisdag den 11 juni 2013
Xamarin
tisdag den 11 juni 2013
XMLVM
tisdag den 11 juni 2013
XMLVM
tisdag den 11 juni 2013
Prototype session 1
Basic functionality and
native UI
tisdag den 11 juni 2013
Prototype session 1
compability with
natively written UI
tisdag den 11 juni 2013
Prototype session 1
Performance Results
tisdag den 11 juni 2013
Prototype with NDK C++
VS
Platform Speci?c Implementation
tisdag den 11 juni 2013
Prototype with NDK C++
POCO C++ library
JSON
tisdag den 11 juni 2013
Prototype with NDK C++
Wrapping Logic and Types, Minimal
Key:
C++ Shared Code
C++ Wrapper for Android
Android Java
Activities
C++
Wrapper
Type Wrappers
C++ Logic C++ Types
iOS Objective-C
ViewControllers
C++ Java
Objective-C
Objective-C++
tisdag den 11 juni 2013
Prototype with NDK C++
Wrapping Logic and Types, Structured separation
Key:
C++ Shared Code
C++ Wrapper for Android
Android Java
Activities
C++
Wrapper
Type Wrappers
C++ Logic C++ Types
C++ Wrapper for iOS (Objective-C++)
iOS Objective-C
ViewControllersType Wrappers
C++
Wrapper
C++ Java
Objective-C
Objective-C++
tisdag den 11 juni 2013
Prototype with NDK C++
JSON Parser
tisdag den 11 juni 2013
Prototype with NDK C++
Performance Results JSON Parser
tisdag den 11 juni 2013
Prototype with NDK C++
HTTP
tisdag den 11 juni 2013
Prototype with NDK C++
Cache
tisdag den 11 juni 2013
Prototype with NDK C++
Cache
tisdag den 11 juni 2013
Prototype with NDK C++
Persistent Cache
Format:
Loading the cache ?le:
tisdag den 11 juni 2013
Prototype Veri?cation
tisdag den 11 juni 2013
Prototype Veri?cation
1: Describe behaviour in plain text
2: Write a step de?nition in Ruby
3. Fix app code to make the step pass
4. Run again and see the step pass
tisdag den 11 juni 2013
Prototype Veri?cation
tisdag den 11 juni 2013
Conclusion
Titanium
Javascript
Simple UIs
Xamarin
C#
Separate UIs
NDK
C++
Native UIs
Distributable
Device capabilities
Performance
Testability
tisdag den 11 juni 2013
Thank You!
Categories from:
Run Everywhere!* Cross-Platform Mobile Development, *some restrictions apply
http://www.meetup.com/MoMoa2/events/86722502/
by Brian Genisio Presentation at Mobile Monday Ann Arbor
Xamarin: http://www.xamarin.com by Xamarin Inc.
Titanium: http://www.appcelerator.com/platform/titanium-sdk by Appcelerator Inc.
XMLVM: http://xmlvm.org/overview by XMLVM
NDK: http://developer.android.com/tools/sdk/ndk by Android
Poco C++: http://pocoproject.org by Applied Informatics Software Engineering GmbH
Calabash: http://calaba.sh by Less Painful
Mobile Business Applications:
http://www.sogeti.se/sv/Vara-tjanster/Tjanster/Mobilitet/App-utveckling/
by Sogeti
Our Repository: https://bitbucket.org/devdavidkarlsson/sogeti-masterthesis-crossplatformmobiledevelopment
https://github.com/devdavidkarlsson/Sogeti-MasterThesis-CrossPlatformMobileDevelopment
tisdag den 11 juni 2013

More Related Content

Cross Platform Mobile Development for Business Applications