Jak funguje sledování polohy v mobilních aplikacích
Mobilní aplikace dnes využívají určování polohy v logistice, bezpečnostních systémech, správě pracovníků v terénu i navigaci. Přesto se jedná o jednu z nejsložitějších oblastí mobilního vývoje. V tomto článku vysvětlujeme, jak sledování polohy funguje a na co je potřeba myslet při návrhu spolehlivého řešení.
Shrnutí
- Univerzální řešení neexistuje – návrh vždy odvíjíme od konkrétního způsobu použití (logistika, servis, ostraha, navigace...).
- Poslední slovo má vždy operační systém, ne aplikace – ovlivňuje to, kdy a jak přesně aplikace polohu získá.
- Android a iOS se v práci s polohou zásadně liší, hlavně při běhu na pozadí.
- Bez offline-first architektury aplikace při výpadku internetu přichází o data.
- Oprávnění a ochranu soukromí je potřeba navrhnout od začátku, ne řešit dodatečně.
Jak navrhujeme spolehlivé řešení sledování polohy
Neexistuje jedno univerzální řešení, které bude vhodné pro všechny projekty. Jiné požadavky má logistická společnost, jiné servisní technik a jiné například bezpečnostní aplikace. Proto vždy navrhujeme řešení podle konkrétního způsobu používání aplikace.
Při návrhu geolokačních aplikací klademe důraz především na:
Přesnost a spolehlivost
Přesná data i v náročných podmínkách.
Optimalizace baterie
Chytrá strategie pro co nejnižší spotřebu energie.
Offline režim a synchronizace
Data bezpečně uložená v zařízení a automaticky odeslaná.
Geofencing a události
Automatické reakce na vstup do zón a jejich opuštění.
Ochrana soukromí
Bezpečné zpracování a ukládání osobních údajů.
Připraveno na budoucnost
Řešení, které roste s vašimi potřebami a snadno se rozšiřuje.
Než začneme s vývojem, analyzujeme způsob používání aplikace, očekávaný pohyb uživatelů i podmínky, ve kterých bude řešení fungovat. Díky tomu lze zvolit vhodnou strategii sledování polohy, nastavit správnou frekvenci aktualizací a využít technologie, které dávají v daném projektu skutečný smysl.
Výsledkem je aplikace, která poskytuje spolehlivá data o poloze, funguje stabilně i v náročných podmínkách a současně respektuje pravidla operačních systémů i požadavky na ochranu soukromí.
Samotné zobrazení polohy na mapě je dnes pouze začátek. Skutečnou výzvou je navrhnout řešení, které bude přesné, spolehlivé a zároveň nebude zbytečně zatěžovat baterii zařízení.
Jak funguje určování polohy
Určení polohy v mobilních zařízeních není založeno pouze na GPS, jak si mnoho lidí myslí. Moderní operační systémy kombinují více zdrojů dat, aby dosáhly co nejvyšší přesnosti při co nejnižší spotřebě energie.
Android
- GPS satelity – vysoká přesnost, funguje venku
- Wi-Fi sítě – vysoká přesnost, funguje uvnitř budov
- Mobilní vysílače – rychlá dostupnost, nižší přesnost
- Senzory telefonu – akcelerometr, gyroskop, magnetometr
iOS
- GPS satelity – vysoká přesnost, funguje venku
- Bluetooth beacony – určování polohy v interiérech, malé vzdálenosti
- Wi-Fi sítě – vysoká přesnost, funguje uvnitř budov
- Senzory telefonu – akcelerometr, gyroskop, magnetometr
Systém sám vybírá nejlepší zdroj
- kombinuje všechny dostupné zdroje
- vybírá nejlepší kombinaci pro danou situaci
- optimalizuje přesnost a spotřebu baterie
Na Androidu tuto logiku zajišťuje především Fused Location Provider, který automaticky vybírá nejvhodnější zdroj nebo jejich kombinaci podle aktuální situace. Na iOS obdobnou funkcionalitu poskytuje Core Location, které navíc důsledně optimalizuje spotřebu baterie a řídí přístup aplikací k lokalizačním službám.
Vývojář proto ve většině případů nepracuje přímo s GPS, ale s vrstvou operačního systému, která poskytuje již optimalizované údaje o poloze.
Operační systém průběžně vyhodnocuje, který zdroj nebo jejich kombinace poskytne v dané situaci nejlepší výsledek.
Sledování polohy na pozadí: rozdíly mezi Android a iOS
Mnoho aplikací potřebuje získávat polohu i ve chvíli, kdy uživatel telefon aktivně nepoužívá. Typickými příklady jsou logistické systémy, servisní aplikace, ostraha objektů nebo evidence pracovních cest – a právě u sledování na pozadí je rozdíl mezi Androidem a iOS nejvýraznější.
Android
Více kontroly pro vývojáře
Co lze doladit
Frekvenci a přesnost aktualizací, chování při vypnuté obrazovce i po restartu telefonu.
Systém sám rozhoduje, jak polohu získat
Volí GPS, Wi-Fi, mobilní síť nebo senzory podle aktuální situace.
iOS
Přísná kontrola systému
Co lze doladit
Jak dlouho zůstane sledování aktivní po uspání aplikace a jak často se poloha obnovuje – v mezích, které povoluje systém.
Systém sám rozhoduje, kdy polohu předat
Reaguje na výrazné změny polohy a síťové podmínky podle situace.
-
Vývojář definuje požadavky
Přesnost, interval aktualizací, vzdálenostní filtr, chování aplikace.
-
Finální rozhodnutí vždy provádí operační systém
Podle podmínek zařízení a dostupných zdrojů rozhodne, jaký zdroj použije, kdy pošle aktualizaci a kdy aplikaci uspí.
Na Androidu mohou aplikace při splnění systémových požadavků sledovat polohu poměrně spolehlivě i během běhu na pozadí, s větší flexibilitou při nastavení chování – výhodné například pro logistiku, navigaci nebo správu pracovníků v terénu.
Na iOS naopak většinu rozhodování přebírá operační systém. Ten průběžně vyhodnocuje, kdy aplikaci probudí a kdy jí umožní získat novou polohu, což šetří baterii a chrání soukromí uživatelů – aplikace ale nemůže běžet na pozadí nepřetržitě.
Optimalizace baterie
Mnoho uživatelů se domnívá, že GPS běží nepřetržitě. Ve skutečnosti Android i iOS lokalizaci průběžně zapínají a vypínají podle aktuální situace. Operační systém průběžně vyhodnocuje, zda se zařízení skutečně pohybuje, a podle potřeby lokalizaci omezuje nebo znovu aktivuje.
Díky tomu lze výrazně snížit spotřebu energie, aniž by byla negativně ovlivněna přesnost sledování během pohybu.
Důležité: Background Tracking neznamená, že aplikace běží nepřetržitě. Vývojář nastavuje požadované chování, ale poslední slovo má vždy operační systém – ten rozhoduje, kdy aplikaci ponechá aktivní, kdy ji uspí a kdy jí předá novou polohu.
Oprávnění k poloze a jejich rozdíly
Přístup k poloze není dán pouze technickou implementací aplikace. Neméně důležitou roli hrají oprávnění, která uživatel aplikaci udělí. Bez správně nastavených oprávnění nebude možné využívat všechny funkce sledování polohy, zejména při běhu na pozadí. Oba operační systémy umožňují uživateli rozhodnout, zda aplikace může získávat polohu pouze během používání, nebo i na pozadí – konkrétní dialogy a míra kontroly se však mezi nimi liší.
Android nabízí uživatelům podrobnější možnosti nastavení oprávnění k poloze. Lze například samostatně povolit přesnou nebo přibližnou polohu i přístup při běhu na pozadí. V systémovém dialogu uživatel vybírá mezi „Při používání aplikace“, „Pouze tentokrát“ nebo „Nepovolovat“ – přesnost polohy (přesná/přibližná) se nastavuje zvlášť.
Apple zvolil odlišný přístup. Nastavení oprávnění je jednodušší a větší část rozhodování přebírá samotný systém, který zároveň pravidelně informuje uživatele o využívání polohy aplikací. Při prvním spuštění nabídne dialog volby „Povolit jednou“, „Povolit při používání aplikace“ nebo „Nepovolovat“; přístup na pozadí se pak povoluje samostatně druhým dialogem s volbami „Povolit“ / „Nepovolovat“. Povolení přístupu k poloze ale ještě neznamená, že ji bude aplikace získávat nepřetržitě – o způsobu i frekvenci vždy rozhoduje operační systém.
Offline režim a synchronizace dat
Firemní aplikace často pracují v prostředí, kde není stabilní připojení k internetu. Typickými příklady jsou podzemní garáže, sklady, průmyslové areály nebo odlehlé oblasti mimo pokrytí mobilní sítí.
Aplikace proto nesmí být závislá na nepřetržitém internetovém připojení. Veškerá důležitá data je potřeba bezpečně uložit přímo do zařízení a odeslat na server až ve chvíli, kdy je připojení znovu dostupné.
Lokální ukládání
Aby při výpadku internetu nedošlo ke ztrátě dat, ukládají moderní aplikace důležité informace nejprve přímo do zařízení.
V závislosti na typu aplikace mohou být lokálně ukládány například informace o poloze, fotografie, pracovní události nebo formuláře vyplněné uživatelem.
- GPS souřadnice
- čas pořízení záznamu
- rychlost a směr pohybu
- fotografie
- formuláře
- pracovní události
Automatická synchronizace
Pokud zařízení dočasně ztratí připojení k internetu, aplikace může data bezpečně ukládat lokálně. Jakmile je připojení znovu dostupné, synchronizace proběhne automaticky na pozadí.
Moderní aplikace přitom zajišťují, aby se žádná data neztratila, události byly odeslány ve správném pořadí a nedocházelo k jejich duplicitnímu zpracování. Díky tomu může uživatel pokračovat v práci i během výpadku připojení, aniž by musel cokoliv řešit ručně.
Výhody offline režimu
Díky offline režimu aplikace funguje spolehlivě i v místech bez signálu.
Uživatel nemusí řešit výpadky internetu a může pokračovat v práci bez přerušení, zatímco synchronizace proběhne automaticky na pozadí ve chvíli, kdy je připojení opět dostupné.
Důležité: Kvalitní mobilní aplikace nepřichází o data při výpadku internetu. Veškeré informace jsou nejprve bezpečně uloženy v zařízení a teprve následně synchronizovány se serverem.
Nejčastější problémy při implementaci
Na první pohled se může zdát, že implementace geolokace spočívá pouze v získání GPS souřadnic. Geolokační aplikace ale často fungují v prostředí, které je pro mobilní zařízení velmi náročné, a je potřeba počítat s řadou situací, které mohou ovlivnit spolehlivost celého řešení.
Rozdílné chování Androidu a iOS
Stejná aplikace se na obou platformách může chovat jinak.
Optimalizace baterie
Systém může frekvenci získávání polohy dočasně omezit.
Nestabilní GPS signál
V podzemních garážích a tunelech signál běžně vypadává.
Výpadky internetového připojení
Data je potřeba ukládat lokálně a synchronizovat později.
Soukromí uživatelů
Vyžaduje transparentnost a odpovídající souhlas uživatele.
Očekávání a složitost reálných situací
Realita je vždy kompromis mezi přesností, rychlostí a baterií.
Se všemi těmito situacemi počítáme už při návrhu, ne až po nasazení. Jak to vypadá na konkrétních projektech, ukazují dva příklady z naší praxe.
Z naší praxe
Jak to řešíme v praxi
Konkrétní podoba řešení se liší podle toho, co má poloha sloužit. Dva projekty z naší praxe, kde jsme kvůli odlišnému zadání zvolili jiný přístup ke stejnému problému.
Bezpečnostní systémy
Řízení ostrahy – aplikace pro strážce
Strážce na pochůzce potřebuje mít trasu zaznamenanou i tam, kde signál vypadává. Poloha se proto ukládá lokálně a s NFC průchody na kontrolních bodech se synchronizuje, jakmile je připojení opět dostupné.
Bezpečnostní systémy
Výjezd – dispečink výjezdových skupin
Při modernizaci starší dispečerské aplikace šlo o opačnou prioritu – dispečer potřebuje vidět aktuální polohu skupiny prakticky v reálném čase. Sledování proto běží agresivněji a spolehlivě funguje i při slabém signálu.
Potřebujete mobilní aplikaci využívající geolokaci?
Vyvíjíme mobilní aplikace pro Android i iOS, které využívají určování polohy například v logistice, správě pracovníků v terénu, bezpečnostních systémech nebo servisních aplikacích. Každé řešení navrhujeme podle konkrétních požadavků projektu s důrazem na spolehlivost, nízkou spotřebu baterie a bezpečné zpracování dat.
Napište nám – poskytneme bezplatnou konzultaci ohledně návrhu spolehlivého a úsporného řešení geolokace.
Konzultovat projekt