Что такое пуш уведомления, где они отображаются, из чего состоят и как их проверять
Что проверяют
Понимаете ли вы, что пуш проходит длинную цепочку: ваш бэкенд, сервис доставки платформы, операционная система, приложение. Интервьюеру важно, чтобы вы проверяли каждое звено, а не только «пришло или нет». Следом обычно спрашивают, как вы отправите тестовый пуш без помощи бэкенд-разработчика.
Как отвечать
Пуш это сообщение, которое сервер отправляет через сервис платформы: APNs у Apple, FCM у Android, Web Push у браузеров. Приложение получает токен устройства и передаёт его на бэкенд, по этому токену и идёт доставка.
Где отображается: шторка и экран блокировки, баннер поверх экрана, центр уведомлений, бейдж на иконке, на десктопе системный центр уведомлений.
Из чего состоит:
- заголовок и текст: то, что видит пользователь, с обрезкой на разных экранах;
- медиа и кнопки действий: картинка, «Ответить», «Отметить прочитанным»;
- payload: JSON с диплинком и параметрами, по которым приложение решает, какой экран открыть;
- служебные параметры: приоритет, время жизни, звук, бейдж, на Android канал уведомлений.
Как проверять:
- состояния приложения: открыто, свёрнуто, выгружено из памяти. На переднем плане система по умолчанию пуш часто не показывает, это решает само приложение;
- разрешения: отказ, отзыв в настройках, на Android 13 и новее отдельный запрос
POST_NOTIFICATIONS; - тап по пушу: открывается нужный экран, диплинк работает и у незалогиненного пользователя;
- токен: обновляется после переустановки, выход из аккаунта отвязывает устройство;
- инструменты: консоль Firebase для тестовой отправки,
adbи Logcat, симулятор iOS (пуш можно отправить файлом.apnsили черезxcrun simctl push), Charles или Proxyman для проверки запросов к бэкенду.
Где спотыкаются
Проверяют только открытое приложение. Большая часть багов живёт в состоянии «выгружено»: например, диплинк не срабатывает при холодном старте.
Забывают про окружение: режим «Не беспокоить», агрессивное энергосбережение у Xiaomi и Huawei, отключённый пользователем канал уведомлений.
Путают доставку и отображение. Успешный ответ FCM или APNs значит лишь, что сервис принял сообщение, а не что пользователь его увидел.