Javascript must be enabled to continue!
Towards high-quality Android applications development with Kotlin
View through CrossRef
Vers un développement d'applications Android de haute qualité avec Kotlin
Android de Google domine le marché des systèmes d’exploitation mobiles dans le monde entier. Malgré ce succès, Google continue à faire évoluer son système d’exploitation et ses kits d’outils pour faciliter le développement des applications. Kotlin est le langage de programmation officiel d'Android. Il s’exécute sur la machine virtuelle Java (JVM) et il est entièrement interopérable avec Java car les deux langages sont compilés en bytecode JVM. En raison de cette caractéristique, les développeurs Android n’ont pas besoin de migrer leurs applications existantes vers Kotlin pour commencer à l’utiliser dans ces applications. De plus, il propose une approche différente pour écrire des applications car il combine des fonctionnalités orientées objet et fonctionnelles. Par conséquent, nous émettons l’hypothèse que l’adoption de Kotlin par les développeurs Android peut affecter différents aspects du développement des applications Android. Cependant, un an après cette première annonce, il n’y avait aucune étude dans la littérature sur Kotlin. Dans cette thèse, nous avons mené une série d’études empiriques pour combler ces lacunes et développer une meilleure compréhension de la création d’applications Android de haute qualité à l’aide de Kotlin. Tout d’abord, nous avons réalisé une étude pour mesurer le degré d’adoption de Kotlin. Nos résultats ont montré que 11% des applications Android étudiées avaient adopté Kotlin. Ensuite, nous avons analysé l’impact de l’adoption de Kotlin sur la qualité des applications Android en termes de défauts de code. Nous avons constaté que l’introduction du code Kotlin dans les applications Android initialement écrites en Java produit une augmentation des scores de qualité de 50% à 80% selon les défauts de code considérés. Nous avons analysé l’évolution de l’utilisation des fonctionnalités introduites par Kotlin, telles que Smart cast, et comment la quantité de code Kotlin change au fil de l’évolution des applications. Nous avons constaté que le nombre d’instances de fonctionnalités a tendance à augmenter tout au long de l’évolution des applications. Enfin, nous nous sommes concentrés sur la migration des applications Android de Java vers Kotlin. Nous avons constaté que 25% des applications open source initialement écrites en Java ont complètement migré vers Kotlin, et pour 19%, la migration s’est faite progressivement, sur plusieurs versions, grâce à l’interopérabilité entre Java et Kotlin. Cette activité de migration est difficile car : a) chaque morceau de code migré doit être testé de manière exhaustive après la migration pour s’assurer qu’il préserve le comportement attendu; b) un projet peut être énorme, composé de plusieurs dossiers candidats à migrer. Dans cette thèse, nous présentons une approche de prise en charge de la migration, qui propose, étant donné une version d’une application écrite en Java et éventuellement, en Kotlin, les fichiers les plus pratiques à migrer. Nous avons évalué la faisabilité de notre approche en appliquant deux techniques d’apprentissage automatique différentes : la classification et l’apprentissage par rang. Nos résultats ont montré que les deux techniques surpassent légèrement les approches aléatoires. Toutefois, notre approche est la première à proposer l’utilisation du machine learning pour recommander des migrations au niveau des fichiers. Par conséquent, nos résultats définissent une base de référence pour les travaux futurs. Comme la migration de Java vers Kotlin peut avoir un impact positif sur la maintenance de l’application et que la migration est longue et difficile, les développeurs peuvent utiliser notre approche pour sélectionner les fichiers à migrer en premier. Enfin, nous discutons de plusieurs perspectives de recherche ouvertes par nos résultats qui peuvent améliorer l’expérience de création d’applications Android de haute qualité à l’aide de Kotlin.
Title: Towards high-quality Android applications development with Kotlin
Description:
Vers un développement d'applications Android de haute qualité avec Kotlin
Android de Google domine le marché des systèmes d’exploitation mobiles dans le monde entier.
Malgré ce succès, Google continue à faire évoluer son système d’exploitation et ses kits d’outils pour faciliter le développement des applications.
Kotlin est le langage de programmation officiel d'Android.
Il s’exécute sur la machine virtuelle Java (JVM) et il est entièrement interopérable avec Java car les deux langages sont compilés en bytecode JVM.
En raison de cette caractéristique, les développeurs Android n’ont pas besoin de migrer leurs applications existantes vers Kotlin pour commencer à l’utiliser dans ces applications.
De plus, il propose une approche différente pour écrire des applications car il combine des fonctionnalités orientées objet et fonctionnelles.
Par conséquent, nous émettons l’hypothèse que l’adoption de Kotlin par les développeurs Android peut affecter différents aspects du développement des applications Android.
Cependant, un an après cette première annonce, il n’y avait aucune étude dans la littérature sur Kotlin.
Dans cette thèse, nous avons mené une série d’études empiriques pour combler ces lacunes et développer une meilleure compréhension de la création d’applications Android de haute qualité à l’aide de Kotlin.
Tout d’abord, nous avons réalisé une étude pour mesurer le degré d’adoption de Kotlin.
Nos résultats ont montré que 11% des applications Android étudiées avaient adopté Kotlin.
Ensuite, nous avons analysé l’impact de l’adoption de Kotlin sur la qualité des applications Android en termes de défauts de code.
Nous avons constaté que l’introduction du code Kotlin dans les applications Android initialement écrites en Java produit une augmentation des scores de qualité de 50% à 80% selon les défauts de code considérés.
Nous avons analysé l’évolution de l’utilisation des fonctionnalités introduites par Kotlin, telles que Smart cast, et comment la quantité de code Kotlin change au fil de l’évolution des applications.
Nous avons constaté que le nombre d’instances de fonctionnalités a tendance à augmenter tout au long de l’évolution des applications.
Enfin, nous nous sommes concentrés sur la migration des applications Android de Java vers Kotlin.
Nous avons constaté que 25% des applications open source initialement écrites en Java ont complètement migré vers Kotlin, et pour 19%, la migration s’est faite progressivement, sur plusieurs versions, grâce à l’interopérabilité entre Java et Kotlin.
Cette activité de migration est difficile car : a) chaque morceau de code migré doit être testé de manière exhaustive après la migration pour s’assurer qu’il préserve le comportement attendu; b) un projet peut être énorme, composé de plusieurs dossiers candidats à migrer.
Dans cette thèse, nous présentons une approche de prise en charge de la migration, qui propose, étant donné une version d’une application écrite en Java et éventuellement, en Kotlin, les fichiers les plus pratiques à migrer.
Nous avons évalué la faisabilité de notre approche en appliquant deux techniques d’apprentissage automatique différentes : la classification et l’apprentissage par rang.
Nos résultats ont montré que les deux techniques surpassent légèrement les approches aléatoires.
Toutefois, notre approche est la première à proposer l’utilisation du machine learning pour recommander des migrations au niveau des fichiers.
Par conséquent, nos résultats définissent une base de référence pour les travaux futurs.
Comme la migration de Java vers Kotlin peut avoir un impact positif sur la maintenance de l’application et que la migration est longue et difficile, les développeurs peuvent utiliser notre approche pour sélectionner les fichiers à migrer en premier.
Enfin, nous discutons de plusieurs perspectives de recherche ouvertes par nos résultats qui peuvent améliorer l’expérience de création d’applications Android de haute qualité à l’aide de Kotlin.
Related Results
CONCEPT TO COMPLETION - ANDROID APPS AND KOTLIN MULTI PLATFORM
CONCEPT TO COMPLETION - ANDROID APPS AND KOTLIN MULTI PLATFORM
“Concept to Completion: Android Apps and Kotlin Multiplatform” is a comprehensive guide designed to take you from the fundamentals of Android development to advanced multiplatform ...
CREATING LEARNING MEDIA IN TEACHING ENGLISH AT SMP MUHAMMADIYAH 2 PAGELARAN ACADEMIC YEAR 2020/2021
CREATING LEARNING MEDIA IN TEACHING ENGLISH AT SMP MUHAMMADIYAH 2 PAGELARAN ACADEMIC YEAR 2020/2021
The pandemic Covid-19 currently demands teachers to be able to use technology in teaching and learning process. But in reality there are still many teachers who have not been able ...
A NONLINEAR REGRESSION MODEL FOR EARLY LOC ESTIMATION OF OPEN-SOURCE KOTLIN-BASED APPLICATIONS
A NONLINEAR REGRESSION MODEL FOR EARLY LOC ESTIMATION OF OPEN-SOURCE KOTLIN-BASED APPLICATIONS
Context. The early lines of code (LOC) estimation in software projects holds significant importance, as it directly influences the prediction of development effort, covering a spec...
Analisis dan Deteksi Malware dengan Metode Hybrid Analysis Menggunakan Framework MOBSF
Analisis dan Deteksi Malware dengan Metode Hybrid Analysis Menggunakan Framework MOBSF
Abstract - The increase in the popularity of smartphones is followed by an increase in the number of users each year. In this case, smartphones with the Android platform are still ...
Krushi Tech: Bridging Farmers and Innovation with Android Apps
Krushi Tech: Bridging Farmers and Innovation with Android Apps
The modern digital realm exists through Android application development which drives technological advancement and transforms user and enterprise relations with technological inter...
Evaluating Kotlin Multiplatform: Superior cross-platform development
Evaluating Kotlin Multiplatform: Superior cross-platform development
This study addresses the issue of code duplication and development efficiency in cross-platform development, comparing Kotlin Multiplatform to traditional choices such as Java and ...
Android Malware Detection Techniques: A Literature Review
Android Malware Detection Techniques: A Literature Review
Objective:
This paper provides the basics of Android malware, its evolution and tools and
techniques for malware analysis. Its main aim is to present a review of the literature on ...
Pengembangan Modul Berbasis Android tentang Kesiapan Kerja
Pengembangan Modul Berbasis Android tentang Kesiapan Kerja
Tujuan penelitian ini adalah menguji coba seberapa efektifitasnya modul berbasis android tentang kesiapan kerja untuk siswa sekolah kejuruan. Metode kajian menggunakan 4-D Â (Defin...

