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 certificate или JWT token
Максимальный 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 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект