Two Datasets of Questions and Answers for Studying the Development of Cross-platform Mobile Applications using Xamarin Framework
Matias Martinez
cs.SE







matias.martinez@univ-valenciennes.fr
[cor1]Corresponding author
University of Valenciennes, France





Context:
A cross-platform mobile application is an application that runs on multiple mobile platforms (Android,  iOS).
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, such as Xamarin from Microsoft, 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 those frameworks during the development and maintenance phases of mobile applications.

Objective:
The objective of this paper is twofold.
Firstly, to present two datasets of questions and answers (Q&A)   related to the development of mobile applications using Xamarin.
Secondly, to show their usefulness, we present a replication study for discovering the main discussion topics of Xamarin development.


Method:
We created the two datasets by mining two Q&A sites: and .
Then, for discovering the main topics of  the questions from both datasets, we replicated a study that applies Latent Dirichlet Allocation (LDA).
Finally, we compared the discovered topics with those topics about general mobile development reported by a previous study. 


Results:
Our datasets have 85,908 questions mined from the  and 44,434 from   .
Between the main topics discovered from those questions, we found that some of them are exclusively related to  Xamarin and Microsoft  technologies such as the  design pattern `MVVM'.

Conclusions:
Both datasets with Xamarin-related Q&A can be used by the research community for understanding the main concerns about developing cross-platform mobile applications using Xamarin framework. In this paper, we used it for replicating a studying about topic discovering.


 



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, such as Xamarin from Microsoft, 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 first present two datasets of questions and answers (Q&A)  from two sites (and ) related to the development of mobile applications using Xamarin.
Then, we replicate a study for discovering the discussion topics from questions. 
Our study first discovers topics related to the Xamarin technology  from the two datasets, and then it  compares the discovered topics with those topics about general mobile development discovered by a previous study. 







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 sites: and .
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 has a larger number of questions than , however, the latter has more  answers per question and a larger number of questions with at least one accepted answer.  
Moreover, and share most of the main topics, which mainly discuss about user interface (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.


 


Mobile Development Cross-platform mobile applications Questions and  Answers Topic modeling Xamarin








§ INTRODUCTION




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 <cit.>.

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, as studied by previous works, those native apps could have different quality. For example, Hu et al. <cit.> found that 68% of the studied cross-platform apps have different start ranking across the App Store and Google Play stores. Furthermore,  Ali et al.  <cit.> analyzed 80000 cross-platforms apps from those app stores and  found that the Android version of app-pairs receives higher user-perceived ratings compared to the iOS version.

During last years, researches (e.g., <cit.>) 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 cross-platforms mobile apps.
Earliest frameworks focused on producing hybrid mobile applications: apps built coding both non-native (e.g., HTML for Phonegap/Cordova[<https://cordova.apache.org>]) 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 (<cit.>), companies such as Facebook found the resulting applications do not have the same user experience than purely native applications <cit.>.

Another family of frameworks for developing cross-platform apps is the cross-compiler mobile development framework.
They generates native code (for a particular platform) from an application written in a non-native language.
Xamarin[<https://www.xamarin.com>] and React-Native[<https://facebook.github.io/react-native>] are two of them, which consider C# and JavaScript as non-native languages, respectively.
Using cross-compiler frameworks for developing cross-platform mobile applications, developers can reduce both development and maintenance costs by sharing code between the different platform implementations and, at the same time, they obtain pure native mobile applications.

However, beyond the advantages of sharing code, we wonder whether developing cross-platforms apps using cross-compiler frameworks has any drawback with respect to the native development during the life-cycle of a mobile application. 
To our knowledge, as also mentioned by <cit.>, no previous work has studied that yet. 
Our long term goal is to study the differences  between  the development process that uses cross-compiler framework and the process that uses traditional development toolkits.



To encourage the study of  cross-platforms mobile application, this paper presents two datasets of  questions and answers (Q&A)  related to one cross-platform development framework:  Xamarin from Microsoft.


The two datasets are conformed by  questions  and answers extracted from and , respectively. 
The latter is a site exclusively dedicated to Xamarin technology.[<https://forums.xamarin.com/>] 
The main reasons that motivate us to study Xamarin are:
[a)]

  * availability of documentation and guidelines[<https://developer.xamarin.com/guides/>];

  * 5+ books edited during last years (e.g., <cit.>);

  * development toolkits available[<https://docs.microsoft.com/visualstudio/>];

  * availability of testing environment for cross-platform apps called Xamarin Test Cloud.[<https://www.xamarin.com/test-cloud>], and

  * Xamarin is one of the top 10 most popular development frameworks and libraries  according to the Survey 2018.[<https://insights.stackoverflow.com/survey/2018/#technology-frameworks-libraries-and-tools>]



Previous works have analyzed mobile-related from with different purposes, for instance, for discovering main topics related to mobile development (<cit.>).  
To show the utility of the two  Xamarin-related dataset, in this paper we replicate one of those studies,  i.e., <cit.>, focusing exclusively on the Xamarin technology, instead of focusing on general mobile development as done by .   
Our study discovers the main discussion topics present in the questions related to Xamarin by applying Latent Dirichlet Allocation (LDA).
Finally, to know about the particularities of cross-platform apps developed using Xamarin,  we compare the  topics we discovered with those  topics related to general mobile development discovered by .



 

 












Previous works have analyzed from for discovering main topics related to native mobile development (<cit.>).




Our research is guided by the following research questions:


   
   
  

  



Our main results show that has a larger number of questions than , however, the latter has more answers per question and a larger number of questions with at least one accepted answer.  
Moreover, and share most of the main topics, which mainly discuss about user interface (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 from .




The contributions of this paper are:


  * A dataset of related to Xamarin technology filtered from .


  * A dataset of extracted from Xamarin forum.


  * An analysis of the two datasets (e.g., number of questions, answers, views).


  * Discussion topics  discovered from questions related to Xamarin technology.


  * An study about the relation between topics from and and those topics discussed in questions related to development of native mobile applications from <cit.>.


  * The study of the relevant questions from 3 Xamarin-related topics.



The paper is organized as follows.
Section <ref> discusses the related work.
Section <ref> presents two datasets of Q&As extracted from and . 
Section <ref> analyzes both datasets in terms of number questions, answers accepted, and views.
Section <ref>  replicates the study of <cit.>  for discovering topics from  and .
Section <ref> presents the discussion. 
Section <ref> concludes the paper.

All data discussed in this paper, including the two datasets, is publicly available in our web appendix: 
<http://anonymous.4open.science/repository/3ac646ee-03f9-40d0-a7fc-d0a6124af979/>


Xamarin has an official online forum[https://forums.xamarin.com/], which has multiple purpose: 
[a)]

  * to be a platform for communicating announcements (events, releases, jobs related with the platform) 
and 

  * to be a Q&A site, where Xamarin users (such as cross-platforms developers) post discussions, questions and share answers. 
Also, the developers of the Xamarin platforms (i.e., members of the company that develop it) participate on the forum.


We consider that gives to the software engineering research community the possibility to study the development and maintenance phases of cross-platform mobile applications, and to propose new approaches for improving the quality of mobile applications.






 



§ RELATED WORKS







During the recent years several works have studied  Q&A from the site <cit.>. 
Some of them focused on questions about Android platform <cit.>.
For example, 
Linares-Vasquez  et al. <cit.> studied questions and activities in when changes on Android APIs occur, finding that deleting public methods from APIs is a trigger for questions that are discussed more.
Wang   et al.  <cit.> analyzed posts from related to iOS and Android  APIs to find API usage obstacles, and then they applied a topic modeling technique to discover  several repetitive scenarios in which API usage obstacles occur. 
Stevens  et al. <cit.>  studied  questions about Android permission use on .
Other works have focusing on mobile-related tags from : 
Beyer et al.  <cit.> investigated 450 Android-related posts from to get insights into the issues of Android app development. 
To our knowledge, no work has studied questions and problematic related to neither cross-complied frameworks nor Xamarin technology.

In this paper, we analyze related to Xamarin technology, and then we apply applied a topic modeling techniques called Latent Dirichlet Allocation (LDA) to obtain the main topics from those questions.
As reported by  Chen et al. <cit.> and Sun et al. <cit.> several works have  already applied topic modeling techniques such as LDA.
For instance,  Barua et al. <cit.> analyzed data to automatically discover the main topics present in developer discussions. 
Yang et al. <cit.>  focused on discovering topics related to security by analyzing  security-related posts. 
Bajaj et al. <cit.>  discovered  topics  from discussions about web developers and focused on how prevalent are web-related topics in discussions related to mobile web development.
Other works have focused on topic modeling for native mobile technologies. 
For example, 
Linares-Vasquez et al. <cit.> used LDA to extract hot-topics from mobile-development related questions.
Their findings suggest that most of the questions include topics related to general questions and compatibility issues, whereas the most specific topics are present in a reduced set of questions.
<cit.> applied LDA on mobile-related posts to determine what mobile developers are asking. 
Across all native platforms studied, they found that questions related to app distribution, user interface, and input are among the most popular. 
Pinto et al. <cit.> have analyzed questions about Swift, programming language (successor of Objective-C) for building native iSO mobile apps. They applied LDA to find common problems faced by Swift developers, finding that the language is easy to understand and adopt, but there are many questions about problems in the toolkit (IDE, SDK).
In our work, we focus on topics related to Xamarin development framework.

Other works have study both  and other sources of information.
For example, Wang et al. <cit.> studied the mutual knowledge sharing between Android Issue Tracker and . Their goal is to bridge the two communities by linking related issues to posts automatically. 
Ye et al. <cit.> studied how users share URLs in for understanding how knowledge diffusion process takes place on that site. 
They found that the 31% of the shared URLs on is to reference information that can help to solve a complex problem. 
Other works focus on analyzing developer forums.
For example, Venkatesh et al.  <cit.> mined both developer forums and to find the common challenges encountered by developers when using Web APIs. As difference with our work, they put all posts (from both Web APIs and ) in a same dataset, which is later used for extracting topics using LDA.
Lee et al. <cit.> studied the similarity in developer interests within and across GitHub and . They found that the 39% of the GitHub repositories and questions that a developer had  participated fall in the common interests.
Zagalsky et al. <cit.> focused on R language by analyzing questions and answers  from two channels: the R-tag in and the R-users mailing list. They found  that knowledge is constructed in each channel in a different manner:
on participants contribute knowledge independently of each other, whereas R-user mailing list are more likely to build on other answers.
In this work, we create two datasets of related to Xamarin technology, that could be used for replicating some of these works (e.g., <cit.>).






  
Apps Stores Analysis

Several works have focused on studying mobile application stores such as Google Play as presented by the survey of  <cit.>.
In our best knowledge, some works analyzed the reviews and rankings of cross-platforms mobile applications <cit.>.
For example, 
Ali et al. <cit.> detected 80,000 cross-platforms apps  from a corpus of 2.4 million apps collected from the Apple and Google Play app stores.  
They found that 80% of the top-rated apps are cross-platforms and that the Android version of app-pairs receives higher user-perceived ratings compared to the iOS version.
Malavolta et al. <cit.> have focused on analyzing hybrid mobile apps (i.e., those developed using frameworks such as Apache Cordova/PhoneGap) available on the app store Google Play. They mined 11917 free apps and their related metadata from that store, finding is that the average of end users ratings for both hybrid and native apps are similar (3.75 and 3.35 out of 5, respectively). 



Other works focus on classifying, comparing and evaluating  cross-platform mobile application development tools  to build  hybrid mobile  and native apps (<cit.>). 
For example, Ciman et al. <cit.> analyzed the energy consumption of mobile development:  
their results showed the adoption of cross-platform frameworks as development tools always implies an increase in energy consumption, even if the final application is a real native application. In that work, Xamarin framework was not evaluated.
To the best of our knowledge, no work has studied cross-platforms mobile applications created with Xamarin framework.
In this work we study questions from to understand the main problematic faced by developers when they develop cross-platforms mobile apps using Xamarin framework.












 


§ 
CREATION OF TWO DATASETS WITH  Q&A ABOUT XAMARIN




In this section, we present two datasets with questions and answers (Q&A) related to Xamarin technology.
In  section <ref> we present the first dataset  that is composed of posts extracted from the site Stack Overflow.[<https://stackoverflow.com/>]
In section <ref> we present the second dataset, named , is composed of posts extracted from the official forum of Xamarin.[<https://forums.xamarin.com/>]
Finally, in section <ref> we briefly describe the data from both datasets.
In section <ref> we use both datasets for extracting the main discussion topics related with Xamarin technology.




 §.§ Dataset of from Stack Overflow





  §.§.§ Data Description

We used the data dump of Stack Overflow provided by Stack Exchange, Inc.[<https://archive.org/details/stackexchange>]
The data is organized on 8 XML files, each one represents one data entity: 
 Posts, Users, Comments, Tags, Votes, PostLinks, PostHistory, and  Badges.[<https://ia800500.us.archive.org/22/items/stackexchange/readme.txt>]
For facilitating the manipulation of the data, we migrated it to a relational dataset.[<https://gist.github.com/gousiosg/7600626>]

A post from the data dump corresponds to a question or an answer done by an user.
Question can have zero or more tags (up to 5).
A post can also have a vote, which represents a mark as `favorite', `spam', `inform moderator', `offensive', etc.
The dataset contains 14458875 questions and 
22668556 answers.[Data dump released the August 31, 2017]




  §.§.§ Methodology to filter Xamarin posts from Stack Overflow



The first  challenge is to filter posts related to Xamarin technology among all posts present in the data dump.
For that, we apply two techniques.
The first one filters posts according to the tags associated to each post. 
The second technique matches keywords from the posts' titles.
Let us detail each strategy.



  
Filtering posts by tags


We used the technique proposed by <cit.>, who filtered posts related to mobile technologies.
Their technique consists of three steps.
The first step filters posts using a initial set of tags (in that work the author used mobile related tags such as `Android', `iOS'). 
The second step analyzes the most representative and significant tags from the  posts retrieved after applying the first step.
Finally, the last step filters posts from using the most representative tags for the mobile technology (those tags discovered in the previous step).





xamarin     25029     25029     100%     100% 
 xamarin.ios     10640     10640     100%     42,51% 
 xamarin.android     9590     9590     100%     38,32% 
 xamarin.forms     9308     9308     100%     37,18% 
 mvvmcross     2881     2003     69,52%     8,00% 
 xamarin-studio     1355     1355     100,00%     5,41% 
 monodevelop     2430     696     28,64%     2,78% 
 portable-class-library     1355     502     37,05%     2,01% 
 monotouch.dialog     461     428     92,84%     1,71% 
 xamarin.mac     386     386     100,00%     1,54% 
 xamarin-forms     171     171     100,00%     0,68% 
 xamarin.uwp     141     141     100,00%     0,56% 
 sqlite-net     319     113     35,42%     0,45% 
 custom-renderer     134     108     80,60%     0,43% 
 monomac     325     97     29,85%     0,39% 
 xamarin.uitest     90     90     100,00%     0,36% 
 xamarin.auth     89     89     100,00%     0,36% 
 xamarin-test-cloud     77     77     100,00%     0,31% 
 visual-studio-mac     164     64     39,02%     0,26% 
 xlabs     57     54     94,74%     0,22% 
 sqlite.net     77     51     66,23%     0,20% 
 sqlite-net-extensions     114     51     44,74%     0,20% 
 cocossharp     68     47     69,12%     0,19% 
 xamarin.winphone     46     46     100,00%     0,18% 
 skiasharp     52     44     84,62%     0,18% 
 tabbedpage     41     41     100,00%     0,16% 
 xamarin-zebble     39     39     100,00%     0,16% 
 xamarin-android-player     38     38     100,00%     0,15% 
 zebble     37     37     100,00%     0,15% 
 xamarin.forms.labs     34     34     100,00%     0,14% 
 objective-sharpie     32     32     100,00%     0,13% 
 xamarin.mobile     31     31     100,00%     0,12% 
 xamarin.forms-listview     31     31     100,00%     0,12% 
 xamarin.windows     31     31     100,00%     0,12% 
 akavache     47     29     61,70%     0,12% 
 freshmvvm     31     28     90,32%     0,11% 
 uitest     97     28     28,87%     0,11% 
 xamarin-binding     26     26     100,00%     0,10% 
  
We applied the technique as follows.
In the first step we defined the initial set of tags:  
as we aim at filtering Xamarin-related posts, our initial set was “%xamarin%”, where % corresponds to zero or more characters. 
In total, 28 tags include the word `xamarin' such as `xamarin.iso', and formed the initial set of tags.
We then retrieved 39855 questions tagged with at least one tag from the initial set. 
Those 39855 questions have, in total, 4143 tags.
Note that, those retrieved posts could also be tagged with tags that are not included in the initial set, but they are related to Xamarin technology such as `monodevelop'. 
To obtain tags related to the Xamarin technology not included in the initial set, the technique by presents two measures, TRT (tag relevance threshold) and TST (tag significance threshold) <cit.>, that help us to:
[a)]

  * obtain those tags representative to Xamarin technology, and 

  * discard those tags that are related to Xamarin technology but, at the same time, they are too general.
For instance, a significant portion of  Xamarin posts are tagged with "Android". However,  most of the questions tagged with Android are not related to Xamarin technology.


TRT(tag_i) is the ratio between the
number of posts that contain at least one tag from the initial set and the  total number of posts related to tag_i.
TST(tag_i) is the ratio between the number of mobile posts for tag_i and the number of mobile posts for the most popular mobile tag.

In the second step, we filtered those tags with at least a 25% for representative (TRT) and 0.1% for significance (TST).
In total,  38  tags conforms the final set of tags related to Xamarin technology.  
Table <ref> shows  the 10 tags with higher number of posts, and for each tag 
the number of total occurrences on a) all posts and b) on Xamarin posts, and the measures TRT and TST. 
For example, 
the final tag set includes tag "monotouch.dialog", which has a TRT of 92.84%:
almost all posts tagged with that tag  are also tagged with one tag from the initial tag set such as `Xamarin'.
Moreover,  those posts represent the 2.34% (i.e., the TST value) out of all posts tagged with at least one initial tag.
On the contrary,  the tag `Android' is not included in the final tag set: its TRT metric is lower that the threshold we set:  
only the 1,07% of post tagged with Android also are tagged with Xamarin (i.e., TRT metric).


Finally, for the third step of the technique, we retrieved 43988 posts related to Xamarin technology:
39855 of them tagged with the initial tags (i.e., include the keyword "Xamarin") and  4133 posts  tagged with at least  one tag from remaining final set of tags. 



  
Filtering posts by keywords


The second technique for retrieving Xamarin-related posts filters posts by matching keywords on the post's title.
This strategy aims at retrieving those posts that are not tagged with any tag from the final set of tags.
We define a keyword for each tag included in final set of tags presented before.

Using this keyword-based strategy, we retrieved 446 new posts related to Xamarin technology.
For instance, one of them is the post  "Xamarin Android Save sms" (post id 29405420)[<https://stackoverflow.com/questions/29405420/xamarin-android-save-sms>]
 which was tagged with 3 tags: "C#, android, datetime", none of them included in our final set of tags.




  
Final set of Xamarin-related posts from 


Using the two described techniques, we retrieved 44434 questions from the dump:
43988 were found using the tag-based strategy, whereas
446 were found using the keywords-based strategy.


 



 §.§ : a dataset with questions from 





  §.§.§ Describing Forum Xamarin



The is an online web platform where mobile developers post questions or start a discussion about the Xamarin framework and its ecosystem. 
Moreover, it is a communication channel between the developers of the framework (a.k.a. Xamarin Team) and users (i.e., the developers of mobile apps that use Xamarin).
For instance, new versions of the framework or of particular components are announced in the forum.[<https://forums.xamarin.com/discussion/85747/xamarin-forms-feature-roadmap#latest>]
All posts are publicly available. However, for creating a new post, users must be registered into the site, which is free.



  
Forums
The site is composed of seven general forums:
Community, General, Pre-release & Betas, Tools and Libraries, Graphics & Games,
Xamarin Platform and Xamarin Products.
For instance, the forum Xamarin Platform contains questions related to the development of an application for different targeted platforms, while the forum Xamarin Product focuses on discussions about products related to the Xamarin technology such as TestCloud, a cloud-based platform for testing mobile apps built using Xamarin.
Each of those forums has one or more `sub-forums'.
For instance, the mentioned Platform forum has 5 categories: Android, iOS, Cross-Platform, Mac, and Xamarin.Forms.
The forums are created by the forum administrators, which means that users are not able to define new ones.

We identify two types of forums: 
[1)]
 
  * those related to technological topics (platforms, libraries, tools, IDEs, etc.)
