Development of a prototype of a mobile quiz game using cutting-edge tools and practices
Εφαρμογή σύγχρονων εργαλείων και πρακτικών για τη δημιουργία ενός πρωτότυπου παιχνιδιού ερωταπαντήσεων

Master Thesis
Author
Dokouzis, Iason - Dimitrios
Ντοκούζης, Ιάσων - Δημήτριος
Date
2024-09Advisor
Alepis, EfthimiosΑλέπης, Ευθύμιος
View/ Open
Keywords
Jetpack Compose ; OOP ; Object-Oriented Programming ; Mobile application ; Class structure ; Quiz game ; User interface ; TCP ; UDP ; Transmission Control Protocol ; User Datagram Protocol ; Server synchronization ; Peer-to-peer ; Dedicated server ; Listen server ; Host migration ; ModifierAbstract
The purpose of this publication was to create a quiz game that would allow players from around the world to connect, go through quizzes and answer questions together. The answers would be graded by the application. Every player’s answer to every quiz needed to be recorded and stored in a storage space and players would have the ability to view statistical data about themselves, as well as worldwide statistical data.
The importance of Object-Oriented programming when creating, maintaining or expanding applications will be explained first. Approaches that can be taken into account, as well as perspectives that should be considered will be described. Finally, practices that have been created by the author for the purpose of writing well-organized code will be explained. The above aspects will be shown to the reader through example applications, created by the author for the purposes of this paper. The example applications are console applications without UI elements, in order to display and focus on the logic of the application, rather than its User Interface.
The basics of designing graphical applications with Jetpack Compose, will be explained in the next chapter. Jetpack Compose allows programmers or designers to develop user interfaces for mobile applications with a high degree of freedom, speed and with a minimal amount of bugs. Jetpack Compose is a toolkit that provides an entirely new way to develop modern graphical User Interfaces and it allows for the latest technologies to be used. The basics of layout creation, modifiers and the importance of the order in which they are applied will be explained with examples and images that will hopefully provide a deep understanding of the toolkit to the reader.
The last chapter will explain the structure of the application, its classes and how they are connected and the two different executables that are used to provide the runtime functionality. Design problems that were found and the solutions that were given for these problems will be explained. By the end of the chapter, the reader will have a comprehensive understanding of the general structure of the application.