Пусх обавештења у мобилном развоју — суштина, које врсте постоје и како раде

Аутор: IT Sectr Објављено: 2026-03-19 Време читања: 8 мин

Пусх обавештења су поруке које сервер шаље на мобилни уређај чак и када је апликација затворена. Према подацима Google Firebase, 2024, Пусх обавештења се обрађују кроз специјализоване сервисе — FCM на Android-у и APNS на iOS-у, који подржавају испоруку у реалном времену милионима уређаја истовремено. Она су постала саставни део корисничког искуства у савременим мобилним апликацијама.

Главно

  • Пусх обавештења — поруке са сервера испоручене путем FCM или APNS.
  • FCM (Firebase Cloud Messaging) — главни сервис за Android са подршком за iOS.
  • APNS (Apple Push Notification Service) — сопствени сервис Apple-а за iOS и macOS.
  • Типови обавештења се деле на текстуална, медијска и тиха обавештења.
  • Токени уређаја — јединствени идентификатори за циљану испоруку Пусх порука.

Шта су Пусх обавештења?

Пусх обавештења су кратке поруке које сервер апликације шаље на уређај корисника без његовог изричитог захтева. Приказују се у облику банера, ознака на иконици или звучних сигнала, привлачећи пажњу корисника на апликацију и информишући о важним догађајима.

Дефиниција и намена

Пусх обавештење се састоји од наслова, тела поруке и опционих података (payload). За разлику од SMS-а, Пусх обавештења су бесплатна за корисника и испоручују се путем инфраструктуре облачних сервиса — FCM за Android и APNS за iOS. Главни циљеви Пусх обавештења: повећање ангажовања, информисање о догађајима и враћање корисника у апликацију.

Статистика употребе показује да правилно подешена Пусх обавештења повећавају задржавање апликације за 30-60%. Међутим, прекомерна учесталост обавештења доводи до отказа — више од 60% корисника искључује обавештења ако се шаљу више од три пута дневно.

Архитектура Пусх система

Пусх систем укључује три компоненте: сервер апликације (app server), платформски сервис (FCM/APNS) и клијентску апликацију на уређају. Сервер шаље захтев платформском сервису, који испоручује обавештење на циљани уређај путем сталне везе са оперативним системом.

Како раде Пусх обавештења?

Механизам испоруке Пусх обавештења заснива се на сталној вези између уређаја и платформског сервиса. Оперативни систем одржава шифровани комуникациони канал кроз који пролазе све Пусх поруке.

Регистрација и добијање токена

При првом покретању апликација тражи дозволу за слање обавештења и добија јединствени токен уређаја од FCM или APNS. Овај токен је низ дужине до 4 KB, који јединствено идентификује инстанцу апликације. Токен се мења при поновној инсталацији апликације или враћању уређаја из резервне копије.

kotlin
class FirebaseMessagingService :
    FirebaseMessagingService() {

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

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

Слање путем сервера апликације

Сервер апликације шаље HTTP захтев ка FCM API или APNS API, наводећи циљани токен, наслов, тело и додатне податке. Платформски сервис одговара статусом испоруке: success, invalid token (уређај је обрисао апликацију) или rate-limited (прекорачена учесталост слања).

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: "пошаљите token на свој сервер",
            body: "У вас новое уведомление!"
        }
    })
})

FCM vs APNS: поређење платформи

Избор између FCM и APNS зависи од циљане платформе. FCM подржава Android и iOS, APNS — само Apple екосистем. Размотримо кључне разлике важне за развој крос-платформских мобилних апликација.

Firebase Cloud Messaging (FCM)

FCM је Google сервис који ради на бази Google Play Services. Подржава две шеме испоруке: обавештења са аутоматским приказом (display notifications) и data-обавештења која апликација обрађује самостално. FCM је бесплатан и нема ограничења у броју послатих порука.

Apple Push Notification Service (APNS)

APNS је Apple сервис са подршком за мултимедијалне прилоге (слике, видео, аудио) величине до 10 MB. За слање путем APNS-а потребан је TLS сертификат или кључ за аутентификацију. APNS ограничава учесталост слања на један уређај — не више од 150 обавештења у минути, након чега укључује rate limiting.

КарактеристикаFCMAPNS
ПлатформеAndroid, iOS, WebiOS, macOS, watchOS
ЗахтевиGoogle Play ServicesApple Developer Program
Медијидо 4 KB (data)до 10 MB (прилози)
Приоритетnormal/highimmediate/power-saving
Ценабесплатнобесплатно (потребан налог)

Типови Пусх обавештења

Пусх обавештења се класификују по начину приказа и намени. Разумевање типова помаже у избору правилне стратегије за сваки сценарио интеракције са корисником.

Текстуална обавештења (Display Notifications)

Најчешћи тип — приказано обавештење са насловом и телом. Оперативни систем га аутоматски приказује у системском панелу, на закључаном екрану и у облику банера. Програмер може подесити звук, вибрацију, ознаку на иконици и акционе дугмиће за директне радње (одговори, отвори, одбиј).

Обавештења са подацима (Data Notifications)

Data-обавештења садрже само payload без визуелног приказа. Апликација их обрађује у позадини: синхронизује податке, ажурира кеш или покреће преузимање. На Android-у data-обавештења се испоручују гарантовано, на iOS-у — само када је апликација активна или путем background fetch-а.

Мултимедијална и rich-обавештења

Савремени мобилни оперативни системи подржавају проширена и медијска обавештења са сликама, GIF-овима, видео и аудио записима. На iOS-у се ово реализује путем UNNotificationAttachment, на Android-у — путем BigPictureStyle и InboxStyle за прилагођавање изгледа обавештења у системском панелу.

Тиха (Silent) обавештења

Тиха обавештења не приказују се кориснику и користе се за позадинску синхронизацију. На iOS-у имају висок приоритет за задатке попут ажурирања података пре отварања апликације. Android их третира као data-обавештења са минималним приоритетом.

Подешавање Пусх обавештења у пројекту

Подешавање Пусх обавештења захтева радње на нивоу инфраструктуре, серверског дела и клијентског кода. Размотримо типичан процес за крос-платформски мобилни пројекат.

Подешавање FCM за Android

За Android је потребно креирати пројекат у Firebase Console, додати google-services.json у пројекат и подесити FirebaseMessagingService. Токен уређаја се добија путем FirebaseInstanceId или FirebaseMessaging.getInstance().token, након чега се шаље на сервер путем API-ја при првом покретању или при његовој промени.

Подешавање APNS за iOS

За iOS је потребна претплата на Apple Developer Program, креирање Push сертификата или APNS кључа у Developer Portal-у и укључивање Capability Push Notifications у Xcode-у. Регистрација за обавештења се врши путем UIApplication.shared.registerForRemoteNotifications са добијањем deviceToken у 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()
        // отправить token на свой сервер
    }
}

Серверско слање

На серверској страни Пусх обавештења се шаљу путем REST API-ја или Admin SDK-а. За FCM се користи Firebase Admin SDK (доступан за Node.js, Java, Python, Go), за APNS — pusher библиотеке (pushy за Java, apn2 за Node.js). Препоручује се чување токена у бази података са временском ознаком последњег ажурирања.

Безбедност Пусх обавештења

Безбедност Пусх обавештења је критично важна јер се кроз њих могу преносити поверљиви подаци. Обе платформе пружају основне механизме заштите, али програмер мора да их правилно користи.

Шифровање payload-а

Payload Пусх обавештења може садржати личне податке корисника: имена, износе трансакција, линкове ка порукама. Чак и ако је комуникациони канал између FCM/APNS и уређаја шифрован, подаци могу бити пресретнути на нивоу апликације при пресретању обавештења од стране трећег софтвера. Препоручује се шифровање осетљивог payload-а на серверу алгоритмом AES-256 и дешифровање на уређају помоћу кључа који се чува у Keychain (iOS) или EncryptedSharedPreferences (Android).

Валидација токена на серверу

Токен уређаја је идентификатор сесије који може бити компромитован при провали уређаја или пресретању саобраћаја. Сервер апликације мора да проверава токене пре слања: упоређује их са базом података, прати неактивне токене и брише их при понављајућим InvalidToken грешкама. FCM и APNS враћају статус InvalidRegistration за неважеће токене — не игноришите га.

Заштита од спама обавештењима

Без контроле учесталости, Пусх обавештења могу постати алат за спам који иритира кориснике и смањује задржавање. Поставите на серверу ограничења: не више од 5 обавештења на сат једном кориснику и не више од 3 идентичне поруке. За трансакциона обавештења (потврда поруџбине, промена лозинке) ограничења могу бити већа — до 10 на сат, јер носе критично важне информације. Користите rate limiting на нивоу API-ја за слање како нападач не би могао да покрене масовну дистрибуцију путем вашег сервера.

Често постављана питања

Могу ли се слати Пусх обавештења без FCM на Android-у?

Да, директно повезивање на APNS није подржано на Android-у — за уређаје без Google Play Services користе се алтернативе попут Huawei Mobile Services (HMS) и сопствене WebSocket везе. Међутим, FCM остаје стандард за већину апликација захваљујући бесплатности и поузданости.

Како функционише испорука Push-а када је интернет искључен?

FCM и APNS чувају последње обавештење на својим серверима и испоручују га при успостављању везе. На сваком уређају чува се само последње обавештење од сваке апликације, па се при дугом одсуству мреже губе међупоруке.

Зашто Пусх обавештења не стижу на iOS?

Најчешћи разлози су истекао Push сертификат APNS (важи 1 годину), неважећи токен уређаја, искључена обавештења у подешавањима или укључен режим уштеде енергије. Проверите сертификат у Apple Developer Console-и и уверите се да апликација тражи дозволу путем UNUserNotificationCenter-а.

Како пратити да је корисник отворио Пусх обавештење?

На Android-у користите PendingIntent у NotificationCompat.Builder-у са праћењем отварања путем Intent-а. На iOS-у — метод UNUserNotificationCenterDelegate.userNotificationCenter(_:didReceive:withCompletionHandler:). FCM пружа извештаје о испоруци и отварањима за свако послато обавештење.

Да ли Пусх обавештења утичу на батерију?

Незнатно — Пусх обавештења не одржавају сталну везу; оперативни систем користи јединствени системски канал за све апликације, што минимизира укупну потрошњу енергије. Често слање (сваких 5 минута) троши више енергије на буђење уређаја и излазак из режима спавања. Тиха обавештења на iOS-у троше више енергије због активације апликације у позадини за обраду примљених података.

Закључак

  • Пусх обавештења — поруке сервера на уређај путем FCM или APNS.
  • Токен уређаја — јединствени идентификатор за циљану испоруку Push-а.
  • FCM подржава Android, iOS и Web; APNS — само Apple екосистем.
  • Data-обавештења се обрађују у позадини без приказа кориснику.
  • Медијска обавештења на iOS-у подржавају прилоге до 10 MB, на Android-у — кроз проширене стилове.
  • APNS сертификати захтевају годишње обнављање у Apple Developer Portal-у.
  • Rate limiting FCM и APNS штити кориснике од спама обавештењима, ограничавајући учесталост слања на сваки уређај.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође