Carleton University - School of Computer Science Honours Project
Winter 2021
Subscription Manager - A Comparison of Modern and Legacy Android APIs and Architectures
Owen Lejeune
SCS Honours Project Image
ABSTRACT
The goal of this project is to perform a comparative analysis of two aspects of Android development by building identical applications using a modern framework and a legacy framework. The legacy application is built using the Java programming language and the Android SQLite database library. The modern application is built using the Kotlin programming language and the Room database library. Kotlin includes a number of language features that improve over Java such as improved null safety, first-class support for lambda functions, and reduction in boilerplate code through type inference and a broader range of class types. Room also makes many improvements over SQLite. Its annotation-based API requires less boilerplate code to be written by the developer to implement a database as well as making it simpler and less dangerous to modify or extend a database. Room’s compile-time SQL validation makes it quicker and easier to identify malformed queries and also increases database performance. In batch and individual insertions, as well as in deletions, at varying sample sizes, Room outperformed SQLite in every test thanks to compile-time SQL generation and object reuse. Overall, this project shows that both Kotlin and Room improve upon Java and SQLite in every metric explored.