There are billions of smartphone devices around the world and the large majority of them run either Android or iOS platforms. A cross-platform mobile application is an application that runs on multiple mobile platforms. One strategy for developing this kind of mobile applications involves to develop, using platform-related toolkits, a native application for each chosen platform. Several frameworks have been proposed to simplify the development of cross-platform mobile applications and, therefore, to reduce development and maintenance costs. Between them, the cross-compiler mobile development frameworks transform the application's code written in intermediate (aka non-native) language to native code for each desired platform. However, to our best knowledge, there is no much research about the advantages and disadvantages of the use of cross-compiler frameworks during the development and maintenance phases of mobile applications. This paper aims at contributing with one of the first bricks in that research direction. We study what mobile developers that use cross-compiler frameworks ask about when they develop and maintain cross-platform mobile applications. In particular, we focus on one framework: Xamarin from Microsoft. For that, we first created two datasets of questions and answers (Q&A) related to the development of mobile applications using Xamarin by mining two Q&A sites: Xamarin Forum and Stack Overflow. We analyzed and compared the number of questions, views and accepted answers from each site. Then, we applied Latent Dirichlet Allocation (LDA) on Xamarin-related questions to discover the main topics asked by developers that use Xamarin. Finally, we compared the discovered topics with those topics about mobile development. Our findings show that Xamarin Forum has a larger number of questions than Stack Overflow, however, the latter has more answers per question and a larger number of questions with at least one accepted answer. Moreover, Xamarin Forum and Stack Overflow share most of the main topics, which mainly discuss about user interface 2 Matias Martinez, Sylvain Lecomte (UI), formatting, design and navigation. Finally, we found topics related to Xamarin technology (such as the design pattern 'MVVM') that were not found in the topics from native mobile development. Nowadays, there are billions of smartphone devices around the world. Smartphones are mobile devices that run software applications (apps) such as games, social network and banking apps. A native mobile application is an app built to run in a particular mobile platform. Currently, there are two platforms that dominate the smartphone market: Android (from Google) and iOS (from Apple), with the 99.7% of the market share as of the first quarter of 2017 (IDC (2017)). A cross-platform mobile application is an application that targets more than one mobile platform. To cover a large number of users and, thus, to increase the impact on the market and revenues, companies and developers aim at releasing their mobile apps to both Android and iOS platforms. A traditional approach for developing this kind of apps is to build, for each platform, a native application using a particular programming language (e.g., Java for Android, Objective-C or Swift for iOS), SDK (Software Development Kit) and IDE (e.g., Android Studio, XCode for iOS). Unfortunately, this approach increases the cost of development and maintenance. For example, a company needs developers with different competence for developing an app for two platforms, resulting in two native apps. Moreover, those native apps could have different quality, for instance, , found that 68% of the studied cross-platform apps have different start ranking across the application stores (App Store, Google Play). During last years, researches (e.g., Perchat et al. (2014)) and industry companies (e.g, Microsoft, Facebook Inc.) have both focused on proposing development frameworks with the goal of making easier the development and maintenance of crossplatforms mobile apps. Earliest frameworks focused on producing hybrid mobile applications: apps built coding both non-native (e.g., HTML for Phonegap/Cordova 1 ) and native code. The non-native code is shared across all the platforms' implementations, whereas the native is written for a particular platform. Nonetheless, beyond the good results of some of them for developing simple apps (Joorabchi et al. (2013) ; Heitkötter et al. (2012)), companies such as Facebook found the resulting applications do not have the same user experience than purely native applications (Martinez and Lecomte (2017)). Another family of frameworks for developing cross-platform apps is the crosscompiler mobile development framework. Their receive as input an application written in a not-native language and transform it to native code for a particular platform. Xamarin 2 and React-Native 3 are two them, which consider C# and JavaScript as not-native languages, respectively. Using cross-compiler frameworks for developing cross-platform mobile applications, developers can reduce both development and maintenance costs
To the best of our knowledge, only one work REF focuses on Xamarin, which studies Q&A sites for discovering the main topics of Xamarin related question.
Discovering discussion topics about development of cross-platform mobile applications using a cross-compiler development framework
ArXiv
ArXiv
Computer Science