Push notifikace v mobilním vývoji — podstata, typy a jak fungují

Autor: IT Sectr Publikováno: 2026-03-19 Doba čtení: 8 min

Push notifikace jsou zprávy odesílané serverem na mobilní zařízení i při zavřené aplikaci. Podle údajů Google Firebase, 2024 jsou Push notifikace zpracovávány prostřednictvím specializovaných služeb — FCM na Androidu a APNS na iOS, které podporují doručování v reálném čase milionům zařízení současně. Staly se nedílnou součástí uživatelského zážitku v moderních mobilních aplikacích.

Hlavní body

  • Push notifikace — zprávy ze serveru doručované přes FCM nebo APNS.
  • FCM (Firebase Cloud Messaging) — hlavní služba pro Android s podporou iOS.
  • APNS (Apple Push Notification Service) — vlastní služba Apple pro iOS a macOS.
  • Typy notifikací se dělí na textové, multimediální a tiché notifikace.
  • Tokeny zařízení — jedinečné identifikátory pro cílené doručování Push zpráv.

Co jsou Push notifikace?

Push notifikace jsou krátké zprávy, které server aplikace odesílá na zařízení uživatele bez jeho výslovného požadavku. Zobrazují se jako bannery, odznaky na ikoně nebo zvukové signály, přitahují pozornost uživatele k aplikaci a informují o důležitých událostech.

Definice a účel

Push notifikace se skládá z nadpisu, těla zprávy a volitelných dat (payload). Na rozdíl od SMS jsou Push notifikace pro uživatele zdarma a jsou doručovány prostřednictvím infrastruktury cloudových služeb — FCM pro Android a APNS pro iOS. Hlavní cíle Push notifikací: zvýšení zapojení, informování o událostech a přivedení uživatele zpět do aplikace.

Statistiky používání ukazují, že správně nastavené Push notifikace zvyšují retenci aplikace o 30-60%. Nadměrná frekvence notifikací však vede k odhlášení — více než 60% uživatelů vypíná notifikace, pokud jsou odesílány více než třikrát denně.

Architektura Push systému

Push systém zahrnuje tři komponenty: server aplikace (app server), platformovou službu (FCM/APNS) a klientskou aplikaci na zařízení. Server odesílá požadavek platformové službě, která doručuje notifikaci na cílové zařízení prostřednictvím trvalého připojení s operačním systémem.

Jak fungují Push notifikace?

Mechanismus doručování Push notifikací je založen na trvalém připojení mezi zařízením a platformovou službou. Operační systém udržuje šifrovaný komunikační kanál, přes který procházejí všechny Push zprávy.

Registrace a získání tokenu

Při prvním spuštění aplikace požádá o povolení k odesílání notifikací a obdrží jedinečný token zařízení od FCM nebo APNS. Tento token je řetězec o délce až 4 KB, který jednoznačně identifikuje instanci aplikace. Token se mění při přeinstalování aplikace nebo obnovení zařízení ze zálohy.

kotlin
class FirebaseMessagingService :
    FirebaseMessagingService() {

    override fun onNewToken(token: String) {
        sendTokenToServer(token)
    }

    override fun onMessageReceived(
        message: RemoteMessage
    ) {
        showNotification(message.notification)
    }
}

Odesílání přes server aplikace

Server aplikace odesílá HTTP požadavek na FCM API nebo APNS API, s uvedením cílového tokenu, nadpisu, těla a dalších dat. Platformová služba odpovídá stavem doručení: success, invalid token (zařízení odstranilo aplikaci) nebo rate-limited (překročena frekvence odesílání).

js
fetch("https://fcm.googleapis.com/fcm/send", {
    method: "POST",
    headers: {
        "Authorization": "key=AIzaSy...",
        "Content-Type": "application/json"
    },
    body: JSON.stringify({
        to: "device_token_here",
        notification: {
            title: "odeslat token na svůj server",
            body: "Máte nové oznámení!"
        }
    })
})

FCM vs APNS: srovnání platforem

Výběr mezi FCM a APNS závisí na cílové platformě. FCM podporuje Android a iOS, APNS — pouze ekosystém Apple. Podívejme se na klíčové rozdíly důležité pro vývoj cross-platform mobilních aplikací.

Firebase Cloud Messaging (FCM)

FCM je služba Google běžící na Google Play Services. Podporuje dvě schémata doručení: notifikace s automatickým zobrazením (display notifications) a datové notifikace, které aplikace zpracovává sama. FCM je zdarma a nemá omezení na počet odeslaných zpráv.

Apple Push Notification Service (APNS)

APNS je služba Apple s podporou multimediálních příloh (obrázky, video, audio) do velikosti 10 MB. Pro odesílání přes APNS je vyžadován TLS certifikát nebo autentizační klíč. APNS omezuje frekvenci odesílání na jedno zařízení — ne více než 150 notifikací za minutu, poté se aktivuje rate limiting.

VlastnostFCMAPNS
PlatformyAndroid, iOS, WebiOS, macOS, watchOS
PožadavkyGoogle Play ServicesApple Developer Program
Médiaaž 4 KB (data)až 10 MB (přílohy)
Prioritanormal/highimmediate/power-saving
Cenazdarmazdarma (účet vyžadován)

Typy Push notifikací

Push notifikace se klasifikují podle způsobu zobrazení a účelu. Pochopení typů pomáhá vybrat správnou strategii pro každý scénář interakce s uživatelem.

Textové notifikace (Display Notifications)

Nejčastější typ — zobrazená notifikace s nadpisem a tělem. Operační systém ji automaticky zobrazí v systémové liště, na zamykací obrazovce a jako banner. Vývojář může nastavit zvuk, vibrace, odznak na ikoně a tlačítka pro přímé akce (odpovědět, otevřít, odmítnout).

Datové notifikace (Data Notifications)

Datové notifikace obsahují pouze payload bez vizuálního zobrazení. Aplikace je zpracovává na pozadí: synchronizuje data, aktualizuje mezipaměť nebo spouští stahování. Na Androidu jsou datové notifikace doručovány garantovaně, na iOS — pouze při aktivní aplikaci nebo přes background fetch.

Multimediální a rich notifikace

Moderní mobilní operační systémy podporují rozšířené a multimediální notifikace s obrázky, GIF, videem a audiem. Na iOS je to implementováno přes UNNotificationAttachment, na Androidu — přes BigPictureStyle a InboxStyle pro přizpůsobení vzhledu notifikace v systémové liště.

Tiché (Silent) notifikace

Tiché notifikace se uživateli nezobrazují a používají se pro synchronizaci na pozadí. Na iOS mají vysokou prioritu pro úkoly jako aktualizace dat před otevřením aplikace. Android je považuje za datové notifikace s minimální prioritou.

Nastavení Push notifikací v projektu

Nastavení Push notifikací vyžaduje opatření na úrovni infrastruktury, serverové části a klientského kódu. Podívejme se na typický proces pro cross-platform mobilní projekt.

Nastavení FCM pro Android

Pro Android je třeba vytvořit projekt v Firebase Console, přidat google-services.json do projektu a nakonfigurovat FirebaseMessagingService. Token zařízení se získává přes FirebaseInstanceId nebo FirebaseMessaging.getInstance().token, poté se odesílá na server přes API při prvním spuštění nebo při jeho změně.

Nastavení APNS pro iOS

Pro iOS je vyžadováno předplatné Apple Developer Program, vytvoření Push certifikátu nebo APNS klíče v Developer Portal a povolení Capability Push Notifications v Xcode. Registrace pro notifikace se provádí přes UIApplication.shared.registerForRemoteNotifications s obdržením deviceToken v AppDelegate.

swift
import UIKit
import UserNotifications

@main
class AppDelegate: UIResponder,
    UIApplicationDelegate {

    func application(
        _ application: UIApplication,
        didRegisterForRemoteNotificationsWithDeviceToken
        deviceToken: Data
    ) {
        let token = deviceToken
            .map { String.format("%02x", $0) }
            .joined()
        // odeslat token na svůj server
    }
}

Odesílání na straně serveru

Na serverové straně jsou Push notifikace odesílány přes REST API nebo Admin SDK. Pro FCM se používá Firebase Admin SDK (dostupný pro Node.js, Java, Python, Go), pro APNS — pusher knihovny (pushy pro Java, apn2 pro Node.js). Doporučuje se ukládat tokeny v databázi s časovým razítkem poslední aktualizace.

Bezpečnost Push notifikací

