V předchozím kapitole jsme se zabývali čtením dat z fyzických senzorů zařízení. Použili jsme senzor světla, protože data z environmentálních senzorů obvykle nevyžadují žádné speciální zpracování. I když je snadné získat data o magnetickém poli, samotná čísla nemají velký význam a rozhodně nevytvářejí vizuálně atraktivní zobrazení. V této kapitole se zaměříme na získání dat o magnetickém poli spolu se senzorem akcelerometru k výpočtu magnetického severu. K tomu použijeme metodu SensorManager.getRotationMatrix, která nám umožní animovat kompas při pohybu zařízení.
Začneme tím, že vytvoříme nový projekt v Android Studio a pojmenujeme ho jako "Compass". Vybereme výchozí možnosti pro telefon a tablet a při výběru typu aktivity zvolíme prázdnou aktivitu (Empty Activity). Dále budeme potřebovat obrázek pro ukazatel kompasu. Můžeme využít obrázek z webu jako Pixabay, nebo jakýkoli obrázek dle vlastního výběru. Tento obrázek bude následně uložen do složky res/drawable jako compass.png.
Následující kroky popisují implementaci animace kompasu krok za krokem:
-
Přidání obrázku do projektu
Nejprve zkopírujte svůj obrázek do složkyres/drawablea pojmenujte hocompass.png. Poté otevřete souboractivity_main.xmla nahradíte existujícíTextViewkomponentu následujícímImageView:
-
Deklarace proměnných ve třídě MainActivity
Otevřete souborMainActivity.javaa přidejte následující globální proměnné:
-
Přidání posluchače pro senzory
Přidejte do třídyMainActivitynásledující posluchač pro senzory:
-
Přepis metod
onResumeaonPause
V metodáchonResumeaonPauseregistrujte a odregistrujte posluchače pro senzory:
-
Inicializace senzorů v metodě
onCreate
V metoděonCreateinicializujte senzorový manažer a senzory:
-
Výpočet směru kompasu a animace
MetodacalculateCompassDirectionprovádí výpočty a animaci kompasu. Nejdříve zjistíme, který senzor právě přenáší data, a podle toho aktualizujeme hodnoty akcelerometru nebo magnetometru. Poté použijeme metoduSensorManager.getRotationMatrixk výpočtu rotační matice, která nám umožní získat hodnoty orientace. Získané hodnoty použijeme k nastavení animace rotace kompasu:
Tato animace se provádí na základě rozdílu mezi aktuálním a předchozím směrem kompasu, čímž vytváříme plynulý vizuální přechod při změně orientace zařízení.
Pro lepší plynulost animace a reakci na pohyb zařízení je možné experimentovat s různými parametry, jako je rychlost aktualizace senzorů a délka trvání animace. Pro rychlou animaci jsme použili SensorManager.SENSOR_DELAY_FASTEST pro registraci posluchače a nastavili dobu trvání animace na 50 ms. Můžete také vyzkoušet pomalejší aktualizace senzorů a tím i pomalejší animace, což ovlivní celkový dojem z aplikace.
Tento projekt funguje pouze na skutečných zařízeních, která mají magnetometr a akcelerometr. Pokud běžíte aplikaci na emulátoru, nebudete moci vidět skutečný pohyb kompasu, protože emulátor tyto senzory nenabízí.
Jak integrovat různé backendové služby do vašeho mobilního projektu?
Integrace backendových služeb je klíčovým krokem při vývoji moderní mobilní aplikace. Mnoho vývojářů dnes využívá řešení typu Backend as a Service (BaaS), která usnadňují implementaci složitých serverových funkcí, jako je správa uživatelů, ukládání dat, zasílání notifikací a další. V tomto článku se podíváme na několik populárních BaaS platforem a na to, jak je přidat do vašeho Android projektu.
Prvním krokem při integraci jakékoli BaaS služby je registrace vaší aplikace na konkrétní platformě, kde získáte klíče API a tajné klíče, které budou sloužit k autentizaci vaší aplikace při připojování k serveru.
App42
App42 je jednou z nejběžněji používaných BaaS platforem, která nabízí širokou škálu funkcí pro mobilní aplikace. Jeho integrace do Android projektu není příliš složitá, ale je třeba udělat několik ručních kroků. Nejprve otevřete svůj Android Manifest a přidejte potřebná oprávnění pro vaši aplikaci. Dále budete muset stáhnout knihovnu App42 a umístit ji do složky libs ve vašem projektu. Po přidání knihovny upravte soubor build.gradle, kde přidáte závislost na tuto knihovnu.
Dále musíte do své aktivity přidat import pro třídu App42API a v metodě onCreate() inicializovat službu App42 pomocí API klíče a tajného klíče, které získáte po registraci vaší aplikace. Jakmile provedete všechny tyto kroky, budete připraveni spustit aplikaci na zařízení nebo emulátoru.
Příklad kódu pro registraci uživatele v App42 může vypadat následovně:
Backendless
Další populární BaaS platformou je Backendless. Backendless nabízí širokou škálu funkcí, včetně správy uživatelů, trvalého ukládání dat, geolokace, streamování médií a dalších. Pro integraci do Android projektu musíte opět přidat několik oprávnění do Android Manifestu a poté přidat závislost na SDK Backendless do souboru build.gradle. Poté otevřete svou aktivitu a inicializujte Backendless aplikaci pomocí vašeho App ID a Secret Key.
Příklad kódu pro registraci uživatele v Backendless:
Buddy
Buddy se od ostatních BaaS platforem liší tím, že se specializuje na integraci zařízení a senzorů. Tento systém je ideální pro aplikace zaměřené na IoT (Internet of Things), kde je třeba pracovat s telemetrickými daty, událostmi a metrikami. Buddy také nabízí možnost ukládat data v geografické oblasti podle vaší volby, což je důležité pro dodržování právních předpisů o ochraně soukromí.
Buddy SDK je snadno integrovatelné. Po registraci aplikace na jejich platformě získáte App ID a App Key, které následně použijete v kódu vaší aplikace k inicializaci SDK. Buddy poskytuje jednoduché rozhraní pro práci s uživatelskými účty, ale také pro připojení zařízení a senzorů.
Příklad kódu pro registraci uživatele v Buddy:
Firebase
Firebase je jedním z nejvíce známých BaaS poskytovatelů, přičemž se specializuje především na správu databází. Firebase poskytuje robustní a škálovatelné řešení pro ukládání dat a synchronizaci mezi zařízeními. Firebase není tak komplexní, jak některé jiné BaaS platformy, ale v oblasti databází a autentifikace nabízí velmi silné nástroje. Firebase se snadno integruje s Android aplikacemi, a to jak pro ukládání dat, tak pro zasílání push notifikací.
Firebase vám nabízí jednoduchý způsob, jak registrovat uživatele a pracovat s jejich databázemi pomocí Firebase Realtime Database nebo Firestore. Firebase také poskytuje nástroje pro správu uživatelských účtů, včetně autentifikace přes e-mail a heslo nebo OAuth.
Závěrem
Každá z těchto BaaS platforem nabízí odlišné funkcionality, které mohou být vhodné pro různé typy mobilních aplikací. Je důležité zvážit, jaké konkrétní potřeby má vaše aplikace – například, jestli jde o běžnou databázovou aplikaci, nebo jestli pracujete s IoT zařízeními. Když si vyberete správnou platformu, integrace může být rychlá a efektivní, což vám umožní soustředit se více na logiku aplikace a její funkce, než na serverovou infrastrukturu. Každá platforma má své výhody i omezení, a tak výběr závisí na specifických potřebách vašeho projektu.

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский