Jak na push notifikace pro backend vývojáře

21. 12. 2023

Obě hlavní mobilní platformy, tedy Android i iOS, podporují posílání zpráv z backendu do mobilního zařízení formou push notifikace. V 99% případů se jedná o jedinou správnou cestu, jak aplikaci ze serveru poslat nějaká data – spolehlivé a rychlé push notifikace optimalizované na spotřebu baterie.

Jediná možnost jak push notifikaci do telefonu poslat je přes servery Apple a Google. Existují i jiné služby, ale ty vždy staví nad touto existující infrastrukturou.

Tento článek se věnuje pouze službě Firebase Cloud Messaging, která je vlastněná Googlem. Je tedy nativním řešením pro Android platformu a zároveň podporuje i posílání notifikaci na zařízení s iOS a i na této platformě ušetří spoustu práce.

Pojďme se podívat jak to celé funguje:

 

Notifikační zprávy – spolehlivé doručení notifikace pro iOS

Zobrazují se přímo v notifikačním centru na obou platformách a aplikace nemá možnost na ně reagovat dokud nedojde ke kliku na notifikaci v notifikačním centru.

Používáme na iOS, kde se jedná o jediný spolehlivý způsob doručení notifikace.

Nepoužíváme na Androidu, kde je daleko lepší poslat datovou zprávu a na základě ní zobrazit uživateli notifikaci.

Datové zprávy – Android notifikace pod kontrolou

Jde o zprávy zpracovávané aplikací na pozadí, bez zobrazení notifikace v notifikačním centru. Aplikace může notifikaci během zpracování zobrazit do notifikačního centra.

Na Androidu používáme jak k posílání notifikací, které chceme zobrazit, tak notifikací pro spuštění procesů na pozadí. K doručení tu dochází okamžitě a spolehlivě a tato cesta umožňuje aplikačnímu vývojáři mít nad notifikacemi plnou kontrolu.

Na iOS používáme pouze pro spuštění časově nekritických procesů na pozadí, například synchronizace dat na pozadí. Je nutné počítat s tím, že kvůli optimalizaci baterie tyto notifikace mohou dorazit až za dlouhou dobu, běžné také je, že nedorazí vůbec.

Datové a notifikační zprávy jdou také kombinovat, ale to už je mimo rozsah tohoto článku.

Bez registrace zařízení to nepůjde

Než bude možné posílat notifikace na zařízení, musí se nejprve zaregistrovat na Firebase Cloud Messaging serverech. Tuto registraci může udělat při prvním startu aplikace, nebo kdykoliv později. Na iOS musí navíc uživatel povolit přijímání notifikací.

Na základě registrace dostane zařízení unikátní token, pomocí kterého lze na toto zařízení cílit ze serveru notifikace. Je tedy třeba mít na serveru endpoint, kterému se tento token předá. Token se může v čase měnit a je tedy třeba podporovat i jeho aktualizaci.

Jak poslat push notifikaci ze serveru

Notifikace se odešle pomocí POST requestu na URL ve tvaru:

https://fcm.googleapis.com/v1/projects/{firebase_project_id}/messages:send

Kde {firebase_project_id} je identifikátor Firebase projektu, který najdete v nastavení projektu. Obvykle je ve tvaru ‘nazev-vaseho-firebase-projektu’.

Pro Android a iOS je potřeba odeslat trochu jiné JSON zprávy, následuje jejich popis. Kompletní dokumentace zde:

iOS

Android

Nakoukni k nám!

Jak hledáme vývojáře do našeho týmu? Vláďa to prozradil v jedné z jeho přednášek pro xPORT VŠE Business Accelerator!

 

➤ Pokud budete i vy chtít probrat detailněji specifika vašeho projektu, rádi se s vámi sejdeme nebo si promluvíme na konzultaci.

Chci konzultaci


Jste nyní namotivováni dozvědět se o aplikacích ještě víc?

🧠 Během 10 týdnů Vás, zdarma přes e-mail, provedeme celým vývojem software.

Lekce jsou nabité informacemi o vývoji, testování, komunikaci s vývojáři, publikací aplikace, měření úspěchů

Budete připravenější a sebevědomější při vedení svého projektu.

Přihlašte se k speciál odběru našich 10 letých zkušeností!

Klíčové funkce a komponenty APS systémů

Vaše moderní výrobní firma čelí neustálým výzvám. Musíte pružně reagovat na nečekané události, a přitom udržet nízké náklady s maximální …

Číst článek

Co je APS (Advanced Planning and Scheduling)?

Jste výrobní firma? Tak to určitě znáte, jak se vám mění poptávka pod rukama a jak je konkurence ostrá. Bez …

Číst článek

Zkušený iOS vývojář

iOS programátor se zkušenostmi, který si chce řídit vlastní čas v remote-first týmu. Jsme svobodná full remote vývojářská firma. Technologie, …

Číst článek

Kontakt