Push oznámení v mobilním vývoji: podstata, typy a jak fungují

Autor: IT Sectr Publikováno: 2026-03-15 Doba čtení: 9 min

Push oznámení jsou jedním z nejúčinnějších způsobů interakce s uživatelem po instalaci aplikace. Umožňují informovat o nové zprávě, slevě, aktualizaci obsahu nebo připomenout opuštěný košík. Push oznámení (push notifications) fungují prostřednictvím cloudových služeb: Firebase Cloud Messaging (FCM) na Androidu a Apple Push Notification Service (APNS) na iOS. V tomto článku rozebereme architekturu oznámení, jejich typy a proces nastavení pro obě platformy. Více informací — v oficiální dokumentaci FCM.

Hlavní body

  • FCM — univerzální služba pro Android a iOS (přes APNS proxy)
  • APNS — nativní služba Apple pro iOS, macOS, watchOS
  • Rich Notifications obsahují multimediální obsah (obrázky, tlačítka, audio) přes App Extensions
  • Silent Push aktualizuje data na pozadí bez zobrazení uživateli
  • Device Token — jedinečný identifikátor zařízení; musí být uložen a aktualizován na serveru
  • Notification Channels (Android) a Notification Categories (iOS) — seskupování a přizpůsobení oznámení uživatelem

Co jsou push oznámení?

Push oznámení je zpráva, kterou server odesílá na mobilní zařízení bez požadavku z aplikace. Zpráva prochází cloudovou službou (FCM nebo APNS), která ji doručí na zařízení, i když je aplikace zavřená. Oznámení se dělí na dva typy: zobrazovací oznámení (zobrazují se uživateli) a datová oznámení (předávají data pro zpracování na pozadí).

Architektura push oznámení zahrnuje tři komponenty: (1) aplikační server — odesílá požadavek na FCM/APNS; (2) cloudová služba — směruje oznámení; (3) klientská aplikace — přijímá a zpracovává oznámení. Server musí znát Device Token zařízení, aby mu mohl odeslat oznámení konkrétně. Pro hromadné odesílání se používá Topic Subscription — přihlášení zařízení k tematickým kanálům (novinky, akce, počasí).

Na každém zařízení jsou oznámení zpracovávána operačním systémem: Android — přes NotificationManager a NotificationChannel, iOS — přes UNUserNotificationCenter. Uživatel může nakonfigurovat chování oznámení pro každý kanál: povolit zvuk, bannery, zobrazení na uzamčené obrazovce nebo úplně vypnout. Správná konfigurace kanálů zvyšuje zapojení a snižuje počet odhlášení.

Ve společnosti IT Sectr navrhujeme systém push oznámení s ohledem na platformová specifika od samého začátku. Klíčová rozhodnutí: výběr mezi FCM a přímým APNS, formát payloadu, frekvence odesílání a mechanika předplatného. To pomáhá vyhnout se situacím, kdy oznámení nedorazí nebo jsou blokována systémem.

FCM vs APNS

Firebase Cloud Messaging (FCM) je multiplatformní služba Google pro doručování oznámení. FCM podporuje Android, iOS, Web a Flutter. Na iOS FCM funguje přes APNS: FCM odešle požadavek do APNS, který doručí oznámení na zařízení. Výhody FCM: jednotné API pro obě platformy, vestavěná analytika, A/B testování, témata a segmenty publika.

Apple Push Notification Service (APNS) je nativní služba Apple. Funguje pouze na zařízeních Apple (iOS, macOS, watchOS, tvOS). Vyžaduje přímou autorizaci přes TLS certifikát nebo token (JWT). APNS poskytuje minimální zpoždění doručení a přímou integraci s iOS funkcemi: PushKit, Notification Service Extension a kritická upozornění.

Volba mezi FCM a APNS závisí na architektuře projektu. Pokud je aplikace pouze pro iOS — APNS poskytuje větší kontrolu. Pokud je multiplatformní — FCM je pohodlnější s jednotným API. Mnoho projektů používá FCM jako primární službu a na iOS navíc konfiguruje PushKit pro VoIP. Hybridní přístup umožňuje získat to nejlepší z obou systémů.

Vlastnost FCM APNS
PlatformyAndroid, iOS, Web, FlutteriOS, macOS, watchOS, tvOS
AutorizaceServer Key (Firebase Console)TLS certifikát nebo JWT token
Maximální payload4 KB (data), 2 KB (notification)4 KB
TémataVestavěná (Topic Messaging)Ne (implementováno na straně serveru)
Silent PushPodporovánoPodporováno (content-available)
PushKitNeAno (VoIP, živé aktivity)
AnalytikaFirebase AnalyticsŽádná vestavěná
Doručení na vypnutém zařízeníOmezené (závisí na výrobci)Ano, přes PushKit

Typy oznámení (Rich, Silent, Interactive)

Rich Notification (Bohaté oznámení)

Rich Notification je oznámení obsahující nejen text, ale také multimediální obsah: obrázky, videa, audio a tlačítka akcí. Na Androidu je implementováno pomocí stylů NotificationCompat: BigPictureStyle (velký obrázek), BigTextStyle (sbalený/rozbalený text), InboxStyle (seznam zpráv), MediaStyle (ovládání přehrávání). Na iOS se používá Notification Content Extension — samostatný cíl s vlastním UI pro rozbalené oznámení.

Silent Push (Tiché oznámení)

Silent Push (content-available na iOS) je oznámení doručené bez zobrazení uživateli. Je určeno pro aktualizaci dat na pozadí: synchronizace obsahu, přednačítání, aktualizace widgetů. Na iOS Silent Push vyžaduje povolení Background Modes → Remote notifications. Na Androidu se pro zpracování oznámení na pozadí používá FirebaseMessagingService s onMessageReceived. Důležité: na iOS má Silent Push omezení frekvence a nezaručuje doručení, pokud aplikace není v popředí.

Interactive Notification (Interaktivní oznámení)

Interactive Notification umožňuje uživateli provést akci bez otevření aplikace. Na Androidu jsou to tlačítka (Action) v oznámení: "Odpovědět", "Schválit", "Odmítnout". Akce jsou zpracovávány přes PendingIntent, který spouští BroadcastReceiver nebo Service. Na iOS je Notification Action registrována přes UNNotificationAction a UNNotificationCategory. Tlačítka mohou být foreground (otevře aplikaci), background (provede na pozadí) nebo destructive (nevratná akce — smazat, blokovat).

Notification Content Extension a Service Extension

Notification Content Extension (iOS) — vlastní view controller pro zobrazení rozšířeného obsahu oznámení při dlouhém stisku nebo 3D Touch. Notification Service Extension (iOS) — middleware pro úpravu obsahu oznámení před zobrazením: dešifrování E2E zpráv, načítání obrázků, obfuskace důvěrných dat. Na Androidu neexistují přímé analogy — všechny úpravy se provádějí v FirebaseMessagingService.

Nastavení oznámení na Androidu a iOS

Nastavení na Androidu

Pro Android je nutné: (1) přidat Firebase SDK do projektu (google-services.json); (2) vytvořit NotificationChannel (Android 8+) pro každou kategorii oznámení; (3) implementovat FirebaseMessagingService pro příjem tokenů a příchozích zpráv. Notification Channel je povinný — bez něj se oznámení na Androidu 8+ nezobrazí. Kanály mají prioritu (IMPORTANCE_HIGH — zvuk + vyskakovací okno, IMPORTANCE_LOW — bez zvuku) a uživatel je může konfigurovat v systémových nastaveních.

Nastavení na iOS

