Evaluating Maintainability of Android Applications: Mooncascade Case Study

Name
Mustafa Ogün Öztürk
Abstract
Android became one of the most comprehensive mobile platforms in the last decade. This comprehensiveness also brought more challenges to the Android application development. Android’s nature, demanding business needs, the frequent update rate of Android applications, and lastly, changing development teams are the four major challenges for Android applications. Maintainability is defined as how easy it is to update, modify, and maintain software. At this point, maintainability emerges as a key concept because developing maintainable Android applications facilitate the above-mentioned difficulties. The primary goal of this study is to evaluate the impact of the technologies and the methods used to develop Android applications by Mooncascede, a software product development company, on maintainability. These methods and technologies include principles (e.g. Clean Code, SOLID), architectural/design patterns (Clean Architecture, MVVM), and third-party libraries (RxJava, Dagger 2 and so on). The evaluation was conducted using the triangulation strategy, which is a mixed-method approach. Qualitative evaluation was conducted via interviews with the case company’s Android team (7 participants) and an Android developer survey filled by anonymous developers (over 150 participants). Also, quantitative evaluation was made via object-oriented software metrics. Study results reveal the positive impact of the evaluated methods and technologies on the maintainability of Android applications while pointing to the need for improvements. Results also indicate the need for a new maintainability model specific to the Android applications.
Graduation Thesis language
English
Graduation Thesis type
Master - Software Engineering
Supervisor(s)
Jakob Mass
Defence year
2021
 
PDF Extras