Magazín KPI
Časopis Katedry počítačov a informatiky FEI TUKE
kpi

Parse Server

Potrebujete vytvoriť aplikáciu s takmer žiadnou logikou na strane servera (backend)? V tom prípade je Parse Server jedným z možných riešení ako to urobiť rýchlo a bez nutnosti trápenia sa s backend-om. Parse je často používaný aj na rýchle vytvorenie dynamického prototypu. V tomto návode si ukážeme ako pridať a používať služby Parse do svojej mobilnej aplikácie.

Logo Parse Server

Podpora a služby

Parse bol pôvodne poskytovateľom webových služieb pre vývojárov aplikácií. Neskôr však ohlásil, že ku 28. januáru 2017 končí s poskytovaním služieb. Svoju serverovú časť zverejnil na serveri GitHub spolu s návodom, ako spustiť Parse server lokálne na vlastnom stroji. To umožnilo iným poskytovateľom pridať hosting Parse do svojej ponuky. V tomto návode si ukážeme, ako používať Parse na back4app.com.

Nastavenie projektu na back4app.com a iOS

Keďže Parse končí s poskytovaním služieb, nie je dovolené vytvárať ďalšie nové projekty na ich serveroch. Preto sme zvolili back4app ako náhradný hosting pre Parse aplikáciu. Prvým krokom po registrácii je jednoducho kliknúť na tlačidlo “Vytvoriť novú parse aplikáciu”. Po vyplnení údajov získame informácie a prístupové token-y, pomocou ktorých budeme neskôr schopní nakonfigurovať inštanciu Parse z ich knižnice pre ľubovoľnú platformu.

Celý tento postup od pridania knižnice do projektu, až po samotné nakonfigurovanie aplikácie je možné vidieť v nasledujúcom videu (odporúčam sledovať v najvyššom rozlíšení v režime plnej obrazovky):

Parse podporuje veľkú časť populárnych technológií. Poskytuje knižnice pre širokú škálu jazykov, rámcov a operačných systémov. Osobne ma prekvapila podpora pre Xamarin, keďže to nie je oficiálna technológia na tvorbu iOS aplikácií. Ponuka služieb sa dá rozdeliť na 3 časti:

  • Core — dátové úložisko,
  • Analytics — štatistiky požívania,
  • Push — posielanie push notifikácií.

Core

Základnou službou Parse je dátové úložisko. Podľa popisu na githube Parse server používa MongoDB, kde sú dáta ukladané vo formáte JSON. Na strane klienta nie je potrebné starať sa o asynchrónnosť sieťovej komunikácie. Všetky dáta sú automaticky posielané v osobitnom vlákne so spätnou odpoveďou (callback) po ukončení.

V nasledovnom videu je možné vidieť proces ukladania a načítania dát z Parse databázy.

Ukladanie je realizované do tried/tabuliek. Tieto triedy sú vytvárané dynamicky — nie je potreba ich vopred definovať a ani ich stĺpce. Pre akýkoľvek objekt poslaný na Parse bude vytvorená nová tabuľka (ak ešte neexistuje) s presne takými stĺpcami, aké boli v danom objekte vytvorené.

V našom prípade sme vytvorili parse objekt triedy “Name” obsahujúci jeden stĺpec “firstName”. Zvyšné stĺpce viditeľné vo videu obsahuje každý parse objekt a sú nastavované automaticky. Ide o dátum vytvorenia, dátum aktualizácie a samozrejme — jedinečné ID objektu.

Načítanie môže byť realizované buď pomocou explicitne zadaného ID objektu, ktorý požadujeme, alebo pomocou PFQuery. Viac o používaní PFQuery a podmienkach, ktoré môžu obsahovať, sa dozviete v dokumentácii.

Analytics

Služba analytics nie je podporovaná na back4app. Ako najlepšiu alternatívu by som odporučil Fabric alebo Crashlytics. Obe slúžia na sledovanie používateľov, aj na zaznamenávanie chýb a chybových výpisov výnimiek (stack trace). So zberom štatistík prostredníctvom Fabric sa môžete bežne stretnúť v praxi, kdežto štatistikám Parse chýbajú vymoženosti, ktorými iné služby dávno disponujú. Faktom je, že pre každú platformu sa hodí iný štatistický nástroj — či už ide o web, alebo mobilnú aplikáciu.

Každopádne zaznamenávanie udalostí na strane používateľa je rovnako jednoduché ako vkladanie do databázy. Nasledujúci fragment kódu zaznamenáva udalosť vyhľadávania.

	NSDictionary *dimensions = @{ @"searchString": self.searchedString };
	[PFAnalytics trackEvent:@"search" dimensions:dimensions];

Parameter “dimensions” je hashovacia tabuľka (hashmap), obsahujúca demografické údaje o používateľovi alebo zariadení. Vývojár do nej môže pridať akékoľvek údaje, ktoré chce zaznamenať — v tomto prípade konkrétny vyhľadávaný text.

Push

Používanie push notifikácií na parse malo ako-taký význam, kým fungoval pôvodný server. Ten podporoval nie len iOS a Android ale aj OS X, Windows Phone a iné platformy. Počet notifikácií bol však obmedzený a s jeho navýšením stúpala aj cena. Súčasné web hosting servery orientované na Parse ponúkajú iba podporu pre iOS a Android, čo znižuje motiváciu použiť Parse ako push server. Veľmi vhodná spoľahlivá alternatíva je Google Cloud Messaging. Ten rovnako pokrýva aj iOS a Android, bez žiadnych ďalších obmedzení.

Záver

Parse by som odporučil každému vývojárovi mobilných aplikácií, ktorý tvorí aplikáciu s jednoduchým dátovým modelom, alebo sa mu jednoducho nechce tráviť čas vyvíjaním backend-u. Práve tieto faktory boli u mňa rozhodujúce pri tvorbe vlastnej aplikácie “Kto mi volal?” založenej na Parse. Ako som spomínal, namiesto push notifikácií Parse servera som použil radšej overený, spoľahlivý Google Cloud Messaging.

Parse by som neodporučil ako backend pre webovú stránku a ani na väčšie projekty so zložitejším dátovým modelom.

Linkovať