Push-сповіщення в мобільній розробці: суть, які бувають і як працюють

Автор: IT Sectr Опубліковано: 2026-03-15 Час читання: 9 хв

Push-сповіщення — один із найефективніших способів взаємодії з користувачем після встановлення додатка. Вони дозволяють повідомити про нове повідомлення, знижку, оновлення контенту або нагадати про забутий кошик. Push-сповіщення (push notifications) працюють через хмарні сервіси: Firebase Cloud Messaging (FCM) на Android і Apple Push Notification Service (APNS) на iOS. У цій статті розберемо архітектуру сповіщень, їх типи та процес налаштування для обох платформ. Докладніше — в офіційній документації FCM.

Головне

  • FCM — універсальний сервіс для Android і iOS (через APNS-проксі)
  • APNS — нативний сервіс Apple для iOS, macOS, watchOS
  • Rich Notifications містять медіа-контент (зображення, кнопки, аудіо) через App Extensions
  • Silent Push оновлює дані у фоні без показу користувачеві
  • Device Token — унікальний ідентифікатор пристрою; його потрібно зберігати й оновлювати на сервері
  • Notification Channels (Android) і Notification Categories (iOS) — групування та налаштування сповіщень користувачем

Що таке push-сповіщення?

Push-сповіщення — це повідомлення, яке сервер надсилає на мобільний пристрій без запиту з боку додатка. Повідомлення проходить через хмарний сервіс (FCM або APNS), який доставляє його на пристрій, навіть якщо додаток закрито. Сповіщення поділяються на два типи: display-сповіщення (показуються користувачеві) та data-сповіщення (передають дані для фонової обробки).

Архітектура push-сповіщень включає три компоненти: (1) сервер додатка — надсилає запит на FCM/APNS; (2) хмарний сервіс — маршрутизує сповіщення; (3) клієнтський додаток — отримує й обробляє сповіщення. Сервер повинен знати Device Token пристрою, щоб надіслати сповіщення саме йому. Для масових розсилок використовується Topic Subscription — підписка пристроїв на тематичні канали (новини, акції, погода).

На кожному пристрої сповіщення обробляються операційною системою: Android — через NotificationManager і NotificationChannel, iOS — через UNUserNotificationCenter. Користувач може налаштувати поведінку сповіщень для кожного каналу: дозволити звук, банери, показ на Lock Screen або повністю вимкнути. Правильне налаштування каналів підвищує залученість і знижує кількість відписок.

В IT Sectr ми проєктуємо систему push-сповіщень з урахуванням платформних особливостей із самого початку. Ключові рішення: вибір між FCM і прямим APNS, формат payload, частота відправки та механіка підписок. Це дозволяє уникнути ситуацій, коли сповіщення не доходять або блокуються системою.

FCM vs APNS

Firebase Cloud Messaging (FCM) — кросплатформений сервіс Google для доставки сповіщень. FCM підтримує Android, iOS, Web і Flutter. На iOS FCM працює через APNS: FCM надсилає запит в APNS, який доставляє сповіщення на пристрій. Переваги FCM: єдиний API для обох платформ, вбудована аналітика, A/B-тестування, топики та сегменти аудиторії.

Apple Push Notification Service (APNS) — нативний сервіс Apple. Працює тільки на пристроях Apple (iOS, macOS, watchOS, tvOS). Вимагає прямої авторизації через TLS-сертифікат або токен (JWT). APNS забезпечує мінімальну затримку delivery і пряму інтеграцію з iOS-функціями: PushKit, Notification Service Extension, критично важливі оповіщення (Critical Alerts).

Вибір між FCM і APNS залежить від архітектури проєкту. Якщо додаток тільки для iOS — APNS дає більше контролю. Якщо кросплатформений — FCM зручніший єдиним API. Багато проєктів використовують FCM як основний сервіс, а на iOS додатково налаштовують PushKit для VoIP. Гібридний підхід дозволяє отримати найкраще від обох систем.

Характеристика FCM APNS
ПлатформиAndroid, iOS, Web, FlutteriOS, macOS, watchOS, tvOS
АвторизаціяServer Key (Firebase Console)TLS сертифікат або JWT токен
Максимальний payload4 KB (data), 2 KB (notification)4 KB
ТопикиВбудовані (Topic Messaging)Немає (реалізуються на стороні сервера)
Silent PushПідтримуєтьсяПідтримується (content-available)
PushKitНемаєТак (VoIP, live activities)
АналітикаFirebase AnalyticsНемає вбудованої
Доставка на вбитому пристроїОбмежено (залежить від виробника)Так, через PushKit

Типи сповіщень (Rich, Silent, Interactive)

Rich Notification (Багаті сповіщення)

Rich Notification — сповіщення, що містить не лише текст, але й медіа-контент: зображення, відео, аудіо, а також кнопки дій. На Android реалізується через стилі NotificationCompat: BigPictureStyle (велике зображення), BigTextStyle (згорнутий/розгорнутий текст), InboxStyle (список повідомлень), MediaStyle (керування відтворенням). На iOS використовується Notification Content Extension — окремий target з кастомним UI для розгорнутого сповіщення.

Silent Push (Тихі сповіщення)

Silent Push (content-available на iOS) — сповіщення, яке доставляється без відображення користувачеві. Призначене для фонового оновлення даних: синхронізація контенту, попереднє завантаження, оновлення віджетів. На iOS для Silent Push потрібно включити Background Modes → Remote notifications. На Android для обробки фонових сповіщень використовується FirebaseMessagingService з onMessageReceived. Важливо: на iOS Silent Push має обмеження частоти та не гарантує доставку, якщо додаток не на передньому плані.