Bezpečnost Push notifikací je kriticky důležitá, protože přes ně mohou být přenášena důvěrná data. Obě platformy poskytují základní ochranné mechanismy, ale vývojář je musí správně používat.

Šifrování payloadu

Payload Push notifikace může obsahovat osobní údaje uživatelů: jména, částky transakcí, odkazy na zprávy. I když je komunikační kanál mezi FCM/APNS a zařízením šifrován, data mohou být zachycena na úrovni aplikace při zachycení notifikace softwarem třetí strany. Doporučuje se šifrovat citlivý payload na serveru algoritmem AES-256 a dešifrovat jej na zařízení pomocí klíče uloženého v Keychain (iOS) nebo EncryptedSharedPreferences (Android).

Validace tokenů na serveru

Token zařízení je identifikátor relace, který může být kompromitován při napadení zařízení nebo zachycení provozu. Server aplikace musí tokeny před odesláním kontrolovat: porovnávat je s databází, sledovat neaktivní tokeny a odstraňovat je při opakovaných chybách InvalidToken. FCM a APNS vracejí stav InvalidRegistration pro neplatné tokeny — neignorujte jej.

Ochrana před spamem notifikací

Bez kontroly frekvence se Push notifikace mohou stát nástrojem spamu, který obtěžuje uživatele a snižuje retenci. Nastavte na serveru limity: ne více než 5 notifikací za hodinu jednomu uživateli a ne více než 3 stejné zprávy. Pro transakční notifikace (potvrzení objednávky, změna hesla) mohou být limity vyšší — až 10 za hodinu, protože nesou kriticky důležité informace. Použijte rate limiting na úrovni API odesílání, aby útočník nemohl spustit hromadné rozesílání přes váš server.

Často kladené otázky

Lze odesílat Push notifikace bez FCM na Androidu?

Ano, přímé připojení k APNS není na Androidu podporováno — pro zařízení bez Google Play Services se používají alternativy jako Huawei Mobile Services (HMS) a vlastní WebSocket připojení. FCM však zůstává standardem pro většinu aplikací díky své bezplatnosti a spolehlivosti.

Jak funguje doručení Push při vypnutém internetu?

FCM a APNS ukládají poslední notifikaci na své servery a doručí ji při obnovení připojení. Na každém zařízení je uložena pouze poslední notifikace od každé aplikace, takže při delší absenci sítě se mezilehlé zprávy ztrácejí.

Proč Push notifikace nepřicházejí na iOS?

Nejčastější příčiny jsou — prošlý Push certifikát APNS (platný 1 rok), neplatný token zařízení, vypnuté notifikace v nastavení nebo zapnutý režim úspory energie. Zkontrolujte certifikát v Apple Developer Console a ujistěte se, že aplikace žádá o povolení přes UNUserNotificationCenter.

Jak sledovat, že uživatel otevřel Push notifikaci?

Na Androidu použijte PendingIntent v NotificationCompat.Builder se sledováním otevření přes Intent. Na iOS — metodu UNUserNotificationCenterDelegate.userNotificationCenter(_:didReceive:withCompletionHandler:). FCM poskytuje zprávy o doručení a otevření pro každou odeslanou notifikaci.

Ovlivňují Push notifikace baterii?

Nepatrně — Push notifikace neudržují trvalé připojení; operační systém používá jednotný systémový kanál pro všechny aplikace, což minimalizuje celkovou spotřebu energie. Časté odesílání (každých 5 minut) spotřebovává více energie na probuzení zařízení a opuštění režimu spánku. Tiché notifikace na iOS spotřebovávají více energie kvůli aktivaci aplikace na pozadí pro zpracování přijatých dat.

Shrnutí

  • Push notifikace — zprávy serveru na zařízení přes FCM nebo APNS.
  • Token zařízení — jedinečný identifikátor pro cílené doručení Push.
  • FCM podporuje Android, iOS a Web; APNS — pouze ekosystém Apple.
  • Datové notifikace se zpracovávají na pozadí bez zobrazení uživateli.
  • Multimediální notifikace na iOS podporují přílohy do 10 MB, na Androidu — přes rozšířené styly.
  • APNS certifikáty vyžadují každoroční obnovu v Apple Developer Portal.
  • Rate limiting FCM a APNS chrání uživatele před spamem notifikací omezením frekvence odesílání na každé zařízení.

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také