and 

  * those related to non-technological topics related to Xamarin (events, conferences, jobs, etc.).


The main page of each forum shows a paged-list of posts and two buttons, one for creating a question and the other for creating a discussion. 
Each post from the list shows the post's title, author, number of views, number of answers, and zero or more labels.
Those labels are colored boxes located near the title and indicate, for instance, if a question was answered or if the answered was accepted by the user who wrote the question. 



  
Posts
A user can create a post on a given category.  
Even there are two types of posts, i.e., questions and discussions, the creation forms of them are similar, i.e., both have the same fields.
The user can also select a list of tags associated the new post. 
However, once a post is created, the forum does not show the list of tags associated to a post.[Last visit: June, 2018]




  
Answers
A registered user can answer an existing question or to put a `like' on existing answers.
Moreover, as in others Q&A such as Stack Overflow, the post's author can accept one or more answers. The accepted answers are labeled with a green-colored box tag “Accepted answer".



  
Users
The provides the forms  for registering new users, which have the right to create new posts and to write comments.
In the forum also participate users that belong to the organization that develops Xamarin framework. 




  §.§.§ Dataset construction


The Xamarin Forum site does not have an API to programmatically access and retrieve the data, such as those provided by Stackoverflow[<https://api.stackexchange.com/>] and GitHub[<https://developer.github.com/v3/>].
For this reason, we developed a web crawler for retrieving and storing all pages from . 
Our engine has main two phases: 
[1)]

  * Page fetching and 

  * Page parsing.




  
Fetching pages

The first phase fetches (i.e., downloads)  all web pages written in HTML from the forum web site <https://forums.xamarin.com/>, by  accessing  via HTTP protocol.
The has two kinds of web pages. 
A page from the first kind corresponds to a single post.
It contains the post's title, question (or discussion topic), author data (names, location, roles), posting date and a list of comments. Each comment has the name of the user that wrote it, the date, and one or more labels such as “Answered question".
The second kind of pages corresponds to the main pages of each forum. 
A “main" page shows in a paged list all posts done in that forum[In those main pages, those posts are called `Threads'], ordered by decreasing creation date.
The list shows for each post its title, the numbers of views (i.e., number of visits the post has received), numbers of comments done, and zero or more labels that indicates if the post is a question or announcement, if it has an accepted answer, etc. 




  
Extracting data from pages

