Original title:
Knihovna pro řízení datové synchronizace v prostředí aplikací Apple
Translated title:
Framework for Data Synchronization in the Context of Apple User Applications
Authors:
Klembara, Filip ; Smrčka, Aleš (referee) ; Hrubý, Martin (advisor) Document type: Master’s theses
Year:
2020
Language:
slo Publisher:
Vysoké učení technické v Brně. Fakulta informačních technologií Abstract:
[slo][eng]
Cieľom tejto práce je navrhnúť a implementovať knižnicu pre zaistenie synchronizácie dát medzi viacerými klientskými zariadeniami v kontexte ekosystému jednej aplikácie podporujúcej operačný systém iOS, iPadOS alebo MacOS. Práca sa zameriava na jednoduchú integráciu knižnice do existujúcich aplikácií využívajúcich databázový systém Realm a na jednoduché prepojenie používateľského rozhrania so synchronizačným procesom. Zvolený problém som vyriešil navrhnutím synchronizačného protokolu primárne využívajúceho synchronizáciu založenú na logoch pre distribúciu zmien medzi klientom a serverom, implementovaním knižnice pre monitorovanie zmien v klientskej databáze a ich distribúcie na server a implementovaním serverovej knižnice pre integrovanie prijatých zmien a pre ich rozdistribuovanie pomocou notifikácií. Vytvorené riešenie poskytuje jednoduchý spôsob ako implementovať synchronizáciu dát medzi viacerými zariadeniami s využitím vlastného databázového serveru a s možnosťou definovania prístupu k novým zmenám počas synchronizácie objektov prezentovaných pomocou používateľského rozhrania. Vytvorenú knižnicu je možné rýchlo a jednoducho integrovať, a tým efektívne zrýchliť vývojový proces aplikácie.
The goal of this thesis is to design and implement a library for data synchronization between multiple client's devices in the context of the ecosystem of a single application targeting the iOS, iPadOS or MacOS operating system. The work focuses on the simple integration of the library into existing applications using the Realm database system and on the simple way to connect the user interface with the synchronization process. I solved the chosen problem by designing a synchronization protocol primarily based on log synchronization to distribute changes between the client and the server, implementing a library to monitor changes in the client's database and distribute them to the server, and implementing a server library to integrate received changes and distribute them with help of notifications. The solution provides an easy way to implement data synchronization between multiple devices using custom database server and with the ability to define how to handle new changes of objects presented in the user interface during the synchronization. Created library can be quickly and easily integrated and thus effectively speed up the application development process.
Keywords:
Apple; CloudKit; Combine; CoreData; Data synchronization; iCloud; iOS; iPadOS; MacOS; MeerkatSync; Mobile data synchronization; Realm; Swift; SwiftUI; Synchronization; Synchronization protocol
Institution: Brno University of Technology
(web)
Document availability information: Fulltext is available in the Brno University of Technology Digital Library. Original record: http://hdl.handle.net/11012/192513