I am writing my bachelor’s thesis about the development of an Android application. Which required the development of a server-side backend application as well. This project started as a summer hobby project, but later it grown enough big to become the topic of my thesis.
The idea was to make developers able to throw exceptions to each other, using their handsets, and this is what I brought off. For this, I had to plan the high-level architecture of the service, and I had to get to know the Android platform, and its specific requirements towards application development.
After that I could start working on the implementation. Significant part of the service was written using the Kotlin programming language, both on the client and server side. Kotlin is new, innovative language for the JVM platform, and while I’m writing these lines it’s still available only in beta version.
The development of a (software) service is done iteratively, which means that the existing code has to be refactored continuously. In my case it was very true, because this was my first application for Android, and also because I was using a language which had not got a finalized specification, and each release was potentially incompatible with the previous version.
In my thesis I am writing about the importance of the chosen technologies, I present the architecture of both the client and server side applications, and how the communication is managed between them. I am also writing about the Android platform and the Spring Boot framework. I am comparing the Java language with the aforementioned Kotlin language, and I am pointing out the last one’s advantages and potential. In addition I am writing about those cloud services that my service is using, and I am creating a user’s manual.