In the second phase, our engine extracts and format data for each fetched page and store it in a  relational database.
Our engine is implemented in python language, and uses the library BeautifulSoup[<https://www.crummy.com/software/BeautifulSoup/bs4/doc/>] for parsing the Xamarin web pages in HTML.  The structured data is then stored in a MySQL database. 




  §.§.§ Data schema


The store all  data extracted from the Xamarin forum in a relational database.
We now describe briefly the main entities from the database schema. 
The first entity is Post, which stores all posts written in the Xamarin forums. Each post belongs to one Forum and has zero or more Comments. 
Note that the post entity stores both questions and discussions.
We decide to model both questions and discussion in the same entity due they share most of their properties.
Both Comment and Post entities have a relation many-to-one with the entity User, which stores the information of the users that make or answer a post.
A User has different Roles. 
A registered user has the role `Member' by default, but there are other roles exclusively assigned to used belonging the Xamarin organization such as `Forum Administrator', or role `XamUProfessor" which are professionals involved on the Xamarin training program called Xamarin University.[<https://www.xamarin.com/university>]




 §.§ Perspectives of and Xamarin-related posts from 
 



In our opinion, both datasets can be used by the research community for  understanding the main concerns about developing cross-platform mobile applications using Xamarin framework.
In this paper  we use them to discover the main discussed topics from their questions.









 




§ ANALYZING  DATASETS  WITH RELATED TO XAMARIN TECHNOLOGY




In this section we describe and compare the two datasets with questions and answers related to Xamarin technology presented in section <ref> with the goal of answering the first research question: .




 §.§ Number of questions


The   has 91838 questions.[In this paper, we use the terms `question', `post', and `thread' interchangeably.]
The first dates from January, 29 2013, and the last one from September, 6 2017.
There are 85908 (93.5%) questions related to technological forums,  and 5930 (6.5%) related  non-technological forums such as Events has 1079 questions (1.17%), Job Listings 465 (0.51%).
In this work, we are interested on those technological questions, discarding the non-technological for further analyses. 

In we selected 44434 questions discussing about Xamarin technology. 
They represent around the 0.12% of all questions from , which has 37215528 questions.
Compared to other , the number of questions has the same order of magnitude.
For instance, 21515 questions were tagged with "%react%native%" (framework for generating native mobile apps using JavaScript language),
60790 questions were tagged with "%cordova%" and  8194 "%phonegap%" (Apache Cordova/Phonegap, is a framework for creating hybrid mobile apps using HTML and JavaScript).[Data corresponding to dump from August 31, 2017.]




 §.§ Number of answers and acceptance



On , the 72.3% (62114 out of 85908) of the technological questions have at least one answer. In average, each question has 2.99 answers. The remaining 29.7% (23794) has not been answered.
Moreover, the 15.2% (13025 out of 85908) of the questions have, at least, accepted answer.
The proportion of answered questions is similar in and : 79% vs 72.3%.
However, the proportion of accepted answers on is 3 times as larger as that one from Xamarin forum: 46.1% vs 15.2%.  



On , the 79% (35100 out of 44434) has at least one answer. 
In average, each question has 1.13 answers.
The  46.1% (20495 out of 44434) of Xamarin questions has one accepted answer,
whereas the 33.9% (14605) has at least one answer but any on them was accepted.
The remaining 20% (9334) has not been answered.



 §.§ Number of views per question



Xamarin-related questions from Stack Overflow were viewed 36523008 times, 821.9 views per question as average, whereas 
those from were viewed 35032568, that is, 407.8 views per question as average.
In conclusion, questions from have received almost the same number of views than Xamarin-related questions from (>35 millions).
However, questions are viewed, in avg., two times more that those from Xamarin forum. 


Response to 
[a)]

  * Xamarin forums has a 85,908 questions related to Xamarin and  Stack Overflow has 44,434.

  * The proportion of answered questions is similar in Stack Overflow and Xamarin Forum (79% vs 72.3%), however, the proportion of accepted answers on Stack Overflow is ∼3 times as larger (46.1% vs 15.2%);
 
  * Questions of both sites  have received almost the same number of views (>35 millions), however, those from Stack Overflow are viewed, in avg., two times more.








  





§ REPLICATION STUDY OVER THE TWO DATASETS: TOPIC MODELING


In this section, we present an study that replicates the experiment replicates the study of <cit.>. That work  focuses at discovering topics from mobile development (i.e., not related to neither a particular platform nor framework) from  .
On the contrary, our study aims to discover topics from Xamarin-related questions from  and .
In addition, our replication study compares those Xamarin-related topics with those found by .
This section is organized as follows:
In Section <ref> we first introduce the methodology to discover topics (based on that one from ), and in Section <ref> we then present the results.
In the rest of this paper, when the mention questions we refer to the dataset of questions from related to Xamarin technology that we built in section <ref>, whereas questions are those from the built in section <ref>.





 §.§ Methodology for replicating an experiment about topic modeling




In this section, we present three methodologies that we execute to respond the research questions.
First, in section <ref> we present a methodology  for discovering the discussion topics from questions from Stack Overflow and  Xamarin Forum (i.e., from the datasets we presented in sections <ref> and <ref>).
The results will us allow to respond the second research question. 
Then, in section <ref> we present a methodology for relating topics discovered from different sources. We use it to respond the third  research question.
Finally, in section  <ref>  we introduce a methodology for retrieving relevant questions from a topic and we use it to respond the forth research question.





  §.§.§ Methodology for Discovering Topics



This section presents a methodology for discovering the main topics from a dataset of questions. We applied this procedure for obtaining two sets of main topics:
one from questions, another from questions.

The methodology consists of the following steps.



  
Retrieve posts titles 
For each question from a dataset (Xamarin Forum or ), we created a document that includes all words contained in the question's title as done by <cit.>.
In case of , we only considered the technological posts (i.e., the 93.5% of all posts), as discussed in Section <ref>.  



  
Document processing 
We pre-processed all documents by first removing stop words (e.g., "at", "the") and then applying a customized word stemming processing.
During the setup of our experiment, 
we noted that traditional stemming (as applied by, for example, <cit.>)  alternated domain-specific  words  such as “iOS" or “Mono", and, by consequence, the step produces a loss of information.
With the goal of minimizing the impact of traditional stemming,  
we defined a   customized word stemming process composed by the following steps.
We first created a list of words related to the Xamarin technology. Those words are the tags related to Xamarin posts presented in section <ref>.
The list, called technology-specific words list,  is available in our appendix.
Words from a post title that belong to that list are not stemmed and they are included in a document without any transformation applied.
For the words that are not included in the list, 
we applied the first step of the stem process described by <cit.> for transforming all words in singular.



  
Discovering topics
We applied Latent Dirichlet allocation (LDA) algorithm as done by Blei et al. <cit.> for discovering topics from a set of documents, where each document corresponds to a pre-processed question's title.
Several works have used LDA for discovering main topics in the domain of, for example,  web development <cit.>, software maintenance <cit.>, and mobile development (<cit.>).
As output, LDA produces a set of topics, each composed of a list of pairs word-probability. Typically, previous works represent a topic with the  15 or 20 words with highest probability (<cit.>  and <cit.>, respectively).
We used an implementation of LDA called Mallet  <cit.>.


One of the challenge of LDA to chose a configuration (i.e., values for the input parameters) that produce meaningful topics.
There are four main parameters to configure: 
[a)]

  * alpha,  

  * beta,  

  * number of topics to generate, and 

  * number of iterations.

In this experiment, we used a similar configuration proposed by <cit.>, one of the closest related work, which studied what mobile developers are asking about on . 
The configuration they used is:
40 topics to generate (nrtopics),  alpha = 0.025 (that is: 1/nrtopics); beta = 0.1 and number iterations = 1000.
Having similar configuration to allows us to compared the topics we discovered from Xamarin-related questions, with those from native mobile apps discovered by them <cit.> (section <ref>).

In the remaining of the paper, 
we refer as t_so N_i and t_xam N_i, to topics with identifier N_i from and Xamarin, respectively.





  
Labeling topics


As each topic discovered from LDA is a list of words,
previous works labeled each topic with a human readable label.
In this work we decided to reuse, when is possible, labels related to mobile technology defined by <cit.>, which discovered and labeled topics related to mobile development.
Some of the labels from this work are “Input”, “Tools”,“Application Store”,  “Parsing”, “Map and Location”.
In case that  none of their  labels describe correctly a topic that we discovered, we defined a new label by taking into account the words from the topic and their probabilistic.
In some cases we used the same label for two related topics and included a sub-category in parenthesis for remarking the differences between them.




  §.§.§ Methodology for relating topics from different data sources


In our experiment, we need to find whether a topic from a dataset (e.g., ) is also a topic from another dataset (e.g., or that one from ).

We related two topics from different datasets if they have:
[a)]

  * similarity on their topic labels;  or

  * similarity on the most significant  works that conform the topic.  The significant of a word is the  probability given by the generated LDA model to that word.  

For example, we related topics t_so  28  with t_xam 40 because they have the same topic label: “User Interface (Table)”.
As the labels do not always match, we related other topics using the words from the topic. 
For example, topic t_so 8 was label as “Graphic and memory", and the most similar topic in Xamarin that we found is t_xam 16, which was labeled as “Video memory”. 
We related both topics because they shares significant words like “memory” and “leak”.
The lists of topics (words and their probabilities) and the related topics of each are available in our appendix.




  §.§.§ Methodology for filtering most relevant questions from a topic




