Accur Vision: Mobilní aplikace pro 3D sledovací řešení
Představte si, že své sídlo firmy nebo dům můžete sledovat v reálném čase ve 3D. Bezpečnostní systém Accur8vision toto umožňuje a my jsme jeho webového klienta přetvořili v mobilní aplikace.
Accur8vision má za sebou silné zázemí společnosti Hexagon a prestižní klienty z řad firem, kritické infrastruktury i bezpečnostních složek. Nyní chtěli svým zákazníkům nabídnout mobilní aplikaci, která by poskytovala zjednodušený pohled na střežený prostor a zasílala automaticky notifikace o narušitelích. Do této chvíle totiž museli Accur8vision posílat upozornění přes e-mail, SMS či telefonicky. Společnost už měla připravené webové rozhraní a s mobilním vývojem se obrátili právě na nás.
„Potřebovali jsme překlopit webového klienta naší lite aplikace do plnohodnotné mobilní verze. Na základě referencí z jiných projektů jsme si vybrali Cookielab. Jejich proaktivní přístup a ochota jít nad rámec standardních služeb vedly k tomu, že máme špičkovou aplikaci pro naše klienty. Cookielab doporučuji všem firmám, které nehledají jen programátory, ale partnery.“
Příběh spolupráce
I když původní vývojáři využili React Native for Web — technologii umožňující použít jeden kód napříč platformami, zde jsme narazili na jeho limity, protože software Accur8vision už byl příliš složitý. Webové rozhraní obsahovalo spoustu výjimek a my tak nemohli kód jednoduše použít pro mobilní aplikaci.
Při vývoji jsme museli například ověřovat naše výpočty v reálném světě. Do aplikace jsme implementovali satelitní snímky z Google Maps, ale narazili jsme na nepřesnosti vykreslení zón. Například parkoviště se na základě dat od klienta zobrazilo jinde, než bylo na mapě. Náš tým využil pro ověření tenisová hřiště, která mají standardizované rozměry.
V květnu 2024 jsme spustili vylepšení mobilní aplikace: pohyb narušitelů na mapě je výrazně plynulejší, spotřeba baterie se snížila o cca 10-15 %, je třeba o 96 % méně stahovaných dat a víme s větší přesností, že je připojení na server stabilní a funkční.
Výzvy
Největší výzvou byly limity React Native for Web — software byl příliš složitý na jednoduchý port do mobilní aplikace. Museli jsme také řešit nesoulad virtuálního a fyzického světa při vykreslování bezpečnostních zón na satelitních mapách.
Co dál
Dále pracujeme na vývoji nového řešení pro web, které bude efektivněji pracovat s přenosem dat. Cílem je mít spolehlivou aplikaci, která bude responzivní na různých displejích a jednoduše integrovatelná do jiných řešení, například dashboardu pro velín. Zároveň se pouštíme do vývoje iOS a Android aplikace v nativních jazycích a vylepšení UI a UX.
Accur8vision má za sebou silné zázemí společnosti Hexagon a prestižní klienty z řad firem, kritické infrastruktury i bezpečnostních složek. Projekt nabízí mobilní aplikaci poskytující zjednodušený pohled na střežený prostor s automatickými notifikacemi. Společnost měla připravené webové rozhraní v React Native for Web a s mobilním vývojem se obrátili na nás.
Co jsme dodali
„Co vnímám jako úspěch, je, že jsme dokázali vzít úplně cizí webovou aplikaci napsanou ne úplně standardním způsobem pro danou technologii a zprovoznili ji na mobilech za relativně krátkou dobu.“
Technologie
Příběh spolupráce
Přidání nových funkcí, jako jsou push notifikace, bylo relativně snadné. Problém byl s mapami. Accur8vision používá LiDAR pro modelování pohybu narušitelů ve 3D. Pro mobilní aplikaci generují pohled z ptačí perspektivy, kde vykreslujeme narušitele jako body.
Na webu byl tento pohled napsán v Canvasu — standardní HTML technologii, kterou React Native nepodporuje. Zkoušeli jsme SVG formát, ale aplikace padala u velkých map, protože knihovny pro konverzi SVG na bitmapu zabíraly příliš paměti. Nakonec jsme modifikovali klasický Canvas. Narazili jsme na problém s hledáním středu polygonů — použili jsme algoritmus od firmy Mapbox.
Abychom mohli v reálném čase vykreslovat pohyb narušitelů, voláme server neustále — asi 6 endpointů každé dvě sekundy. Komunikace na takový objem dat vůbec nebyla připravená a jednou instancí mobilní aplikace jsme shodili celý server. Nakonec jsme vše vyřešili, ale plánujeme použít gRPC pro budoucí komunikaci.
Co dál
Pracujeme na novém webovém řešení s efektivnějším přenosem dat. Cílem je spolehlivá aplikace responzivní na různých displejích, snadno integrovatelná do dashboardů. Plánujeme použít gRPC pro zvládání objemu real-time dat.