An empirical study on quality of Android applications written in Kotlin language

被引:33
作者
Mateus, Bruno Gois [1 ]
Martinez, Matias [1 ]
机构
[1] UPHF, Campus Mt Houy, F-59313 Valenciennes, France
关键词
Android; Mobile development; Quality; Kotlin; !text type='Java']Java[!/text; Code smells; Code evolution; Open-Source applications; SMELLS;
D O I
10.1007/s10664-019-09727-4
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Context During the last years, developers of mobile applications have the possibility to use new paradigms and tools for developing mobile applications. For instance, since 2017, Android developers have the official support to write Android applications using Kotlin language. Kotlin is programming language fully interoperable with Java that combines object-oriented and functional features. Objective The goal of this paper is twofold. First, it aims to study the degree of adoption of Kotlin language on the development of open-source Android applications and to measure the amount of Kotlin code inside those applications. Secondly, it aims to measure the quality of Android applications that are written using Kotlin and to compare it with the quality of Android applications written using Java. Method We first defined a method to detect Kotlin applications from a dataset of open-source Android applications. Then, we analyzed those applications to detect instances of code smells and computed an estimation of the quality of the applications. Finally, we studied how the introduction of Kotlin code impacts on the quality of an Android application. Results Our experiment found that 11.26% of applications from a dataset with 2,167 open-source applications have been written (partially or fully) using Kotlin language. We found that the introduction of Kotlin code increases the quality, in terms of the presence of 10 different code smells studied, 4 object-oriented and 6 Android, of the majority of the Android applications initially written in Java.
引用
收藏
页码:3356 / 3393
页数:38
相关论文
共 56 条
[1]  
Allix K, 2016, 13TH WORKING CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2016), P468, DOI [10.1109/MSR.2016.056, 10.1145/2901739.2903508]
[2]  
AndroidDoc, 2018, ARR MAP ANDR DEV
[3]  
AndroidDoc, 2018, PERF TIPS ANDR DEV
[4]   A Validated Set of Smells in Model-View-Controller Architectures [J].
Aniche, Mauricio ;
Bavota, Gabriele ;
Treude, Christoph ;
van Deursen, Arie ;
Gerosa, Marco Aurelio .
32ND IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2016), 2016, :234-244
[5]  
[Anonymous], THESIS
[6]  
[Anonymous], 2017, SMARTPH OS MARK SHAR
[7]  
Brown W.H., 1998, AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis
[8]  
Carette A, 2017, 2017 IEEE 24TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER), P115, DOI 10.1109/SANER.2017.7884614
[9]   Detecting Performance Anti-patterns for Applications Developed using Object-Relational Mapping [J].
Chen, Tse-Hsun ;
Shang, Weiyi ;
Jiang, Zhen Ming ;
Hassan, Ahmed E. ;
Nasser, Mohamed ;
Flora, Parminder .
36TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2014), 2014, :1001-1012
[10]   A METRICS SUITE FOR OBJECT-ORIENTED DESIGN [J].
CHIDAMBER, SR ;
KEMERER, CF .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1994, 20 (06) :476-493