arXiv:1712.09569v2 [cs.SE] 9 Jul 2018
Two Datasets of Questions and Answers for Studying the
Development of Cross-platform Mobile Applications
using Xamarin Framework
Matias Martinez
University of Valenciennes, France
Abstract
Context: A cross-platform mobile application is an application that runs on
multiple mobile platforms (Android, iO S). Several frameworks, have been pro-
posed 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 Mi-
crosoft, 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 a bout the advantages and disadvan-
tages of the use of those frameworks during the development and maintenance
phases of mo bile applications.
Objective: The objective of this paper is twofold. Firstly, to present two
datasets of questions and a nswers (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 devel-
opment.
Method: We c reated the two datasets by mining two Q&A sites: Xamarin
Forum and Stack Overflow. Then, for discovering the main topics of the ques-
tions from both datasets, we replicated a study that applies Latent Dirichlet
Allo c ation (LDA). Finally, we compared the disc overed topics with those topics
about general mobile development reported by a previous study.
Results: Our datasets have 85,908 questio ns mined from the Xamarin Fo-
rum and 44,434 from Stack Overflow. Between the main topics discovered from
those questions, we found that some of them are exclusively related to Xa marin
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.
Corresponding author
Email address: matias.martinez@univ-valenciennes.fr (Matias Martinez)
Preprint submitted to Elsevier July 10, 2018
Keywords: Mobile Development, Cro ss-platform mobile applications,
Questions a nd Answers, Topic modeling, Xamarin
1. Introduction
Nowadays, there are billions of smartphone devices around the world. Smart-
phones are mo bile 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 Ap-
ple), with the 99.7% of the market share as of the firs t quarter of 2017 [19].
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 tr aditional approach for
developing this k ind 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 increa ses the cost of development
and maintenance. For example, a company needs developers with different
competence for developing an app fo r two platforms, resulting in two native
apps. Moreover, as studied by previous works, those native apps co uld have
different quality. For example, Hu et al. [18] found that 68% of the studied
cross-platform apps have different start ranking across the App Store and Google
Play stores. Furthermore, Ali et a l. [2] analyzed 80,000 c ross-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., [29]) and industry companies (e.g, Mi-
crosoft, Facebook Inc.) have both focus e d on proposing development frame-
works with the goal of making easier the development and ma intenance of
cross-platforms mobile apps. Earliest frameworks focuse d on producing hy-
brid mobile applications: apps built coding both non-native (e.g., HTML for
Phonegap/Cordova
1
) and native code. The non-native code is shared acro ss 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 ([20, 15]), companies such as Facebook found the resulting appli-
cations do not have the same user experience than purely native applications
[24].
Another family of fr ameworks 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. Xa-
1
https://cordova.apache.org
2
marin
2
and React-Native
3
are two of them, which consider C# and JavaScript
as non-native lang uages, res pectively. Using cross-c ompiler frameworks for de-
veloping cr oss-platform mobile applications, developers can reduce both devel-
opment and maintenance costs by sharing code between the different platform
implementations and, at the same time, they obtain pure native mobile appli-
cations.
However, beyond the advantages of sharing code, we wonder whether devel-
oping cross-platforms apps using c ross-compiler frameworks has any drawback
with respect to the na tive development during the life-c ycle of a mobile ap-
plication. To our knowledge, as also mentioned by [26], no pr evious work has
studied that yet. Our long ter m goal is to study the difference s between the
development process that use s cross-compiler framework and the process that
uses traditional development to olkits.
To encourage the study of cross-platforms mobile a pplication, this paper
presents two datasets of questions and ans wers (Q &A) related to one cross-
platform development framework: Xamarin from Microsoft.
The two datasets are confor med by questions and answers extra c ted from
Stack O verflow and Xamarin Forum, respec tively. The la tter is a Q&A site
exclusively dedicated to Xamarin technology.
4
The main reasons that moti-
vate us to s tudy Xamarin are: a) availability of documentation and guidelines
5
;
b) 5+ books edited during last years (e.g., [16, 35, 28]); c) development toolkits
available
6
; d) availability of tes ting environment for cross-platform apps called
Xamarin Test Cloud.
7
, and e) Xamarin is one of the top 10 most popular de-
velopment fr ameworks and libraries according to the Stack Overflow Survey
2018.
8
Previous works have analyzed mobile-related Q&A from Stack Overflow with
different purposes, for instance, for discovering main topics related to mobile de-
velopment ([23, 34, 7]). To show the utility of the two Xamarin-related Q&A
dataset, in this pap er we replicate one of those studies, i.e., Rosen and Shihab
[34], focusing exclusively on the Xamarin technology, instea d of focusing on gen-
eral mobile development as done by Rose n and Shihab. Our study discovers the
main discussion topics present in the ques tions 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 dis-
covered with those topics related to general mobile development discovered by
Rosen and Shihab.
Our research is guided by the following research questions:
2
https://www.xamarin.com
3
https://facebook.github.io/react-native
4
https://forums.xamarin.com/
5
https://developer.xamarin.com/guides/
6
https://docs.microsoft.com/visualstudio/
7
https://www.xamarin.com/test-cloud
8
https://insights.stackoverflow.com/survey/2018/#technology-frameworks-libraries-and-tools
3
RQ 1: What is the number of a) Xamarin-re lated questions, b) a nswers
and accepted, c) views on Stack O verflow and Xamarin Forum?
RQ 2: What are the main topics dis c ussed about Xamarin in Q&A sites?
RQ 3: How many main topics from Stack Overflow and Xamarin Forum
are also topics related to general mobile development discovered by Rosen
and Shihab?
RQ 4: What are the most relevant questions fro m Xamarin-related topics?
The contributions of this pap e r are:
1. A dataset of Q&A related to Xamarin technology filtered from Stack Over-
flow.
2. A dataset of Q&A extracted from Xamarin forum.
3. An analy sis of the two datasets (e.g., number of questions, answers, views).
4. Discussion topics discovered from questions related to Xamar in technol-
ogy.
5. An study about the relation between topics fr om Stack Overflow and Xam-
arin Forum and those topics discuss e d in questions related to development
of native mobile applications from [34].
6. The study of the re levant questions from 3 Xamarin-related topics.
The paper is organized as follows. Section 2 discusses the rela ted work.
Section 3 presents two datasets of Q&As extracted from Stack Overflow and
Xamarin Forum. Section 4 analyzes both datasets in terms of number questions,
answers accepted, and views. Section 5 replicates the study of Rosen and Shihab
[34] for discovering topics from Stack Overflow and Xamarin Forum. Section 6
presents the discussion. Section 7 concludes the paper.
All data discussed in this paper , including the two Q&A datasets, is publicly
available in our web appendix: http://anonymous.4open.science/repository/3ac646ee-03f9-40d0-a7fc-d0a6124af979/
2. Related Works
During the recent years several works have studied Q&A from the site Stack
Overflow [3 , 6 , 30, 31]. Some of them focused on questions abou t Android plat-
form [22, 43, 36, 7, 8, 1 , 40, 39]. For example, Linares-Vasquez et al. [22] studied
questions and activities in Stack Overflow when changes on Android APIs occur,
finding that dele ting public methods from APIs is a trigger for questions that are
discussed more. Wang et al. [43] analyze d posts from Stack Overflow 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. [36] studied questions about Android permission
4
use on Stack Overflow. Other works have focusing on mobile-related tags from
Stack Overflow: Beyer et al. [7] investigated 450 Android-related posts from
Stack Overflow to get insights into the issues of Android app development. To
our knowledge, no work has studied Stack Overflow questions and problematic
related to neither c ross-complied frameworks nor Xama rin technology.
In this paper, we analyze Q&A related to Xamarin technology, and then
we apply applied a topic modeling techniques called Latent Dirichlet Allo c ation
(LDA) to obta in the main topics from those questions. As reported by Chen et
al. [10] and Sun et al. [37] several works have already a pplied topic modeling
techniques such as LDA. For instance, Barua et al. [5] analyzed Stack Overflow
data to automa tically discover the main topics present in developer discussions.
Yang et al. [44] focused on discovering topics related to security by a nalyz-
ing sec urity-r e lated posts. Bajaj et al. [4] discovered topics from discuss ions
about web developers and focused on how preva lent ar e web-related topics in
discussions related to mobile web development. Other works have focused on
topic mo deling for native mobile technologies. For example, Linares-Vasquez et
al. [23] used LDA to extract hot-topics from mobile-development related ques-
tions. Their findings suggest that most of the questions include topics rela ted to
general questions and compatibility issues, whereas the most s pecific topics are
present in a reduced set of questions. Rosen and Shihab [34] applied LDA on
mobile-related Stack Overflow posts to determine what mobile developers are
asking. Acros s all native platforms studied, they found that ques tions related to
app distribution, user interface, and input are among the most popular. Pinto
et al. [33] have analyzed questions about Swift, programming languag e (suc-
cessor 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 to olkit (IDE, SDK). In our work, we focus on to pics related to Xamarin
development framework.
Other works have study both Stack Overflow and other sources of infor-
mation. For example, Wang et al. [42] studied the mutual knowledge sharing
between Android Issue Tracker and Stack Overflow. Their goal is to bridge
the two communities by linking related issues to posts automatically. Ye et
al. [45] s tudied how users share URLs in Stack Overflow for understanding
how knowledge diffusion process takes place on that site. They found that the
31% of the shared URLs on Stack Overflow is to reference information that can
help to solve a complex problem. Other works focus on analyzing developer
forums. For example, Venkatesh et al. [41] mined both develop er forums and
Stack Overflow 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 Stack Overflow) in a same dataset, which is later used for ex-
tracting topics using LDA. Lee et al. [21] studied the similarity in developer
interests within and across GitHub and Sta ck Overflow. They found that the
39% of the GitHub repositories and Stack Overflow questions that a developer
had participated fall in the common interests. Zagalsky et al. [46] focused on R
language by analyzing questions and answers from two channels: the R-tag in
5
Stack Overflow and the R-users mailing list. They found that knowledge is con-
structed in each channel in a different manner: on Stack Overflow participants
contribute knowledge independently o f each other, whereas R-user mailing list
are more likely to build on other answers. In this work, we cre ate two datasets
of Q&A related to Xamarin technology, that could be used for replicating some
of these works (e.g., [4 6]).
Other works focus on classifying, compar ing and evaluating cross-platform
mobile application development tools to build hybrid mobile and native apps
([15, 14, 12, 27, 13]). For example, Ciman et al. [11] 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. I n that
work, Xamarin fra mework was not evaluated. To the best of our knowledge,
no work has studied c ross-platforms mobile applica tions created with Xamarin
framework. In this work we study questions from Q&A to understand the main
problematic faced by developers when they develop cross-platforms mobile apps
using Xamarin framework.
3. 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 3.1 we present the first dataset that
is co mposed of posts extracted from the site Stack Overflow.
9
In section 3.2
we present the second dataset, named XamForumDB, is composed of posts
extracted from the official forum of Xamarin.
10
Finally, in section 4 we briefly
describe the data from both datasets. In section 5 .2 we use both datasets for
extracting the main discussion topics related with Xa marin technology.
3.1. Dataset of Q&A from Stack Overflow
3.1.1. Data Description
We used the data dump of Stack O verflow provided by Stack Exchange,
Inc.
11
The data is organized on 8 XML files, each one r e presents one data entity:
Posts, Users, Comments, Tags, Votes, PostLinks, PostHistory, and Badges.
12
For facilitating the manipulation o f the data, we migrated it to a relational
dataset.
13
A post from the Stack Overflow 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
9
https://stackoverflow.com/
10
https://forums.xamarin.com/
11
https://archive.org/details/stackexchange
12
https://ia800500.us.archive.org/22/items/stackexchange/readme.txt
13
https://gist.github.com/gousiosg/7600626
6
Table 1: Tags used for detecting questions related to Xamarin. The technique for filtering
tags is described in [34]. The table shows the total occurrence of the tag in all posts, in posts
tagged with 1+ tag from the final set of tags, and two measures TRT and TST used by the
technique for filtering tags. The table shows the ten tags with hi ghest number of posts.
Tag Name
Occurrences
TRT TST
All posts Xamarin posts
xamarin 25029 25029 100% 100%
xamarin.ios 10640 10640 100% 42,51%
xamarin.android 9590 9590 100% 38,32%
xamarin.form s 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%
... ... ... ... ...
moderator’, ‘offensive’, etc. The Stack Overflow data set contains 14,458,875
questions and 22,668,556 answers.
14
3.1.2. Methodology to filter Xamarin post s from Stack Overflow
The first challenge is to filter posts related to Xamarin technology among
all posts present in the Stack Overflow 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 Rosen and Shihab
[34], who filtered posts r elated to mobile technologies. Their technique consists
of three steps. The firs t step filters posts using a initial set of tags (in that work
the author used mobile related tags such as ‘Android’, ‘iOS’). The seco nd step
analyzes the most re presentative and significant tags from the posts retr ieved
after applying the first step. Finally, the last step filters posts from Stack
Overflow using the most representative tags for the mobile technology (those
tags discovered in the previous step).
We applied the technique as follows. In the firs t step we defined the initial
set of tags: as we aim at filtering Xamarin-r elated posts, our initial set was
“%xamarin%”, where % corresponds to zero or more chara c ters. In total, 28
tags include the word ‘xamarin’ such as ‘xamarin.iso’, and formed the initial set
of tags. We then retrieved 39,855 questions tagged w ith at least one tag from
the initial set. T hose 39,855 questions have, in total, 4,143 ta gs. Note that,
those retr ieved 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,
14
Data dump released the August 31, 2017
7
the technique by Rosen and Shihab presents two measures, TRT (tag relevance
threshold) and TST (tag significance threshold) [34], that help us to: a) obtain
those tags representative to Xamarin technology, and b) discard those tags that
are related to Xamarin technology but, at the s ame time, they are to o general.
For instance, a significant por tion of Xamarin posts are tagged with "Android".
However, most of the q uestions 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 fro m the initial set and the total number of pos ts 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 represen-
tative (TRT) and 0.1% fo r significance (TST). In total, 38 tags conforms the
final set of tags related to Xamarin technology. Table 1 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 pos ts 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, fo r the third step of the technique, we retr ie ved 43 ,988 posts related
to Xamarin technology: 39,855 of them ta gged with the initial tags (i.e., include
the keyword "Xamarin" ) and 4,133 posts tagge d with at least one tag from
remaining final set of ta gs.
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 fr om the final set of
tags. We define a keyword for each tag included in final set of tags presented
befo re.
Using this keyword-based strategy, we retrieved 446 new posts related to
Xamarin technology. For instance, one of them is the post "Xama rin Android
Save sms" (post id 2940542 0)
15
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 Stack Overflow. Using the two de-
scribed techniques, we retr ie ved 44,434 questions from the Stack Overflow dump:
43,988 were found using the tag-based strategy, whereas 446 were found using
the keywords-based strategy.
15
https://stackoverflow.com/questions/29405420/xamarin-android-save-sms
8
3.2. XamForumDB: a dataset with questions from Xamarin Forum
3.2.1. Describing Forum Xamarin
The Xamarin Forum 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 frame-
work (a.k.a. Xamarin Team) and users (i.e., the develop ers of mobile apps that
use Xamarin). Fo r instance, new versions of the framework or of particular
components are announced in the forum.
16
All posts are publicly available.
However, for creating a new post, user s must be registered into the site, which
is free .
Forums. The Xamarin Forum site is composed o f s e ven general forums: Com-
munity, 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 Xamar in Product focuses on dis-
cussions about products related to the Xamarin technology s uch as TestCloud, a
cloud-based platform for testing mobile apps built using Xamarin. Each of those
forums has one or more ‘sub-forums’. For insta nce , the mentioned Platform fo-
rum has 5 categories: Android, iOS, Cr oss-Platform, Mac, and Xamarin.Forms.
The forums are created by the forum administrato rs, w hich means that users
are not able to define new ones.
We identify two types of forums: 1) thos e related to technological topics
(platforms, libraries, too ls, IDEs, etc.) and 2) those related to non- technological
topics related to Xama rin (events, conferences, jobs, etc.).
The main page of each fo rum shows a paged-list of posts and two buttons,
one for creating a ques tion 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 colore d boxes loc ated near the title
and indicate, for instance, if a question was answered o r if the answered was
accepted by the user who wro te the question.
Posts. A user can create a post on a given categ ory. 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 se lect a list of tag s associated
the new post. However, once a post is created, the forum does not show the list
of tags associated to a pos t.
17
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".
16
https://forums.xamarin.com/discussion/85747/xamarin-forms-feature-roadmap#latest
17
Last visit: June, 2018
9
Users. The Xamarin Forum 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 frame-
work.
3.2.2. Dataset construction
The Xamarin Forum site does not have an API to programmatically access
and retrieve the data, such as those provided by Stackoverflow
18
and GitHub
19
.
For this reason, we developed a web crawler for retrieving and stor ing all pages
from Xamarin Forum. Our engine has main two phases: 1) Page fetching and
2) 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 Xamarin Forum has two kinds of web pages. A page
from the first kind corresponds to a single post. It contains the pos t’s title,
question (or discussion topic), author data (names, location, roles ), posting
date and a list of comments. Each comment has the name o f the user tha t
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
20
, ordere d by decreasing
creation date. The list shows for each post its title, the numbers of views (i.e.,
number of visits the po st has received), numbe rs of comments done, and zero
or mo re labels that indicates if the post is a question or announcement, if it has
an accepted answer, etc.
Extracting data from pages. In the se c ond 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
21
for
parsing the Xamarin web pages in HTML. The structured data is then stored
in a MySQL database.
3.2.3. Data schema
The store all data extracted from the Xamarin forum in a relational database.
We now descr ibe briefly the main entities from the database schema. T he first
entity is Post, which stores all posts written in the Xamarin forums. Each
post belongs to one Forum and has zero or mor e Comments. Note that the post
entity stores both questions and discuss ions. 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
18
https://api.stackexchange.com/
19
https://developer.github.com/v3/
20
In those m ain pages, those posts are called ‘Threads’
21
https://www.crummy.com/software/BeautifulSoup/bs4/doc/
10
has different Roles. A register e d 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 Xama rin University.
22
3.3. Perspectives of Xamarin Forum and Xamarin-related posts from Stack Over-
flow
In our o pinion, both datasets can be used by the research community for
understanding the main concerns about developing cro ss-platform mobile appli-
cations using Xamarin framework. In this paper we use them to discover the
main discus sed topics from their questions.
4. Analyzing datasets with Q&A 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 3 with the goal of
answering the first research question: What is the number of a) Xamarin-related
questions, b) answers and accepted, c) views on Stack Overflow and Xamarin
Forum?.
4.1. Number of questions
The Xa mForumDB has 91,838 questions.
23
The first dates from January, 29
2013, and the last one from September, 6 2017 . There are 85,908 (93.5%) ques-
tions related to technological forums, a nd 5,930 (6.5%) related non-technological
forums such as Events has 1,079 questions (1.17%), Job Lis tings 465 (0.51%).
In this work, we are interested on those technological questions, discarding the
non-technological for fur ther analyses.
In Stack Overflow we selected 44,434 questions discussing a bout Xamarin
technology. They represent around the 0.12% of all questions from Stack Over-
flow, which has 37,215,528 ques tions. Compare d to other cross-platform mobile
app development frameworks, the number of questions has the s ame o rder of
magnitude. For instance, 2 1,515 questions were tagged w ith "%react%native%"
(framework for generating native mobile apps using JavaScr ipt language), 60,790
questions were tagged with "%cordova%" and 8,194 "%phonegap%" (Apache
Cordova/Phonegap, is a framework for creating hybrid mobile apps using HTML
and JavaScript).
24
22
https://www.xamarin.com/university
23
In this paper, we use the terms ‘question’, ‘post’, and ‘thread’ interchangeably.
24
Data corresponding to dump from August 31, 2017.
11
4.2. Number of answers and acceptance
On Xamarin Forum, the 72.3% (62,114 o ut of 85,908) of the technological
questions have at least one answer. In average, each ques tion has 2.99 answers.
The remaining 29.7% (23,794) has not been answered. Moreover, the 15.2%
(13,025 out of 85,908) of the questions have, at least, accepted answer. The
proportion of answered questions is similar in Stack Overflow and Xamarin
Forum: 79% vs 72.3%. However, the propo rtion of accepted answers on Stack
Overflow is 3 times as larger as that one from Xamarin forum: 46.1% vs 15.2%.
On Stack Overflow, the 79% (35,10 0 out of 44,434 ) has at least one answer.
In average, each question has 1.13 answers. The 46.1 % (20,495 out of 44,434)
of Xamarin questions has one accepted answer, whereas the 33.9% (14,605) ha s
at least one answer but any on them was accepted. The remaining 20% (9,334)
has not been ans wered.
4.3. Number of views per question
Xamarin-related questions from Stack Overflow were viewed 36,523,008 times,
821.9 views per question as average, whereas those from Xamarin Forum were
viewed 35,032 ,568, that is, 407.8 views per question as average. In conclusion,
questions from Xamarin Forum have received almost the same number of views
than Xamarin-related questions fro m Stack Overflow (>35 millions). However,
Stack Overflow questions are viewed, in avg., two times more that those from
Xamarin forum.
Respo nse to RQ 1: What is the number of a) Xamarin-rel ated
questions, b) answers and accepted, c) views on Stack Overflow
and Xamarin Forum? a) Xamarin forums has a 85,908 questions re-
lated to Xamarin and Stack Overflow ha s 44,434. b) The proportion of
answered questions is similar in Stack Overflow and Xamarin Forum (79%
vs 72.3%), however, the propo rtion of accepted answers on Stack Overflow
is 3 times as larger (46.1% vs 15 .2%); c) Questions of both sites have
received almost the same number of views (>35 millions), however, thos e
from Sta ck Overflow are viewed, in avg., two times more.
5. Replication study over the two datasets: topic modeling
In this section, we present an study that replicates the experiment replicates
the study of Rosen and Shihab [34]. T hat work focuses at discovering topics
from mobile development (i.e., not related to neither a particular platform nor
framework) from Stack Overflow. On the contrary, our study aims to discover
topics from Xamarin-related questions from Stack Overflow and Xamarin Fo-
rum. In addition, our replication study compares those Xamarin-related topics
with those found by Rosen and Shiha b. This section is organized as follows: In
Section 5.1 we first introduce the methodology to discover topics (based on that
one from Rose n and Shiha b), and in Section 5.2 we then present the results.
In the rest of this paper, w hen the mention Stack Overflow questions we refer
12
to the dataset of questio ns from Stack Overflow related to Xamarin technology
that we built in section 3.1, whereas Xamarin Forum questions are those from
the XamForumDB built in sectio n 3.2.
5.1. 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 5.1.1 we prese nt a methodology for dis-
covering the discussion topics from questions from Stack Overflow and Xamarin
Forum (i.e., from the datasets we presented in sections 3.1 and 3.2). The re sults
will us allow to respond the second research question. Then, in section 5.1.2
we present a methodology for relating topics discovered from different sources.
We use it to respond the third research question. Fina lly, in section 5.1.3 we
introduce a methodology for retrieving re le vant questions from a to pic and we
use it to respond the forth r e search question.
5.1.1. 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 Stack Overflow questions, another from Xamarin Forum
questions.
The methodology consists of the following steps.
Retrieve posts t itles. For each question from a datase t (Xama rin Forum or Stack
Overflow), we created a document that includes all words contained in the ques-
tion’s title as done by Rosen and Shihab [34]. In case of Xamarin Forum, we
only considered the technological posts (i.e., the 93.5% of all posts), a s discussed
in Section 3.1.2.
Docu ment processing. We pre-processed all documents by first removing stop
words (e.g., "at", "the") and then applying a customized word stemming pro-
cessing. During the setup of our experiment, we noted that traditional stem-
ming (as applied by, for example, [23]) alternated domain-specific words such as
“iOS" or “Mono", and, by c onsequence, the step produces a loss of informatio n.
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 3.1.2. The list, called
technology-specific words list, is available in our appendix. Words from a post
title tha t belong to that list are not stemmed a nd they are included in a docu-
ment 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 [32] for
transforming all words in sing ular.
13
Discovering topics. We applied Latent Dirichlet allocation (LDA) algorithm as
done by Blei et al. [9] for discovering topics from a set of documents, where
each document corresponds to a pre-processe d question’s title. Several works
have used LDA for discovering main topics in the doma in of, for example, web
development [4], software maintenance [38], and mobile development ([34, 23]).
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 ([23] and [34], respectively). We used an
implementation of LDA called Mallet [25].
One o f the challenge of LDA to chose a configuration (i.e., values for the input
parameters) that produce meaningful topics. There are four main para meters
to configure: a) alpha, b) beta, c) number of topics to generate, and d) number
of iterations. In this experiment, we used a similar config uration proposed by
Rosen and Shihab [34], one of the closest related work, w hich studied what
mobile developers are asking about on Stack Overflow. 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 Rosen
and Shihab allows us to compared the topics we discovered from Xamarin-related
questions, with those fr om na tive mobile apps discovered by them [3 4] (sec tion
5.2.2).
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 Sta ck Overflow 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 la bel. In this work we decided
to reuse, when is possible, labels related to mo bile technology defined by Rosen
and Shihab [34], which discovered and labeled topics related to mobile devel-
opment. Some of the labe ls from this work are “Input”, “Tools ”,“Application
Store”, “ Parsing”, “Map and Location”. In case that none of their lab e ls describe
correctly a topic that we discovered, we defined a new lab e l by taking into ac-
count the words from the topic and their probabilistic. In some cases we used
the same labe l for two rela ted topics a nd included a sub-category in parenthesis
for remarking the differences between them.
5.1.2. Methodology for relating topics from different data sources
In our experiment, we need to find whether a topic from a dataset (e.g.,
Xamarin Forum) is also a topic fro m another da taset (e.g., Stack Overflow or
that one from Rosen and Shihab).
We related two to pics from different datasets if they have: a) similarity on
their topic labels; or b) similar ity on the most significant works that conform
the topic. The sig nificant of a word is the probability g iven 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
14
“Video memory”. We related both topics because they sha res significant words
like “memory” and “lea k”. The lists of topics (words and their probabilities) and
the related topics of each a re available in our appendix.
5.1.3. 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 b) highest score, i.e., number of
up votes (only for Stack Overflow). Note that all questions we c onsider 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 lea st 10,000 views and 10 up votes as score.
5.2. Results:
5.2.1. RQ 2: What are the main t opics discussed about Xamarin in Q&A sites?
Table 2 shows the topics from Stack Overflow and Xa marin Forum questions
discovered using the methodology described in section 5.1.1. The left-size dis-
plays the Stack O verflow topics and the right-side displays the Xama rin topics.
The column Id corres ponds to the topic identifier assigned by Mallet; the col-
umn Label corresponds to the lab e l manually assigned by us using the method
presented in section 5.1.1. The topics are sor ted by decreasing NDDT. As ex-
plained by Linare s-Vasquez et al. [23] NDDT counts for each topic t the number
of documents that has as t as dominant topic. In our appendix we pr esented,
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 da tasets.
Main Discussion Topics Discovered. Let us first focus on Stack Overflow: 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 "Lis t (Forms)";
t
so
28 labelled with "User Interface (Tables)"; and t
so
23 " Use r Interface (Lay-
outs)". 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 Xamarin Forum, the to p-5 topics from Xamarin Forum 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 labe lled with "Lists (Forms)",
and t
xam
3 la belled 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 tha t the topics dis-
cussed in the Q&A are diverse. For instance, those cover topics such as: re-
sources and files (t
so
6 and t
so
1), web services (t
so
3 and t
xam
37), langua ge
questions (t
so
9 and t
xam
33), databases (t
so
24 a nd topic
xam
30), notifications
15
Table 2: Main Topics discovered from Stack Overflow (Left) and Xamarin (right).
Stack Overflow Xamarin
Id Label Id Label
11,32 List (Forms) 7,10 View Controllers/Navigations
28 User Interface (Table) 4,8 Lists (Form s)
23 User Interface (Layout) 3 Forms (WebView)
22 Emulator/Device/Simulation 1 Resources/File
3 Web Services 5 Android (Activity)
5 Forms (XAML) 17 User Interface (Style)
1 Monodevelop/.net framework 11 Cross-Platform
30 View Controllers/Navigations 2 IDE/Licence
19 MVVM 19 Forms (XAML)
4 Library/Native 6 Map & Location
10 HTTP Request 28 IDE (Visual Studio)
7 Packages/Nuget/PCL 21 Social/APIs
21 Inputs (Event) 32 IDE (Simulator- for-Mac)
20 Android (Activity) 15 Application Store
39 User Interface (Style) 35 User Interface (Layout)
13 Library/Portability 18 Notifications
24 Databases 34 Emulator/Device/Simulation
8 Graphics/Memory 20 Library/Native
17 IDE 25 Inputs (Te xt)
9 Language Questions 26 Media/Images
18 Android (Debug/Device) 9 Error (Unified/Insight)
2 Excepti on/Error 12 Android (Version)
12 Phone Orient./Media-images 30 Databases
25 Error (Code/Compilation) 31 PCL/Library
6 Resources/File 14 Nuget/Package
29 Monodevelop 37 Web Services
35 Social/APIs 24 Inputs (Events)
27 File Operations 16 Video/Memory
26 Media/Images 13 Releases
16 Notifications 40 User Interface (Table)
15 User Interf.(Forms/WebView) 38 Connectivity
14 Media/Stre aming /Video 22 Testing
33 Lo cation 33 Language Questions (OOP)
31 Input (Text) 36 Phone Orientation/Media-images
34 Threading 27 Questions (Forms, Samp les)
36 Error Assembly 23 Excepti on
40 Binding/library 39 ErrorAssembly
38 W indows Platform 29 Error (Code/Compilation)
37 Testing
(t
so
16 and t
xam
18), packages (t
so
7 a nd t
xam
31), architectural (t
so
19, t
xam
19), social (t
so
35 and t
xam
21), ma ps and locatio ns (t
so
33 and t
xam
6), IDEs
(t
so
17 and t
xam
28).
Common Main Topics Stack Overflow and Xamarin Forum Q&A sites. We
observe that Xamarin Forum and Stack Overflow share 33 out of 40 (82.5%)
of the discovered topics. For instance, there are questions that discuss about
“Notifications”: in Stack Overflow those questio ns have as dominant topic t
so
16
and thos e from Xamarin Forum has as dominant topic t
xam
18. Seven topics
from Xamarin and other 7 from Stack Overflow were not related to any topic.
Main topics found from only one Q& A site. In bo th Stack Overflow and Xa-
marin Forum, there are 7 discovered main topics (12.5%) that we could not
manually related to any topic of the other Q&A site. For instance, we discov-
ered that one of the main to pic from Stack Overflow, t
so
34, is about “Thread-
16
ing”. However, we could not find a ny topic between those from Xama rin that
discusses about threading. On the contrary, we discovered from the Xamarin
Forum site a topic (t
xam
15) which discusses about Application Store , but none
of the main topics from Stack Overflow is related to it. The lists of unrelated
topics are available in our appendix.
Respo nse to RQ 2: What are the main topics discussed about
Xamarin in Q&A sites? The top main topics discovered from Stack
Overflow and Xamarin forum discuss a bout User interfaces: Tables, Lay-
outs, Controllers, Forms. The 82.5% of the discovered main topics are
present in both Stack Overflow and Xamarin Forum sites.
5.2.2. RQ 3: How many main topics from Stack Overflow and Xamarin Forum
are also topics related to general mobile development discovered by Rosen
and Shihab?
As in this paper we have re plicated the study of Rosen and Shihab (which
fo c uses on general mobile development) over a Xamarin-related Q&A 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 Xamarin Forum and
Stack Overflow that are: a) general, i.e., related to mobile but not particularly to
Xamarin technology, and b) closely r e lated to the development of c ross-platform
mobile applications using Xamarin.
Comparing topics from different Q&A datasets. We compa red the topics previ-
ously discovered in section 5.2.1 with those related to mobile application devel-
opment presented by Rosen and Shihab [34]. As the authors a nalyzed questions
about three mo bile platforms (Android, iOS, and Windows Phone), we denom-
inated their topics as ‘general’, and we reference each as t
genmob
N, where N is
the id of the topic.
25
For comparing topics, we used the same manual method-
ology for matching topics presented in section 5.1.2. Note that, with the goal of
carrying out fa ir 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 Rosen and Shihab used in their work.
We found that 27 topics from Stack Overflow and 30 topics from Xamarin
Forum are re lated to, at least, one general topic from Rosen and Shihab. For
instance, topic t
so
35 is related to t
genmob
8 due to both share the same la bel:
“Social/APIs”. Other topics were also related by using the topics’ words instead
of their labe ls. Fo r instance, topic t
so
21 labeled as “Inputs (Event)” was related
to t
genmob
1 labele d 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’.
25
As the topics from [34] do not include any ‘id’, we consider that the ids of them correspond
to the row numbers of the table that presents the topics.
17
Respo nse to RQ 3: How many main to pics from Stack Overflow
and Xamarin Forum are also topics related to general mobile de-
velopment discovered by Rosen and Shihab? There are 27 and 30
topics discovered fr om Stack Overflow and Xamarin Forum (67.5% and
75%, resp.) that are also main topics in q uestion about mobile application.
The remaining topics, i.e., 13 (32.5%) and 10 (25%) topics from Stack Over-
flow and Xamarin Forum, resp., are particularly related to cross-platform
app development using Xamarin.
This overlap between Xamarin and general topics makes sense since: a) Xa-
marin framework produces general c ode for different platforms, which it could
be maintained during the app life-cycle in the same way as any ge neral app de-
veloped using traditional tools. b) a portion of a Xamarin application is usually
written in general language (Java for Android, Objective-C o r Swift for iOS)
rather than in the common language (Xamarin uses C# as common language).
for ex ample, the Evolve application for Android platform has the 90% of code
written in the C# whereas the remaining 10% in ge neral code.
26
. Thus, in
both cases, when writing or maintaining the portion of general code, a Xama rin
developers cold have the same kinds of questions than developers of general
apps. c) 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 betwe e n the
general topics, and those general main to pics that are not present between the
main topics discovered from Stack Overflow and Xamarin Forum.
Main topics from Stack Overflow and Xamarin Forum sites about Xamarin not
previously reported. Let us start discussing the discovered topics from Stack
Overflow and Xamarin Forum not reported by Rosen and Shihab. There are 13
and 10 discovered topics from Stack Overflow and Xama rin Forum, respe c tively,
that could not be related to any general topic. For instance, the to pic t
so
19
labeled as “MVVM” is one of them. As its label indicates, t
so
19 represents doc-
uments that discuss about the design pattern Model–view–viewmodel (MVVM),
which was introduced by Microsoft for facilitating the design of multi-tiers ap-
plication under the Microsoft’s platfor ms .NET. This pattern is recommend
by Xa marin documentation for implementing large a nd complex applications
on Xamarin platform.
27
Another topic is t
so
7 Packages/Nuget/PCL” which
refers to concepts from the Microsoft technology. The firs t 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 fr om, for example,
cross-platform apps.
28
The second concept is “Nuget”, a package manager for
26
https://github.com/xamarinhq/app-evolve
27
https://developer.xamarin.com/guides/xamarin-forms/enterprise-application-patterns/mvvm/
28
https://docs.microsoft.com/en-us/dotnet/standard/cross-platform/cross-platform-development-with-the-portable-class-library
18
.NET.
29
In summary, it makes sense to find this topic only Xamarin-related
questions from Stack Overflow and Xamarin Forum: it covers questions about
reuse of functionality under the .NET platform during the development of cross-
platform mobile application using Xamarin framework. Similarly, in Xamarin
Forum we discovered two topics, each related to one mentioned concept: t
xam
31 “PCL/ L ibrary” and t
xam
“14 Nuget/Package”.
Furthermore, we also discovered topics from Stack Overflow and Xamarin
Forum that are not neither related to any general topics nor directly r elated to
Xamarin technology. Two of them are to pics 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 Rosen and Shihab discuses about tes ting : the mentioned words
are not presented in any topic.
General topics not found in the Xamarin-related questions from Stack Overflow
and Xamarin Forum. Between the general mobile topics discovered by Rosen
and Shihab about g e neral mobile development, there are 9 out of 40 that are
not present in the main topics from Stack Overflow, whereas 10 are not related
to any from Xa marin Forum. 7 of them could not be related to any topic from
nether Stack Overflow nor Xa marin Forum. They a re: 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 Stack Overflow and Xamarin Forum ha s:
as ‘time’, ‘alarm’, ‘voice’, ‘speech’, ‘incoming’, ‘number’.
5.2.3. RQ 4: What are the most relevant quest ions from Xamarin-related top-
ics?
In section 5.2.2 we discovered topics that discuss abo ut Xamarin that were
not previously rep orted by Rosen and Shihab as main topics of general mobile
development. Now, we focus on three of those topics to know the ma in concerts
and pr oblematic asked by Xamarin developers. For each of them, we analyze
the mo st relevant comments, according to the methodology presented in Section
5.1.3.
MVVM (t
so
19). The MVVM (Model-View-ViewModel) is a pattern that helps
to separate the business and presentation logic of an applicatio n from its user
interface (UI). The pattern was intro duced by Microsoft for designing apps for
its different platforms, including Xamarin, Windows Forms, WPF, Silverlight,
and Windows Phone.
30
.
The most relevant questions from topic MVVM are r e lated to Mvvmcross.
Mvvmcross is a framework built for ea sing the development of Xamarin fr ame-
works that proposes, for insta nce, an easier way to implement the MVVM pat-
29
https://www.nuget.org/
30
https://msdn.microsoft.com/en-us/library/hh848246.aspx
19
tern.
31
The question from Stack Overflow with highest score from topic MVVM
(25 upvotes) is about asynchronous programming: “How can I use async in an
MVVMCross view model?" (id:17187113)
32
. Between the answers, there are
two that solve the pr oblem: 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 be-
tween the pattern’s components, e.g., “Passing on variables from ViewModel to
another View [..]" (id:10192505), “MvvMCross bind command with parameter
[..]" (id:174927 42). Moreover, another relevant q uestion is about the differences
between Mvvmcross and ReactiveUI.
33
(ReactiveUI is a model-view-viewmodel
framework for a ll .NET platforms, including Xamarin).
User Interface (Forms/ViewList) (t
so
11). Xamarin.Form is an API of Xamarin
framework to build na tive apps for iOS, Android and Windows completely in
C# or in XML (using XAML language).
34
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-
sp ecific native user interface elements. Xamarin.Forms is bes t for developing
apps that require: a) little platform-specific functionality, or b) c ode s haring is
more important than cus tom 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: 24598 261) and “[..] untappable ListView
(remove selection ripple effect)" (id: 35586243). The highest score q uestions
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 u s e a Xaml designer or
intellisense with Xamarin.Forms?" (id: 2 4158201) (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, 2) Portable Class Li-
braries (PCL), and 3) .NET Standard Libraries.
35
Relevant questions ask about these architectures, specially ab out the second
one. There are questions asking about clarification of those architectures, e.g.,
31
https://www.mvvmcross.com/
32
This number corresponds to the ID of a StackOverflow post. A post with id <ID> is
publicly available at https://stackoverflow.com/questions/<ID>
33
https://reactiveui.net/
34
https://www.xamarin.com/forms
35
https://docs.microsoft.com/fr-fr/xamarin/cross-platform/app-fundamentals/code-sharing
20
“What is a Portable Class Library?" (id: 5238955), “Portable Class Library vs.
library project" (id: 28746609), or questions about the difference of two architec-
tures, 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 ques tions from this topic relates PCL and concur-
rency (threads): “Update UI thread from portable class library" (id: 14427340 ),
“Thread.Sleep() in a Portable Class Library" (id: 9251917).
6. Discussion
6.1. Threats to validity
6.1.1. Internal
Use of tags from posts. In sec tion 3 we applied a technique based on the use of
tags for retrieving posts related to Xamarin technology as done by Rosen and
Shihab [34]. T here is a threat when a develop er a) mislabels a post, i.e., tags
do not represent the real topic of the posts; or b) omits to label it. Moreover,
we used the titles from po sts to capture Xamarin-related posts that were not
labelled with Xa marin-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 betwe e n
the title and pos t’s content.
Representation of documents. We applied the LDA algorithm for modeling top-
ics. The input of LDA is a c orpus of document (See Section 5.1.1), where each
document contains information of a single post. We decided t o, 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 as ked in the
post, 2) the body of the question adds non-relevant information ra ther than
the main idea being asked about, and 3) we are interested in what issues the
developers are asking about and adding the answer posts would not make sense
[34].
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 [17, 23, 34],
we tried different configurations to choose, to our best judgment, the bes t con-
figuration. The selection criteria used by those works were: a) inspection at
the average dominant topic probabilities given by the resulting model [34], and
b) 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 [17]. In our
experiment we decided to use the same configuration that the study we repli-
cated from Rosen a nd Shihab. Reusing the configuration allowed us to compare
the topics discovered fro m Xamarin-r elated questions against those by Rosen
and Shihab fr om mo bile-related questio ns .
21
Label of discovered topics. As do ne by the mentioned related works (e.g., [34,
23]), 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 bes t of our knowledge, there is no tool for automatica lly
labeling topics. To alleviate the threat of mislab e ling topics or mismatching
of topics from different sources, we have carried out those task s using a pe e r-
reviewed process and the results are publicly available.
6.1.2. External
One potential threat is that sources of information used for studying Q&A
related to Xamarin technology are not representative. To mitigate that threat
we selected two so urces: Stack Overflow and Xamarin Forum. The former is
one of the most popular and used Q&A site by software developers and latter
is the official forum of the Xamarin technolog y.
6.2. Future Work
For future work, we plan to continue exploring the two data sets of Xamarin-
related questions. Future research direction could focus on:
6.2.1. Combine additional sources of information
By inspecting the relevant questions of this topic, we notice that many o f
their accepted answers include a link to the officia l Xamarin doc umentation
web site. For instance, the mentioned most viewed post (id: 30850510) has an
accepted answers tha t 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 Stack Overflow link to the official documentation in
their questions/answers?, b) How much do (Xamarin) developers ask questions
which solution ar e already included in the documentation?. Moreover, we also
observe that answers on Stack Overflow a lso include links to the Xamarin Forum,
the official Q&A site of Xamarin. For e xample, the question id 24598261 from
Stack Overflow has an accepted answer based on a post from the Xamarin
Forum (id: 66248).
36
Other paper s have focused on combining different sources
of information (e.g ., [46, 21, 42, 45, 41]). However, to our knowledge, nobody
has linked questions from two Q&A sites nor focused on Xamarin source of
information.
6.2.2. Study the architecture of cross-platform mobile apps
As we dis c ussed on Section 5.2.3, relevant ques tions are about mobile apps
architectures and frameworks. Future work can study and compa re apps de-
veloped using different architectures. For instance, a research could focus on
analyzing which is the best o ptio n between the architectures Shared Projects
and Portable class libraries in term o f, for instance , the expertise the develop-
ers needs to develop and maintain apps with tho se architectures, or the ease
36
https://forums.xamarin.com/discussion/comment/66248
22
of evolving an application according to the upgrade of the mobile platforms.
Moreover, another possible resear ch for future work could study the benefices
and disadvantag e s of developing and ma intaining cross-platforms apps that used
this frameworks (such as Mvvmcross) w.r.t. apps developed without them i.e.,
using only the Xa marin framework.
7. Conclusion
Cross-compiler mobile development frameworks allow mobile developers to
create native cross-platform mobile applications with the pr omise of simplify-
ing the development and maintenance phases by reusing code so urce across the
different platforms. To study and characterize the development a nd mainte-
nance of cros s-platforms apps using cross-compiler frameworks, in this paper
we present two datasets with questions and answers (Q&A): one with Q&A
from the official Xamarin Forum, the other with Xamarin-related Q&A from
Stack Overflow. We then use them in a replication study of [34] for discover-
ing the main discussion topics from questions related to Xamarin technology.
We compared the discovered topics ag ainst those main topics related to mobile
development discovered by [34]. We found that a portion of the topics from
the Xamarin-rela ted questions were not previous ly identified when discussing
about general mobile applications. To promote more studies about Xamarin
and cross-platform mobile frameworks, the two Xamarin-related Q&A datasets
are publicly available.
References
[1] Rabe Abdalkareem, Emad Shihab, and Juergen Rilling. On co de reus e
from stackoverflow: An exploratory study on android apps. Information
and Software Technology, 88(Supplement C):148 158, 2017.
[2] Mohamed Ali, Mona Erfani Joor abchi, and Ali Mesbah. Same app, different
app stores: A comparative study. In Proceedings of t he 4th International
Conference on Mobile Software Engineering and Systems, MOB I L ESoft ’17,
pages 79–90, Piscataway, NJ, USA, 2017. IEEE Press.
[3] Alberto Bacchelli. Mining challenge 2013: Stack overflow. In The 10th
Working Conference on Mining Software Repositories, pa ge to appea r,
2013.
[4] Kartik Bajaj, Karthik Pattabiraman, and Ali Mesbah. Mining questions
asked by web developers . In Proceedings of the 11th Working Conference
on Mining Software Repositories, MSR 2014, pages 112–121, New York ,
NY, USA, 2014 . ACM.
[5] Anton Barua, Stephen W. Thomas, and Ahmed E. Hassan. What are
developers talking about? an analysis o f topics and trends in stack overflow.
Empirical Softw. Engg., 19(3):619–654, June 20 14.
23
[6] Blerina Bazelli, Abram Hindle, and Eleni Stroulia. On the p ersonality traits
of stackoverflow users. In Proceedings of the 2013 IEEE International Con-
ference on Software Maintenance, ICSM ’13, pages 460–463, Washington,
DC, USA, 2013. IEEE Computer Society.
[7] S. Beyer and M. Pinzger. A manual categorization of android app develop-
ment is sues on stack overflow. In 2014 IEEE International Conference on
Software Maintenance and Evolution, pages 531–535, Sept 2 014.
[8] Stefanie Beyer and Martin Pinzger . Grouping android tag synonyms on
stack overflow. In Proceedings of the 13th International Conference on
Mining Software Repositories, MSR ’16, pages 430 –440, New Yo rk, NY,
USA, 2016. ACM.
[9] David M. Blei, Andrew Y. Ng, and Michael I. Jordan. Latent dirichlet
allocation. J. Mach. Learn. Res., 3 :993–1022, March 2003.
[10] Tse-Hsun Chen, Stephen W. Thomas, and Ahmed E. Hassan. A s urvey
on the use of topic models when mining software repositories. Empirical
Software Engineering, 21(5):1843–1919, Oct 2016.
[11] Matteo Cima n and Ombretta Gaggi. An e mpirical analysis o f energy con-
sumption of cross-platform frameworks for mobile development. Pervasive
and Mobile Computing, pages –, 2016.
[12] Isabelle Dalmasso, Soumya Kanti Datta, Christian Bonnet, and Navid
Nikaein. Survey, comparison and e valuation of cross platform mobile appli-
cation development tools. In 2013 9th International Wireless Communica-
tions and Mobile Computing Conference (IWCMC), pages 323–328. IEEE,
2013.
[13] Heiko Desruelle, John Lyle, Simon Isenberg, and Frank Gielen. On the
challenges of building a web-based ubiquitous application platform. In
Proceedings of the 2012 ACM Conference on Ubiquitous Computing, pages
733–736. ACM, 2012 .
[14] Rita Frances e , Michele Risi, Genoveffa Tortora, and Giuseppe Scanniello.
Supporting the development of multi-platform mobile applications. In 2013
15th IEEE International Symposium on Web Syst ems Evolution (WSE),
pages 87–90. IEEE, 2013.
[15] Henning Heitkötter, Sebastian Hanschke, and Tim A Majchrzak. Evalu-
ating cross-platform development approaches for mobile applicatio ns. In
International Conference on Web Information Systems and Technologies,
pages 120–138. Springer, 2012.
[16] D. Hermes. Xamarin Mobile Application Development: Cross-Platform C#
and Xamarin.Forms Fundamentals. Apress, 2015.
24
[17] Abram Hindle, Christian Bird, Thomas Zimmermann, and Nachiappan
Nagappan. Do topics make sense to manager s and developers? Empirical
Softw. Engg., 20(2):479– 515, April 2015.
[18] Hanyang Hu, Cor-Paul Bezemer, and Ahmed E Hassan. Studying the
consistency of star ratings a nd the complaints in 1 & 2-star user reviews for
top free cross-platform android and ios apps. PeerJ Preprints, 4:e2589v1,
November 2016.
[19] IDC. Smartphone os market share, 2017 q1, 2017.
[20] M. E. Joo rabchi, A. Mesbah, and P. Kruchten. Rea l challenges in mo-
bile app development. In 2013 ACM / IEEE International Symposium on
Empirical Software Engineering and Measurement, page s 15–24, Oct 2013.
[21] Roy Ka-Wei Lee and David Lo . GitHub and Stack Overflow: Analyzing
Developer Interests Across Multiple Social Collaborative Platforms, pages
245–256. Springer International Publishing, Cham, 2017.
[22] Mario Linares-Vásquez, Gabriele Bavota, Ma ssimiliano Di Penta, Rocco
Oliveto, and Denys Poshyvanyk. How do api changes tr igger stack overflow
discussions? a study on the android sdk. In Proceedings of the 22Nd Inter-
national Conference on Program Comprehension, ICPC 2014, pages 83–9 4,
New York, NY, USA, 2014. ACM.
[23] Mario Linares-Vásquez, Bogdan Dit, and Denys Poshyvanyk. An ex-
ploratory analysis of mobile development iss ues using stack overflow. In
Proceedings of the 10th Working Conference on Mining Software Reposito-
ries, MSR ’13, pa ges 93–96, Piscataway, NJ, USA, 2013. IEEE Press.
[24] Matias Martinez and Sylvain Lecomte. Towards the quality improvement of
cross-platform mobile applications. In Proceedings of the 4th International
Conference on Mobile Software Engineering and Systems, MOB I L ESoft ’17,
pages 184–188, Piscataway, NJ, USA, 2017. IEEE Press.
[25] Andrew Kachites McCallum. Ma llet: A machine learning for language
toolkit. 2002.
[26] M. Nagappan and E. Shihab. Future trends in software engineering resear ch
for mobile apps. In 2016 IEEE 23rd International Conference on Software
Analysis, Evolution, and Reengineering (SANER), volume 5, pages 21–32,
March 2016.
[27] Manuel Palmieri, Inderjeet Singh, and Antonio Cicchetti. Comparison of
cross-platform mobile development tools. In Intelligence in Next Generation
Networks (ICIN), 2012 16th International Conference on, pages 179–186.
IEEE, 2012.
[28] J. Peppers. Xamarin Cross-Platform Application Development - Second
Edition. Community Experience Distilled. Packt Publishing, 2015.
25
[29] Joachim Perchat, Mikael Desertot, and Sylvain Lecomte. Common frame-
work: A hybrid approach to integrate cross-platform components in mobile
application. Journ al of Computer Science, 10(11):2165, 2014.
[30] Gustavo Pinto, Fernando Castor, and Yu David Liu. Mining questions
about software energy consumption. In Proceedings of the 11th Working
Conference on Mining Software Repositories, MSR 2 014, page s 22–31, New
York, NY, USA, 2014. ACM.
[31] Gustavo Pinto, Weslley Torres, and Fernando Castor. A study on the most
popular questions about concurrent programming. In Proceedings of the
6th Workshop on Evaluation and Usability of Programming Languages and
Tools, PLATEAU 2015, pages 39–46, New York, NY, USA, 2015. ACM.
[32] M. F. Porter. Readings in information retrieval. chapter An Algorithm for
Suffix Stripping, pages 313–316. Mor gan Kaufmann Publishers Inc., San
Francisco, CA, USA, 1997 .
[33] M. Rebouças, G. Pinto, F. Ebert, W. Torres, A. Serebrenik, and F. Castor.
An empirical study on the usag e of the swift programming language. In
2016 IEEE 23rd International Conference on Software Analysis, Evolution,
and Reengineering (SANER ), volume 1, pages 634–638, March 2016.
[34] Christoffer Rosen and Emad Shihab. What are mobile developers asking
about? a large scale study using stack overflow. Empirical Softw. Engg.,
21(3):1192–1223, J une 20 16.
[35] E. Snider. Mastering Xamarin. Forms. Community experience distilled.
Packt Publishing, Limited, 2016.
[36] Ryan Stevens, Jonathan Ganz, Vladimir Filkov, Premk umar Devanbu, and
Hao Chen. Asking for (a nd about) permis sions used by android apps. In
Proceedings of the 10th Working Conference on Mining Software Reposito-
ries, MSR ’13, pa ges 31–40, Piscataway, NJ, USA, 2013. IEEE Press.
[37] X. Sun, X. Liu, B. Li, Y. Duan, H. Yang, and J. Hu. Exploring topic models
in software engineering data analy sis: A survey. In 2016 17th IEEE/ACIS
International Conference on Software Engineering, Artificial Intelligence,
Networking and Parallel/Distributed Computing (SNPD), pages 357–362,
May 2016.
[38] Xiaobing Sun, Bixin Li, Hareton Leung, Bin Li, and Yun Li. Msr4sm. Inf.
Softw. Technol., 66(C):1–12, October 2015.
[39] Mark D. Syer, Meiyappan Naga ppan, Bram Adams, and Ahmed E. Hassan.
Studying the relationship between source code quality and mobile platform
dependence. Software Quality Journal, 23(3):485– 508, Sep 2015.
26
[40] C. Treude and M. P. Robilla rd. Understanding stack overflow code frag-
ments. In 2017 IEEE International Conference on Software Maintenance
and Evolution (ICSME), pages 509–513, Sept 20 17.
[41] P. K. Venkatesh, S. Wang, F. Zhang, Y. Zou, and A. E. Hass an. What do
client developers concern when using web apis? an empirical study on de-
veloper forums and stack overflow. In 2016 IEEE International Conference
on Web Services (ICWS), pages 131–138, June 2016.
[42] H. Wang, T. Wang, G. Yin, and C. Yang. Linking issue tracker with q
amp;a sites for knowledge sharing across communities. IEEE Transactions
on Services Computing, PP(99):1–1, 2017.
[43] Wei Wang and Michael W. Godfrey. Detecting api usage obstacles: A
study of io s and andr oid developer questions. In Proceedings of the 10th
Working Conference on Mining Software Repositories, MSR ’13, pages 61–
64, Piscataway, NJ, USA, 2013. IEEE Press.
[44] Xin-Li Yang, David Lo, Xin Xia, Zhi-Yuan Wan, and Jian-Ling Sun. What
security questions do developers ask? a la rge-scale study of stack overflow
posts. Journal of Computer Science and Technology, 31(5):910–924, Sep
2016.
[45] Deheng Ye, Zhenchang Xing, and Nachiket Kapre . The structure and dy-
namics of knowledge network in domain-specific q&a sites: a case study of
stack overflow. Empirical Software Engineering, 22(1):375–406, Feb 2017.
[46] A. Zagalsky, C. G. Teshima, D. M. German, M. A. Stor e y, and G. Poo-
Caamaño. How the r community crea tes a nd curates knowledge: A com-
parative study of stack overflow and mailing lists. In 2016 IEEE/ACM
13th Working Conference on Mining Software Repositories (MSR), pages
441–451, May 2016.
27