A study of Kotlin's: conciseness, safety and interoperability.
Tutor / director / evaluatorMeseguer Pallarès, Roc
Document typeBachelor thesis
Rights accessOpen Access
In the latest Google I/O, Google’s major conference on the Android world, that took place in May 2019, they stated two huge announcements. The first one is thatthere are already more than 2.5billion active Android devices worldwide. And the second one isthat since the launch of Android in late 2008 the preferred programming language for developing Android application has been Java, but this year, 2019, this changed. Kotlin, a new programminglanguage developed by JetBrains, took its place. Both statements are huge, why would Google change its preferred programming language for Android development when they have that impressive numberof active devices?The goal of this project is to answer that question by evaluatingKotlin.We willfirstdeep dive into its main featureswhich go from writing concise code to revolutionizing asynchronous programming. We will also look at what can we build with Kotlin, which goes from mobile applications to servers or browser applications. The first approach will be theoreticalby researching what problem do Kotlin’s features solveand how to use them. Then,we will move to select the most relevant featuresand we will experimentwith them. In the experiment we will see if what the theory promises is true and at the end of evaluating these features, we willgive some analysis or proposals for improving it.Once we are more familiar with Kotlin we will build an actual Android application fully in Kotlin. The application will connect to a server and look for flights for a given group of people from different departure cities to a single destination. Therefore, we will have the possibility of creating travel groups of people and the possibility to look for flightsfor each of those.Finally, we will take everything into consideration, and we will validate Kotlin’s self-claim of being a concise, safe and interoperable language from both the theoretical and the practical points of view.