Pro iOS je nutné: (1) povolit schopnost Push Notifications v Xcode; (2) nakonfigurovat APNS klíč na Apple Developer Portal; (3) požádat o autorizaci přes UNUserNotificationCenter.requestAuthorization — toto je systémový dialog, který se zobrazí jednou. Odpověď uživatele je kritická: pokud není uděleno povolení, oznámení nebudou doručována. Doporučuje se uživateli vysvětlit, proč jsou oznámení potřeba, před zobrazením systémového dialogu (pre-permission prompt).

Nástroje a Token

Device Token (iOS) a Registration Token (Android) jsou jedinečné identifikátory zařízení pro push oznámení. Token je generován při prvním spuštění aplikace a může se změnit: při přeinstalaci, vymazání dat, resetování nastavení soukromí. Server musí tokeny pravidelně aktualizovat. Firebase poskytuje pohodlné API pro správu tokenů přes onNewToken a také panel pro testovací odesílání oznámení (Firebase Console → Cloud Messaging).

Topic Subscription je jedním z nejúčinnějších mechanismů FCM. Zařízení se přihlásí k tématu (např. "news", "promo_users_ios") a server odesílá oznámení podle tématu bez nutnosti ukládat seznam tokenů. Firebase Topics podporuje až milion odběratelů na téma a podmíněné odesílání (Condition) pomocí vyjadřovacího jazyka: "'news' in topics && ('US' in topics || 'UK' in topics)".

Notification Payload je JSON struktura odesílaná přes FCM/APNS. Pro FCM: zvlášť notification (viditelná část — nadpis, tělo, obrázek) a data (vlastní pole pro aplikaci). Pro APNS: slovník aps s alert, badge, sound, category a content-available. Správná struktura payloadu je kritická: pokud notification + data dorazí současně, aplikace na pozadí nemusí data obdržet. Doporučuje se používat pouze data zprávy pro Android a předávat vizuální pole samostatně přes FCM Console.

Často kladené otázky

Jaký je rozdíl mezi FCM a APNS?

FCM (Firebase Cloud Messaging) je služba Google pro Android a multiplatformní oznámení. APNS (Apple Push Notification Service) je služba Apple pouze pro iOS/macOS. FCM může doručovat oznámení přes APNS na iOS, fungující jako proxy server.

Co je Rich Notification?

Rich Notification je rozšířené oznámení s multimediálním obsahem: obrázky, videa, audio, tlačítka akcí. Na iOS je implementováno přes Notification Content Extension; na Androidu přes BigPictureStyle a InboxStyle.

Jak funguje Device Token?

Device Token je jedinečný identifikátor zařízení pro odesílání push oznámení. Na Androidu je to Registration Token z FCM; na iOS Device Token z APNS. Token se může změnit při přeinstalaci aplikace nebo resetování nastavení, proto je třeba jej aktualizovat na serveru.

Co je Silent Push a k čemu slouží?

Silent Push (tiché oznámení) je oznámení bez zobrazení uživateli. Používá se pro aktualizaci dat na pozadí: synchronizace obsahu, aktualizace widgetů, předběžné načítání. Na iOS vyžaduje povolení Background Modes → Remote notifications.

Čím se PushKit liší od běžných push oznámení?

PushKit je framework Apple pro doručování oznámení s vysokou prioritou používaný ve VoIP aplikacích (hovory, messengery). PushKit doručuje oznámení i když je aplikace ukončena a garantuje spuštění aplikace pro zpracování.

Shrnutí

  • FCM — multiplatformní služba Google; APNS — nativní služba Apple
  • Rich Notification zahrnuje média a tlačítka; Silent Push aktualizuje data bez zobrazení
  • Notification Channel (Android) a Notification Category (iOS) — povinné pro seskupování oznámení
  • Device Token — jedinečný identifikátor; musí být pravidelně aktualizován na serveru
  • Topic Subscription zjednodušuje hromadné odesílání bez ukládání seznamu tokenů
  • PushKit — pro kritická oznámení (VoIP, životně důležitá upozornění)
  • Notification Payload musí být strukturován podle platformy: notification + data pro FCM, aps pro APNS

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