Sunteți pe pagina 1din 7

Cloud-based Virtual Platform for running Android Applications on iOS

SIT 706 – Assignment 1 – Project Proposal

By

Dinesh Nagumothu (217017481)

Sarabpreet Singh (217046939)

Robin Francis (217052014)

Sumanth Chowdary Ambati (217336825)

Mohammad Shafi (217028972)


Introduction:

Technology is increasing rapidly every minute. It has been from knowing striking two rocks to create
fire and to send people to the cosmos technology has played its role. Technology completes the
mobile phones and computers. The current mobile market is profoundly divided between pluralities of
platforms. By supporting all the successful applications on all major platforms it would result in great
economic benefit. This will result in maximizing potential client base. But then the software
developments costs would go high if we try porting the applications across platforms. The burden of
maintenance would increase if we port the application across platforms because each bug has to be
fixed to support all platforms. The requirement for heterogeneity motivated the application developers
to create frameworks for cross platforms mobile applications. One such framework is PhoneGap [1].
These stages normally use the versatile web program that executes the applications written in
javascript and CSS.

Creating applications written for a specified platform using that platforms API’s still remains the
preferred practice rather than using cross-platform techniques. They are unique and give the
customers the feel they expect and also native applications take advantage of the specific features
which are only available on their platform, platforms native cloud or native maps.

This project proposal introduces an answer for the heterogeneity issue of the versatile application
showcase where there is no need for porting the applications manually or making the advancements
with undesirable frameworks in cross-stage systems. This application helps the application created on
one platform to successfully run on the other platform with ease. Every mobile application has a
source and a target which are its isomorphic versions. The cloud-based executed server is the source
and the real application installed on the mobile device is the target. The user interface (UI) which will
be the source display is directly converted to the user’s platform. The user interface actions performed
by the user on the mobile phone are recorded and redirected to the source whereby using the emulator
which is replayed in accordance with the time. Similarly, the actions that are performed by the
emulator which is the source are recorded and send to the user’s device. This virtual platform also
handles the location and time services. Thus it makes sure that both versions of the application use the
environment of the target. The main purpose of this cloud-based virtual platform is to natively run
Android applications on iOS. The main advantage of this is that the user experience is not greatly
affected on any platform. With the edge server running inside the same regulatory space and
associated with by a Wi-Fi organize, the latencies of executing basic UI activities in a commonplace
application never outperformed the one moment limit,[2][3] in this way making the Cloud Twin
approach achievable and valuable. Hence we are able to execute the native applications of android on
the iOS platform with the users suspecting that the application was created on a different platform.
But we also cannot conclude that this cloud-based virtual platform can be the solution to all the
problems faced when an application has to be run on various platforms.

Motivation:

Over the last few years, there’s been a gradual decline in desktop computers while there’s been a
rapid growth of mobile devices to access the majority of digital content. There are more than one
million apps in each of the two most popular mobile platforms, iOS and Android’s app markets. We’ll
find many differences if we compare the development of mobile applications across different
platforms like iOS, Android, Windows like the size of developer’s community, functionalities
provided by the platform, etc. A Substantial amount of effort, money and time are spent by the
companies that make mobile application across different platforms. It further exacerbates the
maintenance burden by creating individual software versions for different platforms [3]. It is also an
error-prone and tedious task to manually migrate a project from one language to another, for example,
C# to Java or vice-versa [3]. The testing of uses for versatile processing gadgets is lumbering because
of the limited computational assets that these gadgets have and assorted qualities in portable
situations. In recent time, many emulators of different types have been proposed and are being used
for this purpose. However, these emulators commonly can’t emulate genuine system speed and
accessibility, rendering speed, stack size, CPU speed, stack estimate and cache memory. These
emulators are intended for a particular platform, which lacks testing on other different mobile
platforms. These difficulties can be overcome by cloud computing by progressing in virtualisation,
parallel and distributed systems as well as software services [4]. Cloud computing guarantees a
practical empowering innovation to outsource storage and enormously parallel calculations. Cloud
computing also enables us to have versatile and on-request organize access to a typical gathering of
configurable computing resources. A novel approach is presented on this paper to natively execute a
mobile application using the functionality written for another platform. The main theme of this project
is to emulate the behaviour of Android applications on the iOS phone. To overcome the heterogeneity
of mobile application market, this approach can be a vital solution. Between the majority of platforms,
including iOS, Android, Blackberry and Windows phone, the present market for versatile application
is highly fragmented [3]. There is great economic benefit by successfully running the mobile
application across all major platforms. It can also help to maximize the potential customer base [3].

