Porting Mobile Apps from iOS to Android: A Practical Experience

The recent rise of smartphones has triggered a revolution in mobile development. As a result of this incremental mobile innovation, new software engineering techniques, software documentation, and tools adapted to the mobile platform remain essential in order to help developers to better understand, analyze, and bootstrap porting mobile applications. In this paper, the authors propose a model-driven reverse-engineering approach based on static analysis, which describes a semantic metamodel of the iOS mobile application and extract design information (such as user interfaces, activity diagram, entities, framework and library dependencies) in order to generate the functional specification documentation and the Android UI skeleton. Thus, aiding the project team, who has in charge porting the app to another mobile platform, to agree upon a consensus on what has to be implemented and safe development cost by auto generating the Android UI skeleton project. To experiment this approach, the authors have implemented a tool called iSpecSnapshot. Moreover, they evaluate the performance of iSpecSnapshot by an experiment involving iOS applications that are ported to Android platform.

[1]  Anthony I. Wasserman,et al.  Software engineering issues for mobile application development , 2010, FoSER '10.

[2]  Josh Dehlinger,et al.  Mobile Application Software Engineering : Challenges and Research Directions , 2011 .

[3]  Eelco Visser,et al.  Model-Driven Software Evolution: A Research Agenda , 2007 .

[4]  Yang Liu,et al.  From UI Design Image to GUI Skeleton: A Neural Machine Translator to Bootstrap Mobile GUI Implementation , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE).

[5]  Jean-Marc Jézéquel,et al.  Model-driven engineering for software migration in a large industrial context , 2007, MODELS'07.

[6]  Carsten Weise,et al.  Providing a Software Quality Framework for Testing of Mobile Applications , 2011, 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation.

[7]  Shahrokh Valaee,et al.  Recent Advances in Recurrent Neural Networks , 2017, ArXiv.

[8]  Stuart Kent,et al.  Model Driven Engineering , 2002, IFM.

[9]  Mats Per Erik Heimdahl,et al.  Proving the shalls , 2003, International Journal on Software Tools for Technology Transfer.

[10]  Mika Katara,et al.  Obstacles and opportunities in deploying model‐based GUI testing of mobile software: a survey , 2012, Softw. Test. Verification Reliab..

[11]  Arie van Deursen,et al.  A Systematic Survey of Program Comprehension through Dynamic Analysis , 2008, IEEE Transactions on Software Engineering.

[12]  Jean Bézivin,et al.  ATL: A model transformation tool , 2008, Sci. Comput. Program..

[13]  R. E. Kurt Stirewalt,et al.  Model-driven reverse engineering , 2004, IEEE Software.

[14]  Miguel A. Fernández,et al.  Where does model-driven engineering help? Experiences from three industrial cases , 2011, Software & Systems Modeling.

[15]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[16]  Anna Rita Fasolino,et al.  Combining Automated GUI Exploration of Android apps with Capture and Replay through Machine Learning , 2019, Inf. Softw. Technol..

[17]  Khalid Elbaamrani,et al.  Model driven reverse engineering: Graph modeling for mobiles platforms , 2015, 2015 15th International Conference on Intelligent Systems Design and Applications (ISDA).

[18]  Tuan Anh Nguyen,et al.  Reverse Engineering Mobile Application User Interfaces with REMAUI (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[19]  Mario Piattini,et al.  Knowledge Discovery Metamodel-ISO/IEC 19506: A standard to modernize legacy systems , 2011, Comput. Stand. Interfaces.

[20]  Henry Muccini,et al.  Software testing of mobile applications: Challenges and future research directions , 2012, 2012 7th International Workshop on Automation of Software Test (AST).

[21]  Philip Newcomb,et al.  Architecture-Driven Modernization (ADM) , 2005, 12th Working Conference on Reverse Engineering (WCRE'05).

[22]  Dr. Harsh Dev Model Driven Architecture: A Review of Current Literature , 2017 .

[23]  Abdul Azim Abd Ghani,et al.  Counselling agent in online game design for excessive and addictive gaming control , 2017 .

[24]  Jean Bézivin,et al.  Towards an advanced model-driven engineering toolbox , 2009, Innovations in Systems and Software Engineering.

[25]  Tao Xie,et al.  A Grey-Box Approach for Automated GUI-Model Generation of Mobile Applications , 2013, FASE.

[26]  Porfirio Tramontana,et al.  MobiGUITAR: Automated Model-Based Testing of Mobile Apps , 2015, IEEE Software.

[27]  Perdita Stevens,et al.  Bidirectional model transformations in QVT: semantic issues and open questions , 2007, MODELS'07.

[28]  Philippe Dugerdil,et al.  Dynamic Analysis Techniques to Reverse Engineer Mobile Applications , 2015, ICSOFT.

[29]  Sanja Fidler,et al.  Towards Diverse and Natural Image Descriptions via a Conditional GAN , 2017, 2017 IEEE International Conference on Computer Vision (ICCV).

[30]  Je-Ho Park,et al.  Fragmentation Problem in Android , 2013, 2013 International Conference on Information Science and Applications (ICISA).

[31]  Jorge Bernardino,et al.  Progressive web apps: An alternative to the native mobile Apps , 2018, 2018 13th Iberian Conference on Information Systems and Technologies (CISTI).

[32]  Stefan Kowalewski,et al.  Reverse Engineering of Mobile Application Lifecycles , 2011, 2011 18th Working Conference on Reverse Engineering.

[33]  Ana C. R. Paiva,et al.  Mobile GUI testing , 2017, Software Quality Journal.

[34]  Sébastien Salva,et al.  Model reverse-engineering of Mobile applications with exploration strategies. , 2014, ICSEA 2014.

[35]  Claudia Raibulet,et al.  Model-Driven Reverse Engineering Approaches: A Systematic Literature Review , 2017, IEEE Access.

[36]  João Pascoal Faria,et al.  Automated Pattern-Based Testing of Mobile Applications , 2014, 2014 9th International Conference on the Quality of Information and Communications Technology.

[37]  Jordi Cabot,et al.  Automatic code generation for cross-platform, multi-device mobile apps: some reflections from an industrial experience , 2015, MobileDeLi.

[38]  Aida Mustapha,et al.  A Hybrid Approach for Reverse Engineering GUI Model from Android Apps for Automated Testing , 2017 .

[39]  Jordi Cabot,et al.  MoDisco: A model driven reverse engineering framework , 2014, Inf. Softw. Technol..

[40]  Roy Grønmo,et al.  Toward Standardised Model to Text Transformations , 2005, ECMDA-FA.

[41]  Ali Mesbah,et al.  Reverse Engineering iOS Mobile Applications , 2012, 2012 19th Working Conference on Reverse Engineering.

[42]  Ivan Kurtev,et al.  State of the Art of QVT: A Model Transformation Language Standard , 2008, AGTIVE.

[43]  Tony Beltramelli,et al.  pix2code: Generating Code from a Graphical User Interface Screenshot , 2017, EICS.

[44]  Rainer Koschke,et al.  How do professional developers comprehend software? , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[45]  Jayantha Rajapakse,et al.  Forward engineering the object oriented analysis and design , 2011, 2011 Malaysian Conference in Software Engineering.

[46]  Liliana Favre MDA-Based Reverse Engineering , 2012 .