Abstract | Ovaj završni rad obuhvaća razvoj android aplikacije za praćenje stanja u prometu u stvarnom vremenu s fokusom na korištenje modernih tehnologija poput Firebase-ovog alata za rad s NoSQL udaljenom bazom podataka Cloud Firestore, Room lokalne baze podataka i Google Maps API-ja. Aplikacija omogućuje korisnicima pregled trenutnog stanja na cestama kao što su kolone auta na cestama, radarske kamere, prometne nesreće i policijske kontrole. Rad je podijeljen na nekoliko ključnih cjelina. Unutar prvog dijela rada su odrađene osnovne arhitektonske smjernice koje su korištene unutar aplikacije s naglaskom na Clean arhitekturu i MVVM obrazac što omogućuje jasnu raspodjelu odgovornosti između slojeva aplikacije. Također se unutar rada spominje Hilt kao korišteni alat za primjenu dependency injection-a. Drugi dio rada detaljno opisuje odabir udaljenog servera gdje je izabran Firebase-ov alat Cloud Firestore radi svojih prednosti u praćenju podataka unutar stvarnog vremena i svoje jednostavnosti upravljanja istim. Također je razjašnjena upotreba Room baze podataka kao rješenje za lokalnu pohranu podataka kako bi se omogućila sinkronizacija s podatcima dohvaćenim na udaljenom serveru. U završnom dijelu rada je pojašnjena integracija Google Maps API-ja gdje su opisane funkcionalnosti poput dodavanja markera na kartu. Dodatno je objašnjeno korištenje fragmentacije i navigacije unutar aplikacije korištenjem Android Navigation Component-a. Konačno, rad obrađuje i korištenje Kotlin coroutine-a za upravljanje nitima, s naglaskom na optimizaciju aplikacije prilikom rada s bazom podataka i mrežnim pozivima. Čitatelj može pratiti razvojni proces i tehničke detalje aplikacije putem GitHub repozitorija na sljedećoj poveznici: https://github.com/mbuc1c/Radarisha. |
Abstract (english) | This final thesis covers the development of an Android application for real-time traffic monitoring, focusing on the use of modern technologies such as Firebase's Cloud Firestore, a NoSQL remote database solution, the Room local database, and Google Maps API. The application allows users to view current road conditions, including traffic jams, speed cameras, traffic accidents, and police patrols. The thesis is divided into several key sections. The first part of the thesis addresses the basic architectural guidelines used within the application, with an emphasis on Clean Architecture and the MVVM pattern, which facilitates a clear separation of responsibilities between different application layers. The thesis also discusses the use of Hilt as the chosen tool for implementing dependency injection. The second part of the thesis provides a detailed explanation of the selection of the remote server, where Firebase's Cloud Firestore was chosen due to its advantages in real-time data tracking and ease of management. Additionally, the use of the Room database as a solution for local data storage is clarified, highlighting its role in synchronizing data retrieved from the remote server. The final part of the thesis explains the integration of Google Maps API, outlining features such as adding markers to the map. Moreover, the thesis explains the use of fragmentation and navigation within the application, leveraging the Android Navigation Component. Lastly, it covers the use of Kotlin coroutines for thread management, focusing on optimizing the application when working with databases and network calls. Readers can follow the development process and technical details of the application via the GitHub repository at the following link: https://github.com/mbuc1c/Radarisha. |