Interactive Notification (Інтерактивні сповіщення)

Interactive Notification дозволяє користувачеві виконати дію без відкриття додатка. На Android це кнопки (Action) у сповіщенні: «Відповісти», «Схвалити», «Відхилити». Дії обробляються через PendingIntent, який запускає BroadcastReceiver або Service. На iOS Notification Action реєструються через UNNotificationAction та UNNotificationCategory. Кнопки можуть бути foreground (відкрити додаток), background (виконати у фоні) або destructive (незворотна дія — видалити, заблокувати).

Notification Content Extension та Service Extension

Notification Content Extension (iOS) — кастомний view controller для відображення розширеного контенту сповіщення при довгому натисканні або 3D Touch. Notification Service Extension (iOS) — middleware для модифікації контенту сповіщення до показу: розшифровка E2E-повідомлень, завантаження зображення, обфускація конфіденційних даних. На Android аналогів немає — всі модифікації виконуються в FirebaseMessagingService.

Налаштування сповіщень на Android і iOS

Налаштування на Android

Для Android необхідно: (1) додати Firebase SDK в проєкт (google-services.json); (2) створити NotificationChannel (Android 8+) для кожної категорії сповіщень; (3) реалізувати FirebaseMessagingService для отримання токена та вхідних повідомлень. Notification Channel обов'язковий — без нього сповіщення не будуть показуватися на Android 8+. Канали мають пріоритет (IMPORTANCE_HIGH — звук + спливаюче вікно, IMPORTANCE_LOW — без звуку) і налаштовуються користувачем у системних налаштуваннях.

Налаштування на iOS

Для iOS необхідно: (1) включити Push Notifications capability в Xcode; (2) налаштувати APNS ключ на Apple Developer Portal; (3) запросити дозвіл через UNUserNotificationCenter.requestAuthorization — це системний діалог, який показується один раз. Відповідь користувача критична: якщо дозвіл не отримано, сповіщення не будуть доставлятися. Рекомендується пояснювати користувачеві, навіщо потрібні сповіщення, до показу системного діалогу (pre-permission prompt).

Інструменти та Token

Device Token (iOS) та Registration Token (Android) — унікальні ідентифікатори пристрою для push-сповіщень. Токен генерується при першому запуску додатка і може змінюватися: при перевстановленні, очищенні даних, скиданні налаштувань конфіденційності. Сервер повинен регулярно оновлювати токени. Firebase надає зручний API для керування токенами через onNewToken, а також панель для тестової відправки сповіщень (Firebase Console → Cloud Messaging).

Topic Subscription — один із найефективніших механізмів FCM. Пристрій підписується на топик (наприклад, «news», «promo_users_ios»), і сервер надсилає сповіщення по топику без необхідності зберігати список токенів. Firebase Topics підтримують до мільйона підписників на топик і умовну відправку (Condition) через мову виразів: «'news' in topics && ('US' in topics || 'UK' in topics)».

Notification Payload — JSON-структура, що надсилається через FCM/APNS. Для FCM: окремо notification (видима частина — title, body, image) та data (кастомні поля для додатка). Для APNS: aps-словник з alert, badge, sound, category та content-available. Правильна структура payload критична: якщо notification + data приходять одночасно, додаток у фоні може не отримати data. Рекомендується використовувати тільки data-повідомлення для Android і передавати візуальні поля окремо через FCM Console.

Часто задавані питання

У чому різниця між FCM та APNS?

FCM (Firebase Cloud Messaging) — сервіс Google для Android і кросплатформених сповіщень. APNS (Apple Push Notification Service) — сервіс Apple тільки для iOS/macOS. FCM може доставляти сповіщення через APNS на iOS, виступаючи проксі-сервером.

Що таке Rich Notification?

Rich Notification — розширене сповіщення з медіа-контентом: зображення, відео, аудіо, кнопки дій. На iOS реалізується через Notification Content Extension, на Android — через BigPictureStyle та InboxStyle.

Як працює Device Token?

Device Token — унікальний ідентифікатор пристрою для відправки push-сповіщень. На Android це Registration Token від FCM, на iOS — Device Token від APNS. Токен може змінюватися при перевстановленні додатка або скиданні налаштувань, тому його потрібно оновлювати на сервері.

Що таке Silent Push і для чого він потрібен?

Silent Push (тихе сповіщення) — сповіщення без відображення користувачеві. Використовується для фонового оновлення даних: синхронізація контенту, оновлення віджетів, prefetching. На iOS вимагає включення Background Modes → Remote notifications.

Чим PushKit відрізняється від звичайних push-сповіщень?

PushKit — фреймворк Apple для доставки сповіщень з високим пріоритетом, який використовується в VoIP-додатках (дзвінки, месенджери). PushKit доставляє сповіщення навіть якщо додаток вбито, і гарантує запуск додатка для обробки.

Підсумки

  • FCM — кросплатформений сервіс Google; APNS — нативний сервіс Apple
  • Rich Notification включає медіа та кнопки; Silent Push оновлює дані без показу користувачеві
  • Notification Channel (Android) та Notification Category (iOS) — обов'язкові для групування сповіщень
  • Device Token — унікальний ідентифікатор; його необхідно регулярно оновлювати на сервері
  • Topic Subscription спрощує масові розсилки без зберігання списку токенів
  • PushKit — для критично важливих сповіщень (VoIP, життєво важливі оповіщення)
  • Notification Payload має бути структурований з урахуванням платформи: notification + data для FCM, aps для APNS

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект