SlideShare a Scribd company logo
CLOUD TWIN: NATIVE
EXECUTION OF ANDROID
APPLICATIONS ON THE
WINDOWS PHONE
Presentation type: paper review
Class: CS 519 – Software Evolution for Mobility
Presenter: Sergii Shmarkatiuk
Date: 11/18/2013
PRESENTATION FORMAT


5-8 min for presentation
Motivation
 Proposed solution
 Results
 Main technical challenge addressed in the paper




17-20 min for discussion
Every student provides an answer/comment to presented
discussion question ( <45 sec)
 We will put original ideas on the whiteboard
 Every student picks most appealing/interesting research idea
and explains why it is interesting ( <45 sec)
 We will define the most popular idea for future research
2
based on students’ opinion.

MOTIVATION

One of the challenges of mobile
development is necessity of supporting
mobile application for different platforms

3
MOTIVATION

Platform differences result in higher costs
of mobile application development and
maintenance

4
MOTIVATION
Real challenges (Joorabchi et al.):
Fragmentation across platforms
 Fragmentation within the same platform
 Behavioral consistency across platforms
 Lack of support for automated migration across
platforms


“re-coding against wildly different API sets” increases the cost
and time-to-market within phases of
design, development, testing, and maintenance, which is
definitely a large issue for start-up and smaller companies.
5
PROPOSED SOLUTION
Replicating UI from one platform (Android) to another
platform (Windows Phone) using aspect-oriented
programming and Reflection API.
 Running source application (Android) in the cloud using
platform emulator.
 Capturing UI events generated by target application
(Windows Phone) and sending them to the cloud.
 Receiving UI updates generated by source application
(Android) at target application (Windows Phone) side.


6
RESULTS

Latency of a complete UI update
time between pressing a button and updating text label in response

Min (ms)
281

Avg (ms)
314

Max (ms)
846

7
MAIN TECHNICAL CHALLENGE

1. Analysis of interface's in-memory
representation
2. Extraction of platform-independent
model that can then be used to
generate equivalent interface for
another platform
8
EXAMPLE FROM RELATED WORK
(CONVERTING SWING GUI TO ANDROID UI)
Run the GUI application
 Intercept the application using aspect oriented
programming.
 Extract the components using Reflection API
 Reuse the logic of the application


Translate the components to platform independent
domain specific language (XML-based)
 Create method stubs for the listeners


9
QUESTIONS TO DISCUSS
(~45 SEC FOR AN ANSWER)
Sergii: Do you think it is a good idea to use XMLbased intermediate representation for the UI of
source application?
 Sergii: What do you consider to be an overhead of
maintaining cloud-based emulators?
 Caius: How does their approach scale? A whole
Android emulator is quite heavy weight? While this
is not a problem when you have only 1 user, how
about when you have thousands? Could two or
more sessions run in the same emulator?


10
QUESTIONS TO DISCUSS
(~45 SEC FOR AN ANSWER)
Sergii: How could we get to the point, when we
could "Write once, Run on any Mobile Platform“?
 Michael: This paper is another attempt to solve the
"write once, run anywhere" universal code that has
been the "holy grail" of programming that
developers have been chasing for decades now.
Java is just one of many examples of this. This
approach seems to be significantly different in
substance, but it still suffers from the common
achilles heel of universal solutions, specifically poor
performance.


11
QUESTIONS TO DISCUSS
(~45 SEC FOR AN ANSWER)
Arpit: What kind of information do static and
dynamic analysis of apps may yield to help with
portability?
 Austin: What other platform pairs can this be
extended to (e.g., Android accessing iOS apps)? Is
there any reason that Windows Phone and Android
are easier, and would is needed to make this
happen for other platforms?
 Mihai: …


12
IDEAS FOR BETTER EVALUATION
Sergii: Use 3g/4g instead of wi-fi
 Sergii: Calculate overall number and ratio of UI
elements that cannot be converted to different
platform
 Sergii: Use real applications instead of tutorials
 Arpit: Provide details of how many applications
were able to run successfully on windows phone
using android emulator as source
 Caius: Provide list of tested applications
 Caius, Austin: Test solution in different networks
 Mihai: …


13
FOLLOW-UP RESEARCH IDEAS
Ideas from the paper:
 Increase UI component coverage
 Support additional platforms (iOS) and languages (Objective C)
 Automate API evolution
 Create collaborative mobile applications