Project Summary:

Applications with heterogeneity are always the best ones, as they can have maximum reach out.
Keeping this in mind some of the developers started designing applications using HTML, CSS and
Javascript [3]. Though this practice is successful to an extent, the users and designers are not
interested in using it as they want the applications to be developed natively. Developing applications
natively will give them an advantage as they can design these applications more attractively and
impress the customers easily. Companies are making mobile applications for different platforms
individually and thus wasting their time and money. Providing support and maintenance for different
platforms will also be a huge burden for the mobile development companies.

Porting software is a strenuous task. We must manually discern the target platforms API methods that
function exactly as source’s API method using the API documentation of both source and target and
use them accordingly [5]. Sometimes there are diverse ways to implement the source API in the target
API. Manually migrating projects from one language to another language is a slow and often
susceptible to errors and bugs [6].

Mobile applications these days often required to be created on several platforms at least into the
famous ones like iOS, Android, Windows and Blackberry OS. The major reason for creating multi-
platform applications is for maximum reach out. Developing an application on platforms may not be
an easy task for start-ups, as it will incur huge development and maintenance costs.

The mobile applications need to be developed cross-platform and maintained easily, to reduce the
development and support costs. An emulator can be used to use applications from another platform,
but it’s not an efficient technique as it will consume a lot of disk space and processor usage, thus
limiting the efficiency of the smartphone. At this point, we would like to propose a new project that
resolves the problem and provide an effective solution which avoids porting of applications manually.
This will also minimize the need of using cross-platform development frameworks. The best option
we have is to port the application using cloud-based emulator. Here the actual application is the
source, running in the cloud with the help of an emulator and displayed on the screen to the user
which is called the Target. The UI actions performed in the user mobile are captured and sent to cloud
over the internet. The actions are received by the emulator which is running in the cloud and performs
the functions of the app.

Project details:

 Problem: With the evolution of Smartphone, there is a sudden drastic change in computing
technology and user’s perspective. As the mobile operating systems are advancing each day the
Smartphone market is expanding to new heights every day. Keeping this in mind, the software
development industry also has shifted its concentration towards mobile application development.
But, the major problem they have is to develop applications that are cross-platform. Though there
are a lot of Smartphone users, they are not limited to using single platform which created a huge
difference. Users are spread over different operating systems like Windows, Blackberry OS,
Android & iOS. Though there are limited numbers of Windows and Blackberry users, the number
of persons using Android and iOS are significantly high. Hence, developing the applications that
support Android and iOS operating systems is a basic requirement for development companies to
have maximum reach out.

o Problem for developers: Developing the same application in different platforms will incur
huge development costs to the company especially to the start-ups. It is also difficult to
maintain the application and providing support to the users regarding the application as
different operating systems will have different functionalities.
o Problem for users: As some development companies can’t afford to make the application
for all the platforms at once, the other operating system users has to wait for the application
till it releases. This will restrict the user from using the application and often

 Solution:
To survive in the fast based era of technology in the market of computing, many organizations
and companies try to implement the latest version of their project on different platforms. It is
often difficult to manually port the application to the target platform from the source platform. To
solve this problem, this project will be implemented to port the mobile application from one most
used platform to another major platform by taking Android as the source base and selecting the
iOS as the target.
 Requirements:
The major requirement of this project is to solve the above-stated problem. As porting the
application has many difficulties, the project can be termed as an accomplished one if all the
functions of a native Android application can be used from the iOS device.

The application must be real-time and responsive, which means that there shouldn’t be a huge lag
as it makes unusable for the user. The overall response time of UI update and interaction time
should be limited to less than 600ms.

 Cloud system meeting the requirements:

