Mobility is becoming increasingly important for many companies. The markets for mobile
applications have been growing tremendously the last decade. It is therefore of great
interest to reduce the costs of development and maintenance of these applications.
When developing native applications for multiple platforms some parts of the code will
likely implement the same functionality. This functionality is then implemented in dierent
programming languages, for dierent platforms. Functionalities that are typically the
same on all platforms are network communication, data parsing and business logic. These
functionalities can account for a large part of the code when developing large and complex
applications. Duplication of the code, for these functionalities, could be avoided if common
functionality could be extracted from the applications and put in a shared code base.
The aim of this project is to investigate possible solutions to the problem of code duplication
in the case of a specic business application, developed for iOS and Android. It consists
of a mobile client which performs some transformation of data acquired from a business
system and presents it in the native UIs.
This thesis rst discusses the requirements and constraints which are inferred from the application
type and the company wishing to apply cross-platform development. It also maps
existing cross-platform development methods for this type of application and investigates
to which extent the dierent cross-platform development methods full the requirements.
Finally the most suitable method is used in a practical context.
The objectives of this project are to provide the company with a recommendation of a
method as well as a prototype proving the concept of this method. This project will focus on possible solutions for mobile business applications with native
UIs.
The conclusion of the project is that native C++ is the most suitable method for this
type of application. It fulls all requirements, but further research is needed regarding
performance.
1 of 40
More Related Content
Cross Platform Mobile Development for Business Applications
28. 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
29. 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
37. 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
40. 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