Ειδοποιήσεις Push στην ανάπτυξη κινητού: ουσία, τύποι και πώς λειτουργούν

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-03-15 Χρόνος ανάγνωσης: 9 λεπ

Οι ειδοποιήσεις push είναι ένας από τους πιο αποτελεσματικούς τρόπους αλληλεπίδρασης με τον χρήστη μετά την εγκατάσταση της εφαρμογής. Επιτρέπουν την ειδοποίηση για ένα νέο μήνυμα, έκπτωση, ενημέρωση περιεχομένου ή υπενθύμιση για ένα εγκαταλελειμμένο καλάθι. Οι ειδοποιήσεις push (push notifications) λειτουργούν μέσω υπηρεσιών cloud: 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 είναι ένα μήνυμα που ο διακομιστής στέλνει σε μια κινητή συσκευή χωρίς αίτημα από την εφαρμογή. Το μήνυμα περνά μέσα από μια υπηρεσία cloud (FCM ή APNS) η οποία το παραδίδει στη συσκευή ακόμη και αν η εφαρμογή είναι κλειστή. Οι ειδοποιήσεις χωρίζονται σε δύο τύπους: ειδοποιήσεις εμφάνισης (εμφανίζονται στον χρήστη) και ειδοποιήσεις δεδομένων (μεταδίδουν δεδομένα για επεξεργασία στο παρασκήνιο).

Η αρχιτεκτονική των ειδοποιήσεων push περιλαμβάνει τρία στοιχεία: (1) τον διακομιστή εφαρμογής — στέλνει αίτημα στο FCM/APNS· (2) την υπηρεσία cloud — δρομολογεί την ειδοποίηση· (3) την εφαρμογή πελάτη — λαμβάνει και επεξεργάζεται την ειδοποίηση. Ο διακομιστής πρέπει να γνωρίζει το Device Token της συσκευής για να στείλει ειδοποίηση συγκεκριμένα σε αυτήν. Για μαζικές αποστολές χρησιμοποιείται το Topic Subscription — εγγραφή συσκευών σε θεματικά κανάλια (ειδήσεις, προσφορές, καιρός).

Σε κάθε συσκευή, οι ειδοποιήσεις επεξεργάζονται από το λειτουργικό σύστημα: Android — μέσω NotificationManager και NotificationChannel, iOS — μέσω UNUserNotificationCenter. Ο χρήστης μπορεί να ρυθμίσει τη συμπεριφορά των ειδοποιήσεων για κάθε κανάλι: να επιτρέψει ήχο, banners, εμφάνιση στην οθόνη κλειδώματος ή να απενεργοποιήσει πλήρως. Η σωστή ρύθμιση των καναλιών αυξάνει την αφοσίωση και μειώνει τα ποσοστά διαγραφής.

Στην IT Sectr, σχεδιάζουμε το σύστημα ειδοποιήσεων push λαμβάνοντας υπόψη τα χαρακτηριστικά της πλατφόρμας από την αρχή. Βασικές αποφάσεις: επιλογή μεταξύ FCM και άμεσου APNS, μορφή φορτίου, συχνότητα αποστολής και μηχανισμός εγγραφών. Αυτό βοηθά στην αποφυγή καταστάσεων όπου οι ειδοποιήσεις δεν φτάνουν ή αποκλείονται από το σύστημα.

FCM vs APNS

Το Firebase Cloud Messaging (FCM) είναι η cross-platform υπηρεσία της 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 παρέχει ελάχιστη καθυστέρηση παράδοσης και άμεση ενσωμάτωση με λειτουργίες iOS: PushKit, Notification Service Extension και κρίσιμες ειδοποιήσεις.

Η επιλογή μεταξύ FCM και APNS εξαρτάται από την αρχιτεκτονική του έργου. Εάν η εφαρμογή είναι μόνο για iOS — το APNS παρέχει περισσότερο έλεγχο. Εάν είναι cross-platform — το FCM είναι πιο βολικό με ενιαίο API. Πολλά έργα χρησιμοποιούν το FCM ως κύρια υπηρεσία και επιπλέον ρυθμίζουν το PushKit για VoIP στο iOS. Μια υβριδική προσέγγιση επιτρέπει να ληφθούν τα καλύτερα και από τα δύο συστήματα.