In this paper, we define  relevant questions of a topic t  as those questions qs from  t with:
 [a)]  
  * most number of views, or 

  * highest score, i.e., number of up votes (only for ).

Note that all questions we consider for analyzing topic t have t as dominant topic. 
A dominant topic t of document d is the most related topic (i.e., with highest probabilistic) according to the LDA topic  model generated.

The intuition is that if a question asks about a relevant subject or a recurrent problem about Xamarin technology, it is frequently visited and appreciated with up votes done by other developers.
For each topic, we selected the questions with at least 10000 views and 10 up votes as score.





 







 §.§ Results:





  §.§.§ 
 




 
Table <ref> shows the topics from and questions discovered using the methodology described in section <ref>.
The left-size displays the topics and the right-side displays the Xamarin topics.
The column Id corresponds to
the topic identifier assigned by Mallet; the column Label corresponds to  the  label manually assigned by us using the method presented in section <ref>.
The topics are sorted by decreasing NDDT. As explained by Linares-Vasquez et al. <cit.> NDDT counts for each topic t the number of documents that has as t as dominant topic. 
In our appendix we presented,  for each discovered topic,  the words that compose the topic, their probabilities, and NDDT metric.
Let us first present some of the discovery topics, and then to compare the topics discovered from both datasets. 



  
Main Discussion Topics Discovered

Let us first focus on :
the top-4 topics (according with the number of dominant documents NDDT) are related related to the view: 
t_so 11 and 32 both labelled with "List (Forms)";
t_so 28 labelled with "User Interface (Tables)";  and 
t_so 23 "User Interface (Layouts)".
Then, the next two topics are not directly related to the user interface, for example: t_so 22 "Emulator/Device/Simulator"
and t_so  3 "Web Service".

For , the top-5 topics from are related to View or Controllers development:
t_xam 7 and t_xam 10 both labelled with  "View Controllers/Navigation",
t_xam 4 and t_xam 8 both labelled with "Lists (Forms)", 
and 
t_xam 3 labelled with "Forms (WebView)".
Then, after them there are two topics not related to the user interface:  t_xam 1 "Resources/Files" and t_xam  5 "Android" (Activity).

When we analyzed the remaining topics, we observed that the topics discussed in the are diverse.
For instance, those cover topics such as:
resources and files  (t_so 6   and  t_so 1),  web services (t_so 3 and t_xam 37), language questions (t_so 9  and t_xam 33),  databases (t_so 24 and topic_xam 30), notifications (t_so 16 and t_xam 18), packages (t_so 7 and t_xam 31), 
architectural  (t_so 19,  t_xam 19), social (t_so 35 and t_xam 21), maps and locations (t_so 33 and t_xam 6), IDEs (t_so 17 and t_xam  28). 




  
Common Main Topics and sites

 
We observe that and share 33 out of 40 (82.5%) of the discovered topics.  
For instance, there are questions that discuss about “Notifications”: in those questions have as dominant topic t_so 16 and those from has as dominant topic t_xam 18. 
Seven topics from Xamarin and other 7 from were not related to any topic.





  
Main topics found from only one site

In both and , there are 7 discovered main topics (12.5%) that we could not manually related to any topic of the other site.
For instance, we discovered that one of the main topic from , t_so 34, is about  “Threading”.  However, we could not find  any  topic between those from Xamarin that discusses about threading. 
On the contrary, we discovered  from the site a topic (t_xam 15)  which discusses about Application Store, but none of the main topics from is related to it. The lists of unrelated topics are available in our appendix.



Response to 
The top main topics discovered from and Xamarin forum discuss about User interfaces: Tables, Layouts, Controllers, Forms.
The 82.5% of the discovered main topics are present in both and sites.








  §.§.§ 



As in this paper we have replicated the study of (which focuses on general mobile development) over a Xamarin-related datasets, we now proceed to compare the results  (i.e., discovered topics) of both studies.
In this way, we are able to detect  topics discovered  from and that are:
[a)]

  * general, i.e.,  related to mobile but not particularly to Xamarin technology,  and

  * closely related to the development of cross-platform mobile applications using Xamarin.




  
Comparing topics from different datasets

We compared the topics previously discovered in section <ref> with those  related to  mobile application development presented by <cit.>. 
As the authors analyzed questions about three mobile platforms (Android, iOS, and Windows Phone), we denominated their topics as `general', and we reference each as  t_genmob N, where N is the id of the topic.[As the topics from <cit.> do not include any `id', we consider that the ids of them correspond to the row numbers of the table that presents the topics.]
For comparing topics, we used the same manual methodology for matching topics presented in section <ref>.
Note that, with the goal of carrying out fair comparison,  for discovering  topics from a corpus of questions, we used the same technique (LDA) and configuration (values for alpha, beta, # iterations and # topics) that  used in their work.


We found that 27 topics from and 30 topics from are related to, at least, one general topic from .
For instance, 
topic t_so 35 is related to  t_genmob 8 due to both share the same label: “Social/APIs”.
Other topics were also related by using the topics' words instead of their labels.
For instance, topic t_so  21 labeled as “Inputs (Event)” was related to  t_genmob 1 labeled as  “Input” (label more general than the previous one), due to both topics  have almost the significant words (i.e., those with higher probability): `button', `event',  `click', `android' and  `keyboard'.


Response to 
There are 27 and 30  topics  discovered from and (67.5% and 75%, resp.)  that are also main topics in question about mobile application.
The remaining topics, i.e., 13 (32.5%) and 10  (25%) topics from  and , resp., are particularly related to cross-platform app development using Xamarin.




This overlap between Xamarin and general topics makes sense since:
[a)]

  * Xamarin framework produces general code for different platforms, which it could be  maintained during the app life-cycle in the same way as any general app developed using traditional tools.

  * a portion of a Xamarin application is usually written in general language (Java for Android, Objective-C or Swift for iOS) rather than in the common language (Xamarin uses C# as common language).
for example, the Evolve application for Android platform has the 90% of code written in the C# whereas the remaining 10% in general code.[<https://github.com/xamarinhq/app-evolve>].
Thus, in both cases, when writing or maintaining the portion of general code, a Xamarin developers cold have the same kinds of questions than developers of general apps.

  * the general development of mobile apps includes the development of cross-platforms mobile apps. 



 
Now, let us to analyze those main topics that are not include between the general topics, and those general main topics that are not present between the main topics discovered from and .




  
Main topics from and sites about Xamarin not previously reported

Let us start discussing the discovered topics from and not reported by .
There are 13 and 10 discovered topics from and , respectively, that could not be related to any general  topic. 
For instance, the topic t_so 19	labeled as “MVVM” is one of them.
As its label indicates,  t_so 19 represents documents that discuss about the design pattern Model–view–viewmodel (MVVM), which was introduced by Microsoft for facilitating the design of multi-tiers application under the  Microsoft's platforms .NET.
This pattern is recommend by Xamarin documentation for implementing large and complex applications on Xamarin platform.[<https://developer.xamarin.com/guides/xamarin-forms/enterprise-application-patterns/mvvm/>]
Another topic is  t_so 7 “Packages/Nuget/PCL” which refers to concepts from the Microsoft technology.
The first one is "Portable Class Library (PCL)", which is a type of project in the .NET framework to write and build portable .NET assemblies that are then referenced from, for example, cross-platform apps.
[<https://docs.microsoft.com/en-us/dotnet/standard/cross-platform/cross-platform-development-with-the-portable-class-library>]
The second concept is “Nuget”, a package manager for .NET.[<https://www.nuget.org/>]
In summary, it makes sense to find this topic only Xamarin-related questions from and : it covers questions about reuse of functionality under the .NET platform during the development of cross-platform mobile application using Xamarin framework.
Similarly, in we discovered two topics, each related to one mentioned concept:	t_xam 31 “PCL/Library”  and  t_xam “14 Nuget/Package”.

Furthermore, we also discovered topics from  and that are not neither related to any general topics nor directly related to Xamarin technology.
Two of them are topics  t_so 37 and t_xam 22 both labeled as “Testing”, which include words such as  `uitest', `testing', 'unit', `test'. 
Note that no topic from discuses about testing: the mentioned words are not presented in any topic.





  
General topics not found in the Xamarin-related questions from and 

Between the general mobile topics discovered by about general mobile development,
there are 9 out of 40 that are not present in the main topics from , whereas 10 are not related to any from .
7 of them could not be related to any topic from nether nor .
They are: 
 t_genmob  6 labelled with	“Phone/Sensors”; 
 t_genmob  12 “HTML5/Browser”; 
 t_genmob  16 “App Distribution”; 
 t_genmob 	19	“Processes/Activities”; 
 t_genmob 	20	“Data Structures”; 
 t_genmob 	24	“Data Formatting”;  and
 t_genmob 	30	“Contacts”.
 For instance, topic t_genmob  6 includes words that no discovered topic from and has: as
`time', `alarm', `voice', `speech', `incoming', `number'.







  §.§.§ 



In section <ref> we discovered topics that discuss about Xamarin that were not previously reported by as main topics of general mobile development.
Now, we focus on three of  those topics to know the main concerts and problematic asked by Xamarin developers.
For each of them, we analyze the most relevant comments, according to the methodology presented in Section <ref>.




  
MVVM (t_so 19)

The MVVM (Model-View-ViewModel) is a pattern that helps to separate the business and presentation logic of an application from its user interface (UI). 
The pattern was introduced by Microsoft for designing apps for its different platforms, including Xamarin, Windows Forms, WPF, Silverlight, and Windows Phone.[<https://msdn.microsoft.com/en-us/library/hh848246.aspx>].

The most relevant questions from   topic MVVM are related to  Mvvmcross. 
Mvvmcross is a framework built for easing the development of Xamarin frameworks that proposes, for instance, an easier way to  implement the MVVM pattern.[<https://www.mvvmcross.com/>]
The question from with highest score from topic  MVVM  (25 upvotes)  is  about asynchronous programming: 
How can I use async in an MVVMCross view model? (id:17187113)[This number corresponds to the ID of a StackOverflow post. A post with id <ID> is publicly available at https://stackoverflow.com/questions/<ID> ]. 
Between the answers, there are two that solve the problem: one (the accepted)  proposes to use the language keyword (async), the other proposes a solution that relies on the Mvvmcross framework.

Other relevant questions about Mvvmcross focus on the  communication between the pattern's components, e.g.,
Passing on variables from ViewModel to another View [..] (id:10192505),  
MvvMCross bind command with parameter [..] (id:17492742). 
Moreover, another relevant question  is  about the differences between  Mvvmcross and ReactiveUI.[<https://reactiveui.net/>] (ReactiveUI is a model-view-viewmodel framework for all .NET platforms, including Xamarin).




  
User Interface (Forms/ViewList) (t_so 11)

Xamarin.Form is an API of Xamarin framework to build native apps for iOS, Android and Windows completely in C# or in XML (using  XAML language).[<https://www.xamarin.com/forms>]
Xamarin.Forms pages represent single screens within an app, and  support  layouts, buttons, labels, lists, and other common controls.
Each page and its controls are mapped to platform-specific native user interface elements. 
Xamarin.Forms is best for developing apps that require:
 [a)]

  * little platform-specific functionality, or 

  * code sharing is more important than custom UI.




The  relevant questions from this topic  t_so 11 are about  Xamarin.Forms or its components.
For instance:
How to correctly use the Image Source property with Xamarin.Forms? (id: 30850510) is the most viewed question.
Moreover, there are relevant questions about the component ListView,  e.g., 
[..] ListView inside StackLayout: How to set height? (id: 24598261) and 
[..] untappable ListView (remove selection ripple effect)	(id: 35586243).
The highest score questions of topic t_so 11 are related to the IDE support  of XAML development, such as the code-completion (IntelliSense), e.g.:
Is it possible to use a Xaml designer or intellisense with Xamarin.Forms? (id: 24158201) (36 up votes).
Other relevant questions are also about XAML, e.g.:
[..] ListView ItemTapped/ItemSelected Command Binding on XAML (id: 24792991).




  
Library/Portability (t_so 13)

The topic Library/Portability  contains relevant questions related to the architecture of Xamarin-based cross-platform apps.
Xamarin provides three alternative  architectures that focus on  sharing code between cross-platform applications: 
[1)]

  * Shared Projects,

  * Portable Class Libraries (PCL), and

  * .NET Standard Libraries.[<https://docs.microsoft.com/fr-fr/xamarin/cross-platform/app-fundamentals/code-sharing>]


Relevant questions ask about these  architectures, specially about the second one. 
There are  questions asking about clarification of those architectures, e.g.,
What is a Portable Class Library? (id: 5238955),
Portable Class Library vs. library project (id: 28746609), 
or questions about the difference of two architectures, e.g., 
Xamarin Shared Projects vs Portable class libraries (id: 23990307).
Other relevant questions focus on problematic of using the PCL architecture, for instance: 
Unable to resolve assemblies that use Portable Class Libraries (id: 13871267), or 
Portable Class library and reflection (id: 14061291).
Finally, the another group of relevant questions from  this topic relates PCL and concurrency (threads):
Update UI thread from portable class library (id: 14427340), 
Thread.Sleep() in a Portable Class Library (id: 9251917).






 §.§ Conclusions about topic modeling from Xamarin-related questions

In this section, we have first discovered the main topics discussed on and sites.
Then, we have compared those topics with those discovered by extracted from questions about general mobile development.
Our results shows that 27 out of 40 main topics from Xamarin questions are also main topics from question related general mobile app (Android, iOS and Windows Mobile).
Moreover, we found main topics that are excursively related to Xamarin or Microsoft technologies and, consequently,  they were not previously reported by the work of <cit.>.

 


 






§ DISCUSSION





 §.§ Threats to validity




  §.§.§ Internal




  
Use of tags from posts
In section <ref> we applied a technique based on the use of tags for retrieving posts related to Xamarin technology as done by <cit.>.
There is a threat when a developer 
[a)]

  * mislabels a post, i.e., tags do not represent the real topic of the posts; or 

  * omits to label it.

Moreover, we used the titles from posts to capture Xamarin-related posts that were not labelled with Xamarin-related tags. A threat to validity is present when the title does not represent the content of the post. 
To alleviate this threat we manually analyzed a sample of the retrieved posts and  verified the concordance between the title and post's content.



  
Representation of documents
We applied the LDA algorithm for modeling topics. 
The input of LDA is a corpus of document (See Section <ref>), where each document contains information of a single post. We decided to, as done by the study we replicated, to only consider  the title of the question due to, according to them: 
[1)]

  * titles summarize and identify the main concepts being asked in the post, 

  * the body of the question adds non-relevant information rather than the main idea being asked about, and 

  * we are interested in what issues the developers are asking about and adding the answer posts would not make sense
 <cit.>.


  
Configuration of LDA
LDA needs 4 configuration arguments (alpha, beta, number of topics and number iterations).
Choosing optimal values for those arguments is a difficult task, so, to alleviate this threat, as done by <cit.>, we tried different configurations to choose, to our best judgment, the best configuration.
The selection criteria used by those works were: 
[a)]

  * inspection at the average dominant topic probabilities given by the resulting model <cit.>, and 

  * assurance that topics do not have much overlap in top terms, are not copies of each other, and are not share excessive disjoint concepts or ideas <cit.>. 

In our experiment we decided to use the same configuration that the study we replicated from .
Reusing the configuration allowed us to compare the topics discovered from Xamarin-related questions against those by from mobile-related questions.



  
Label of discovered topics
As done by the mentioned related works (e.g., <cit.>),  we manually analyzed the results produced by LDA for labeling each topic with a human readable label, based on a set of words from the topic and their probabilistic.
To the best of our knowledge, there is no tool for automatically labeling topics.
To alleviate the threat of mislabeling topics or mismatching of topics from different sources, we have carried out those tasks using a peer-reviewed process and the results are publicly available.




  §.§.§ External


One potential threat is that sources of information used for studying related to Xamarin technology are not representative. 
To mitigate that threat we selected two sources: and .
The former is one of the most popular and used site by software developers and latter is the official forum of the Xamarin technology.





 §.§ Future Work


For future work, we plan to continue exploring the two datasets of Xamarin-related questions. 
Future research direction could focus on:





  §.§.§ Combine additional sources of information

By inspecting the relevant questions of this topic, we notice that many of their accepted answers  include a link to the official Xamarin documentation web site.
For instance, the mentioned most viewed post  (id: 30850510) has an accepted answers that cites a page from the official documentation as source of its response.
That finding triggers some research questions for future work:
[a)]

  * How many posts from link to the official documentation in their questions/answers?,

  * How much do (Xamarin) developers ask questions which solution are already included in the documentation?.

Moreover, we also observe that answers on also include links to the Xamarin Forum, the official site of Xamarin.
For example, the question id 24598261 from has  an accepted answer based on a post from the Xamarin Forum (id: 66248).[<https://forums.xamarin.com/discussion/comment/66248>]
Other papers have focused on combining different sources of information (e.g., <cit.>).
However, to our knowledge, nobody has linked questions from two sites nor focused on Xamarin source of information.





  §.§.§ Study the architecture of cross-platform mobile apps

As we discussed on Section <ref>, relevant questions are about mobile apps architectures and frameworks. 
Future work can study and compare apps developed using different architectures.
For instance, a research could focus on analyzing which is the best option between the architectures 
Shared Projects and Portable class libraries  in term of, for instance, the expertise  the developers needs to develop and maintain apps with those architectures, or the ease of evolving an application according to the upgrade of the mobile platforms.
Moreover, another possible research for future work could  study the benefices and disadvantages of developing and maintaining cross-platforms apps that used this frameworks (such as Mvvmcross) w.r.t. apps developed without them i.e., using only the Xamarin framework.






 §.§ Limitations


Creation of : 
Our fetching engine is not capable of capturing all information the Xamarin forum presents to a registered user.
For instance, a registered user can “like" an existing answer. 
The Xamarin forum shows the number of like for each answer only to registered user. As our fetching engine inspects the pages to fetch as an “anonymous user" (i.e. it is not logged to the forum site) then the number of likes is not presented.
Moreover, registered user can post images in the comments. The current version of our engine is not capable of retrieving and storing them in our database. 








 


§ CONCLUSION




Cross-compiler mobile development frameworks allow mobile developers to create native cross-platform mobile applications with the promise of simplifying the development and maintenance phases by reusing code source across the different platforms.
To study and characterize  
the development and maintenance of cross-platforms apps using cross-compiler frameworks,
in this paper  we present two datasets with questions and answers (Q&A): one with from the official , the other with Xamarin-related from .
We then use them in a replication study of <cit.> for discovering the main discussion topics from questions related to Xamarin technology.
We compared the discovered topics against those main topics related to  mobile development discovered by <cit.>. 
We found that a portion of the topics from the Xamarin-related questions were not previously identified when discussing about general mobile applications.
To promote more studies about Xamarin and cross-platform mobile frameworks, the two Xamarin-related datasets are publicly available.





For future work, we plan to continue exploring the two datasets of Xamarin-related questions. 
We also plan to study the development process of cross-platform apps using other cross-compiler frameworks such as React Native.
To promote more studies about Xamarin and cross-platform mobile frameworks, our datasets are publicly available.



 

plain



