Implementation of Model-View-ViewModel and Clean Architecture in Android Mobile App Development - Meriska Defriani; Irsan Jaelani; Leonard Putra Sanjaya; Rezha Shahidzinda (CoreID Journal, 2026)
Android applications are capable of assisting users in managing activities effectively, including the management of school tasks. However, in the development process, several issues often arise, such as code complexity, low maintainability, and difficulties in further development. These problems are generally caused by the lack of a clear separation between business logic and the user interface. Therefore, the implementation of an appropriate software architecture is necessary. One widely used approach is Model-View-ViewModel (MVVM). The MVVM concept is able to separate the user interface from the business logic. In addition to MVVM, Clean Architecture is another approach that provides a solution for building well-structured systems. Clean Architecture divides an application into several layers, such as presentation, domain, and data. Previous studies have implemented either the MVVM or Clean Architecture independently. In addition, these architectures have been applied using different development frameworks and programming languages. Although several studies have successfully implemented both MVVM and Clean Architecture in mobile application development, their implementation has generally not been extended to unit and instrumentation testing. In this study, a mobile application was developed by implementing the MVVM concept and Clean Architecture using the Kotlin programming language and Room as the local data storage solution. The development of an application using Extreme Programming (XP) Software Development Method. The developed application was tested using unit testing and instrumentation testing with the JUnit, Mockito, Espresso, and Room Testing frameworks. The testing process was conducted across three application layers, namely the presentation, domain, and data layers, with a total of nine test files evaluated modularly. The test results showed that all executed scenarios were successfully passed. The test results demonstrate that the implementation of MVVM and Clean Architecture improves application modularity, allowing each layer to be tested independently. It shows that by implementing MVVM and Clean Architecture, the program code becomes more organized, structured, easier to understand, and easier to be tested. In addition, due to the low coupling between components, the code is more maintainable and easier to extend in the future.