Ideas related to general limitations of mobile platforms:
 Security considerations
 Usage of platform-specific hardware (NFC)
 Handling native Open GL code
 Fragmentation across platforms and within the same platform
Other ideas:
 Sergii: improve presented approach to make it useful for addressing
needs of real applications.
 Sergii: reduce number of layers in the solution, make it more robust
and reusable.
 Sergii: separating application into two parts – platform-independent
(that could run in the cloud) and platform-specific part (that could run
on device)

14
FOLLOW-UP RESEARCH IDEAS
Other ideas:
 Austin: compiling certain parts of the codebase into C++ libraries
so that less data has to be sent to the emulator
 Michael: OnLive gaming platform
 Michael: make it work for gestures
 Caius: running more sessions in the same emulator
 Arpit: tool that looks at Android activity and creates a
corresponding XAML form automatically and vice versa
 Mihai: …

15
WHAT RESEARCH IDEA DO YOU FIND THE
MOST INTERESTING TO WORK ON AND
WHY?
Separating
application into
platformindependent and
platform-specific part

Compiling certain
parts of the
codebase into C++
libraries

OnLive gaming
platform

Gestures support

Running more
sessions in the same
emulator

Automatic
conversion to and
from XAML UI
representation

16

More Related Content

What's hot

Agile
AgileAgile
Agile
ratem
 

What's hot (19)

SusanGerhartResume
SusanGerhartResumeSusanGerhartResume
SusanGerhartResume
 
+Software development methodologies
+Software development methodologies+Software development methodologies
+Software development methodologies
 
Intro to software development
Intro to software developmentIntro to software development
Intro to software development
 
Migrate to microservices
Migrate to microservicesMigrate to microservices
Migrate to microservices
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
Unit1
Unit1Unit1
Unit1
 
The Role of the Software Architect (short version)
The Role of the Software Architect (short version)The Role of the Software Architect (short version)
The Role of the Software Architect (short version)
 
Icsme 2021-keynote-creating-usable-and-useful-software-tools
Icsme 2021-keynote-creating-usable-and-useful-software-toolsIcsme 2021-keynote-creating-usable-and-useful-software-tools
Icsme 2021-keynote-creating-usable-and-useful-software-tools
 
Agile archiecture iltam 2014
Agile archiecture   iltam 2014Agile archiecture   iltam 2014
Agile archiecture iltam 2014
 
software development methodologies and their application
software development methodologies and their applicationsoftware development methodologies and their application
software development methodologies and their application
 
DevOps Hand On Workshop
DevOps Hand On WorkshopDevOps Hand On Workshop
DevOps Hand On Workshop
 
Reducing Technical Debt
Reducing Technical DebtReducing Technical Debt
Reducing Technical Debt
 
Agile
AgileAgile
Agile
 
Certified professional - DevOps Foundation (CP-DOF) course information
Certified professional - DevOps Foundation (CP-DOF) course informationCertified professional - DevOps Foundation (CP-DOF) course information
Certified professional - DevOps Foundation (CP-DOF) course information
 
devops online training in hyderabad
devops online training in hyderabaddevops online training in hyderabad
devops online training in hyderabad
 
Devops online training ppt
Devops online training pptDevops online training ppt
Devops online training ppt
 
We're all DevOps [EN]
We're all DevOps [EN]We're all DevOps [EN]
We're all DevOps [EN]
 
The benefits of software reuse
The benefits of software reuseThe benefits of software reuse
The benefits of software reuse
 

Similar to CS519 - Cloud Twin: Native Execution of Android Applications on the Windows Phone

3701ICT Mobile Application Development.docx
3701ICT Mobile Application Development.docx3701ICT Mobile Application Development.docx
3701ICT Mobile Application Development.docx
sdfghj21
 
Best Practices for Cross-Platform Native Applications
Best Practices for Cross-Platform Native ApplicationsBest Practices for Cross-Platform Native Applications
Best Practices for Cross-Platform Native Applications
Kevin Whinnery
 
Android + training + philippines
Android + training + philippinesAndroid + training + philippines
Android + training + philippines
diosa06
 

Similar to CS519 - Cloud Twin: Native Execution of Android Applications on the Windows Phone (20)

E017163033
E017163033E017163033
E017163033
 
A Review Paper on Cross Platform Mobile Application Development IDE
A Review Paper on Cross Platform Mobile Application Development IDEA Review Paper on Cross Platform Mobile Application Development IDE
A Review Paper on Cross Platform Mobile Application Development IDE
 
Where Do Cross-Platform App Frameworks Stand in 2020?
Where Do Cross-Platform App Frameworks Stand in 2020?Where Do Cross-Platform App Frameworks Stand in 2020?
Where Do Cross-Platform App Frameworks Stand in 2020?
 
Cross platform app a comparative study
Cross platform app  a comparative studyCross platform app  a comparative study
Cross platform app a comparative study
 
First Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionFirst Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting Introduction
 
Cross-platform App Development Company
Cross-platform App Development CompanyCross-platform App Development Company
Cross-platform App Development Company
 
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...
 
3701ICT Mobile Application Development.docx
3701ICT Mobile Application Development.docx3701ICT Mobile Application Development.docx
3701ICT Mobile Application Development.docx
 
IRJET- Cross Platform User Compatible System with Specific Application
IRJET- Cross Platform User Compatible System with Specific ApplicationIRJET- Cross Platform User Compatible System with Specific Application
IRJET- Cross Platform User Compatible System with Specific Application
 
[2015/2016] Mobile thinking
[2015/2016] Mobile thinking[2015/2016] Mobile thinking
[2015/2016] Mobile thinking
 
What is The Best Platform for Mobile App Development.pdf
What is The Best Platform for Mobile App Development.pdfWhat is The Best Platform for Mobile App Development.pdf
What is The Best Platform for Mobile App Development.pdf
 
Best Practices for Cross-Platform Native Applications
Best Practices for Cross-Platform Native ApplicationsBest Practices for Cross-Platform Native Applications
Best Practices for Cross-Platform Native Applications
 
Mobile development with AIR
Mobile development with AIRMobile development with AIR
Mobile development with AIR
 
Newleaks
NewleaksNewleaks
Newleaks
 
Prosciutto Palermo Valley Mobile Sessions - English
Prosciutto Palermo Valley Mobile Sessions - EnglishProsciutto Palermo Valley Mobile Sessions - English
Prosciutto Palermo Valley Mobile Sessions - English
 
Androids
AndroidsAndroids
Androids
 
Mobile app
Mobile appMobile app
Mobile app
 
Mobinius : Mobile Native vs Cross Platform
Mobinius : Mobile Native vs Cross PlatformMobinius : Mobile Native vs Cross Platform
Mobinius : Mobile Native vs Cross Platform
 
5 Reasons To Select Ionic Apps Development For Your Next Project
5 Reasons To Select Ionic Apps Development For Your Next Project5 Reasons To Select Ionic Apps Development For Your Next Project
5 Reasons To Select Ionic Apps Development For Your Next Project
 
Android + training + philippines
Android + training + philippinesAndroid + training + philippines
Android + training + philippines
 

More from Sergii Shmarkatiuk

Software version numbering - DSL of change
Software version numbering - DSL of changeSoftware version numbering - DSL of change
Software version numbering - DSL of change
Sergii Shmarkatiuk
 
02 - Build and Deployment Management
02 - Build and Deployment Management02 - Build and Deployment Management
02 - Build and Deployment Management
Sergii Shmarkatiuk
 
01 - Introduction to Version Control
01 - Introduction to Version Control01 - Introduction to Version Control
01 - Introduction to Version Control
Sergii Shmarkatiuk
 
1.2 introduction to scm - what does version number tell us
1.2   introduction to scm - what does version number tell us1.2   introduction to scm - what does version number tell us
1.2 introduction to scm - what does version number tell us
Sergii Shmarkatiuk
 
1.1 introduction to scm - xp and cm are chicken-and-egg
1.1   introduction to scm - xp and cm are chicken-and-egg1.1   introduction to scm - xp and cm are chicken-and-egg
1.1 introduction to scm - xp and cm are chicken-and-egg
Sergii Shmarkatiuk
 
1.0 about software configuration management trainings
1.0   about software configuration management trainings1.0   about software configuration management trainings
1.0 about software configuration management trainings
Sergii Shmarkatiuk
 
04 - Agile Software Configuration Management
04 - Agile Software Configuration Management04 - Agile Software Configuration Management
04 - Agile Software Configuration Management
Sergii Shmarkatiuk
 
Agile software configuration management
Agile software configuration managementAgile software configuration management
Agile software configuration management
Sergii Shmarkatiuk
 
Организуй свой репозиторий
Организуй свой репозиторийОрганизуй свой репозиторий
Организуй свой репозиторий
Sergii Shmarkatiuk
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кода
Sergii Shmarkatiuk
 

More from Sergii Shmarkatiuk (18)

CS589 paper presentation - What is in unison? A formal specification and refe...
CS589 paper presentation - What is in unison? A formal specification and refe...CS589 paper presentation - What is in unison? A formal specification and refe...
CS589 paper presentation - What is in unison? A formal specification and refe...
 
Software version numbering - DSL of change
Software version numbering - DSL of changeSoftware version numbering - DSL of change
Software version numbering - DSL of change
 
CS519 - homework project presentation
CS519 - homework project presentationCS519 - homework project presentation
CS519 - homework project presentation
 
CS519 - project idea presentation
CS519 - project idea presentationCS519 - project idea presentation
CS519 - project idea presentation
 
CS519 - Cloud Types for Eventual Consistency
CS519 - Cloud Types for Eventual ConsistencyCS519 - Cloud Types for Eventual Consistency
CS519 - Cloud Types for Eventual Consistency
 
05 - Merge Management
05 - Merge Management05 - Merge Management
05 - Merge Management
 
03 - Continuous Integration
03 - Continuous Integration03 - Continuous Integration
03 - Continuous Integration
 
02 - Build and Deployment Management
02 - Build and Deployment Management02 - Build and Deployment Management
02 - Build and Deployment Management
 
01 - Introduction to Version Control
01 - Introduction to Version Control01 - Introduction to Version Control
01 - Introduction to Version Control
 
1.2 introduction to scm - what does version number tell us
1.2   introduction to scm - what does version number tell us1.2   introduction to scm - what does version number tell us
1.2 introduction to scm - what does version number tell us
 
1.1 introduction to scm - xp and cm are chicken-and-egg
1.1   introduction to scm - xp and cm are chicken-and-egg1.1   introduction to scm - xp and cm are chicken-and-egg
1.1 introduction to scm - xp and cm are chicken-and-egg
 
1.0 about software configuration management trainings
1.0   about software configuration management trainings1.0   about software configuration management trainings
1.0 about software configuration management trainings
 
04 - Agile Software Configuration Management
04 - Agile Software Configuration Management04 - Agile Software Configuration Management
04 - Agile Software Configuration Management
 
Breath of life
Breath of lifeBreath of life
Breath of life
 
Agile software configuration management
Agile software configuration managementAgile software configuration management
Agile software configuration management
 
управление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложенийуправление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложений
 
Организуй свой репозиторий
Организуй свой репозиторийОрганизуй свой репозиторий
Организуй свой репозиторий
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кода
 

Recently uploaded

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 

Recently uploaded (20)

Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 

CS519 - Cloud Twin: Native Execution of Android Applications on the Windows Phone

  • 1. CLOUD TWIN: NATIVE EXECUTION OF ANDROID APPLICATIONS ON THE WINDOWS PHONE Presentation type: paper review Class: CS 519 – Software Evolution for Mobility Presenter: Sergii Shmarkatiuk Date: 11/18/2013
  • 2. PRESENTATION FORMAT  5-8 min for presentation Motivation  Proposed solution  Results  Main technical challenge addressed in the paper   17-20 min for discussion Every student provides an answer/comment to presented discussion question ( <45 sec)  We will put original ideas on the whiteboard  Every student picks most appealing/interesting research idea and explains why it is interesting ( <45 sec)  We will define the most popular idea for future research 2 based on students’ opinion. 
  • 3. MOTIVATION One of the challenges of mobile development is necessity of supporting mobile application for different platforms 3
  • 4. MOTIVATION Platform differences result in higher costs of mobile application development and maintenance 4
  • 5. MOTIVATION Real challenges (Joorabchi et al.): Fragmentation across platforms  Fragmentation within the same platform  Behavioral consistency across platforms  Lack of support for automated migration across platforms  “re-coding against wildly different API sets” increases the cost and time-to-market within phases of design, development, testing, and maintenance, which is definitely a large issue for start-up and smaller companies. 5
  • 6. PROPOSED SOLUTION Replicating UI from one platform (Android) to another platform (Windows Phone) using aspect-oriented programming and Reflection API.  Running source application (Android) in the cloud using platform emulator.  Capturing UI events generated by target application (Windows Phone) and sending them to the cloud.  Receiving UI updates generated by source application (Android) at target application (Windows Phone) side.  6
  • 7. RESULTS Latency of a complete UI update time between pressing a button and updating text label in response Min (ms) 281 Avg (ms) 314 Max (ms) 846 7
  • 8. MAIN TECHNICAL CHALLENGE 1. Analysis of interface's in-memory representation 2. Extraction of platform-independent model that can then be used to generate equivalent interface for another platform 8
  • 9. EXAMPLE FROM RELATED WORK (CONVERTING SWING GUI TO ANDROID UI) Run the GUI application  Intercept the application using aspect oriented programming.  Extract the components using Reflection API  Reuse the logic of the application  Translate the components to platform independent domain specific language (XML-based)  Create method stubs for the listeners  9
  • 10. QUESTIONS TO DISCUSS (~45 SEC FOR AN ANSWER) Sergii: Do you think it is a good idea to use XMLbased intermediate representation for the UI of source application?  Sergii: What do you consider to be an overhead of maintaining cloud-based emulators?  Caius: How does their approach scale? A whole Android emulator is quite heavy weight? While this is not a problem when you have only 1 user, how about when you have thousands? Could two or more sessions run in the same emulator?  10
  • 11. QUESTIONS TO DISCUSS (~45 SEC FOR AN ANSWER) Sergii: How could we get to the point, when we could "Write once, Run on any Mobile Platform“?  Michael: This paper is another attempt to solve the "write once, run anywhere" universal code that has been the "holy grail" of programming that developers have been chasing for decades now. Java is just one of many examples of this. This approach seems to be significantly different in substance, but it still suffers from the common achilles heel of universal solutions, specifically poor performance.  11
  • 12. QUESTIONS TO DISCUSS (~45 SEC FOR AN ANSWER) Arpit: What kind of information do static and dynamic analysis of apps may yield to help with portability?  Austin: What other platform pairs can this be extended to (e.g., Android accessing iOS apps)? Is there any reason that Windows Phone and Android are easier, and would is needed to make this happen for other platforms?  Mihai: …  12
  • 13. IDEAS FOR BETTER EVALUATION Sergii: Use 3g/4g instead of wi-fi  Sergii: Calculate overall number and ratio of UI elements that cannot be converted to different platform  Sergii: Use real applications instead of tutorials  Arpit: Provide details of how many applications were able to run successfully on windows phone using android emulator as source  Caius: Provide list of tested applications  Caius, Austin: Test solution in different networks  Mihai: …  13
  • 14. FOLLOW-UP RESEARCH IDEAS Ideas from the paper:  Increase UI component coverage  Support additional platforms (iOS) and languages (Objective C)  Automate API evolution  Create collaborative mobile applications Ideas related to general limitations of mobile platforms:  Security considerations  Usage of platform-specific hardware (NFC)  Handling native Open GL code  Fragmentation across platforms and within the same platform Other ideas:  Sergii: improve presented approach to make it useful for addressing needs of real applications.  Sergii: reduce number of layers in the solution, make it more robust and reusable.  Sergii: separating application into two parts – platform-independent (that could run in the cloud) and platform-specific part (that could run on device) 14
  • 15. FOLLOW-UP RESEARCH IDEAS Other ideas:  Austin: compiling certain parts of the codebase into C++ libraries so that less data has to be sent to the emulator  Michael: OnLive gaming platform  Michael: make it work for gestures  Caius: running more sessions in the same emulator  Arpit: tool that looks at Android activity and creates a corresponding XAML form automatically and vice versa  Mihai: … 15
  • 16. WHAT RESEARCH IDEA DO YOU FIND THE MOST INTERESTING TO WORK ON AND WHY? Separating application into platformindependent and platform-specific part Compiling certain parts of the codebase into C++ libraries OnLive gaming platform Gestures support Running more sessions in the same emulator Automatic conversion to and from XAML UI representation 16