The pre-processed mobile application is developed by making the source UI screen instinctively
rendered for target platform [3]. During the runtime, the carried out UI actions are recorded and
delivered to the source which is Android Emulator running on the server [3]. The received UI
actions from the target are processed and functions of the application are performed using an
emulator [3]. Specifically, the UI actions performed on the iOS phone are transmitted to the cloud
server via web sockets and then on the android emulator the received actions are mimicked [3].
Using the Aspect oriented programming, the emulator receiving the actions changes the User
Interface that is changed according to the actions of the target is produced on the source [3]. The
changes in the source UI are detected, delivered to the target device and the received UI changes
are applied on the target’s screen.

The major problem comes with the latency of the system. As the data needs to be transmitted over
the network, it often regulates the use of cloud computing. Though there is high bandwidth
available, the real problem comes with the computational limitations of the devices which mostly
result in high latencies. To overcome this problem, VMP can be used to transfer the computing
tasks to the server rather than a device. This will surely reduce the latency and provides more
usability to the application.

 Scope:
o In Scope:
 A mobile application will be developed with pre-processed User Interface.
 A server will run with the Android emulator and which takes the user interface
responses from the iOS device and feed it to Android and converts the UI responses
given by the emulator according to the iOS API [7].
 To minimize the overall latency including the user interaction to less than 600ms.

o Out of Scope:
One of the major challenges is capturing the sensor input from the target and transferring
the data to the source application on the cloud. Using the location services, accelerometer,
proximity sensor etc. need to be mapped accordingly with the exact functioning. Android
API [8] and iOS API [7] will have different methods for sensors and mapping them is a
difficult task.
 Target Audience:
The target audience for this project is mainly the developers of mobile applications. The uses of
this research project will yield great benefits to the mobile application development companies, as
it will reduce the costs because the development and maintenance costs will be only for the
Android versions. It will also benefit the end-users of iOS in such a way that they no longer need
to wait for the application to release for the operating system that their device has. The users can
easily use them as a native application and because of the low costs, the development companies
will make it available to all platforms.

 Benefits of the Project:


The application development costs will be reduced and the projects will be executed quickly as
there will be no separate app development for iOS. The maintenance costs will be reduced as
there is no need to provide support for both the operating system users and bug fixes becomes
easy.

Conclusion:

Using the applications of Android on iOS is the major theme of this project. The execution of this
project looks conceivable to utilize Android applications on the iOS device. The principle objective of
this project is to take the advantage of cross-platform applications and porting the application through
cloud-based emulator running in the server. The Android applications that are developed can be used
in iOS devices by using and mapping API functions and layout screens. The UI actions recorded are
sent to the emulator in the cloud and the responses from the emulator are given to the target device to
update UI for the user. With the provided references, it can be seen that the project approach is
possible and more helpful. As it may transform the project into a useful programming instrument, we
plan to improve our execution along the lines provided above to make this project successful.

References:

[1] R. Ghatol, and Y. Patel, Beginning PhoneGap: Mobile Web Framework for JavaScript and
HTML5, Apress, 2012.

[2] R. B. Miller, “Response Time in Man-Computer Conversational Transactions,” in AFIPS, 1968.

[3] E. Holder, E. Shah, M. Davoodi, and E, Tilevich, “Cloud Twin: Native Execution of Android
Applications on the Windows Phone,” in ICASE 2013, pp. 598-603.

[4] S. Baride, K. Dutta, “A cloud based software testing paradigm for mobile applications,” in ACM
SIGSOFT Software Engineering Notes 36.3 (2011), pp. 1
[5] A. Gokhale, V. Ganapathy, and Y. Padmanaban,” Inferring Likely Mappings Between APIs,” in
ICSE, 2013, pp.82.

[6] H. Zhong, S. Thummalapenta, T. Xie, L. Zhang, and Q. Wang, “Mining API mapping for
language migration,” in ICSE, 2010,pp.195.

[7] Apple. API Reference, Apple Development Documentation. Available:


http://developer.android.com/reference/ packages.html

[8] Google. Android API reference. Available: http://developer.android.com/reference/ packages.html

S-ar putea să vă placă și