Χαρακτηριστικό FCM APNS
ΠλατφόρμεςAndroid, iOS, Web, FlutteriOS, macOS, watchOS, tvOS
ΕξουσιοδότησηΚλειδί διακομιστή (Firebase Console)Πιστοποιητικό TLS ή διακριτικό JWT
Μέγιστο φορτίο4 KB (data), 2 KB (notification)4 KB
ΘέματαΕνσωματωμένα (Topic Messaging)Όχι (υλοποιούνται στην πλευρά του διακομιστή)
Silent PushΥποστηρίζεταιΥποστηρίζεται (content-available)
PushKitΌχιΝαι (VoIP, ζωντανές δραστηριότητες)
ΑναλυτικάFirebase AnalyticsΧωρίς ενσωματωμένα
Παράδοση σε απενεργοποιημένη συσκευήΠεριορισμένη (εξαρτάται από τον κατασκευαστή)Ναι, μέσω PushKit

Τύποι ειδοποιήσεων (Rich, Silent, Interactive)

Rich Notification (Πλούσια ειδοποίηση)

Μια Rich Notification είναι μια ειδοποίηση που περιέχει όχι μόνο κείμενο αλλά και περιεχόμενο πολυμέσων: εικόνες, βίντεο, ήχο και κουμπιά ενεργειών. Στο Android υλοποιείται μέσω στυλ NotificationCompat: BigPictureStyle (μεγάλη εικόνα), BigTextStyle (συμπτυγμένο/διογκωμένο κείμενο), InboxStyle (λίστα μηνυμάτων), MediaStyle (έλεγχος αναπαραγωγής). Στο iOS χρησιμοποιείται το Notification Content Extension — ένας ξεχωριστός στόχος με προσαρμοσμένο UI για τη διογκωμένη ειδοποίηση.

Silent Push (Σιωπηλή ειδοποίηση)

Το Silent Push (content-available στο iOS) είναι μια ειδοποίηση που παραδίδεται χωρίς εμφάνιση στον χρήστη. Προορίζεται για ενημέρωση δεδομένων στο παρασκήνιο: συγχρονισμός περιεχομένου, προφόρτωση, ενημερώσεις widget. Στο 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 στο 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 (ορατό μέρος — τίτλος, σώμα, εικόνα) και data (προσαρμοσμένα πεδία για την εφαρμογή). Για APNS: λεξικό aps με alert, badge, sound, category και content-available. Η σωστή δομή φορτίου είναι κρίσιμη: εάν notification + data φτάσουν ταυτόχρονα, η εφαρμογή στο παρασκήνιο μπορεί να μην λάβει τα data. Συνιστάται η χρήση μόνο μηνυμάτων data για Android και η ξεχωριστή μεταφορά οπτικών πεδίων μέσω FCM Console.

Συχνές ερωτήσεις

Ποια είναι η διαφορά μεταξύ FCM και APNS;

Το FCM (Firebase Cloud Messaging) είναι η υπηρεσία της Google για Android και cross-platform ειδοποιήσεις. Το 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 (σιωπηλή ειδοποίηση) είναι μια ειδοποίηση χωρίς εμφάνιση στον χρήστη. Χρησιμοποιείται για ενημερώσεις δεδομένων στο παρασκήνιο: συγχρονισμός περιεχομένου, ενημερώσεις widget, προεπιλογή. Στο iOS απαιτεί ενεργοποίηση του Background Modes → Remote notifications.

Πώς διαφέρει το PushKit από τις κανονικές ειδοποιήσεις push;

Το PushKit είναι ένα πλαίσιο της Apple για την παράδοση ειδοποιήσεων υψηλής προτεραιότητας που χρησιμοποιείται σε εφαρμογές VoIP (κλήσεις, μηνύματα). Το PushKit παραδίδει την ειδοποίηση ακόμη και αν η εφαρμογή έχει τερματιστεί και εγγυάται την εκκίνηση της εφαρμογής για επεξεργασία.

Περίληψη

  • FCM — cross-platform υπηρεσία 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. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου