Θα το πω από την αρχή για να ξέρετε τι διαβάζετε: δεν είμαι ουδέτερος σε αυτό το θέμα. Όλες οι εφαρμογές του οικοσυστήματός μας είναι φτιαγμένες έτσι. Το LogicInvoice, το MS-Finance, το Ekkremés, και όσες ετοιμάζονται και δεν έχουν βγει ακόμη. Δεν ήταν απόφαση μάρκετινγκ, ήταν απόφαση συντήρησης: μία βάση κώδικα, μία ενημέρωση, όλοι μέσα. Τις χρησιμοποιώ κάθε μέρα από το κινητό μου σαν να ήταν κανονικές εφαρμογές, οπότε ξέρω και τι κερδίζεις και πού χτυπάς το κεφάλι σου.
Το πρόβλημα όμως δεν είναι η προκατάληψή μου. Είναι ότι σχεδόν όλοι οι οδηγοί που θα βρείτε για τα PWA είναι δύο και τρία χρόνια ξεπερασμένοι, και σας λένε να κάνετε πράγματα που δεν χρειάζονται πια, ενώ ξεχνάνε αυτό που θα σας κόψει στα δύο. Ας τα ξεκαθαρίσουμε.
Τι είναι, χωρίς τα μεγάλα λόγια
PWA σημαίνει ότι ένα site μπορεί να εγκατασταθεί στη συσκευή σαν εφαρμογή. Παίρνει εικονίδιο στην αρχική οθόνη, ανοίγει χωρίς μπάρα διεύθυνσης, μπορεί να στέλνει ειδοποιήσεις, και συνήθως αντέχει καλύτερα όταν το δίκτυο κάνει τα δικά του.
Δεν είναι νέα τεχνολογία και δεν είναι ξεχωριστό προϊόν. Είναι το ίδιο σας το site, με δύο τρία επιπλέον αρχεία. Αυτό είναι και η γοητεία του: δεν συντηρείτε δύο πράγματα, δεν περιμένετε έγκριση από κανένα κατάστημα εφαρμογών, και όταν διορθώσετε κάτι, διορθώθηκε για όλους ταυτόχρονα.
Τι απαιτεί σήμερα ο Chrome, και τι έπαψε να απαιτεί
Εδώ είναι το πρώτο σημείο όπου οι παλιοί οδηγοί σας στέλνουν σε λάθος δρόμο.
Οι σημερινές προϋποθέσεις εγκατάστασης είναι πεζές: HTTPS, ένα manifest με name ή short_name, εικονίδια 192 και 512 pixel, start_url, και display σε μία από τις τιμές fullscreen, standalone, minimal-ui ή window-controls-overlay. Συν δύο πρακτικά: να μην είναι ήδη εγκατεστημένο, και να έχει αλληλεπιδράσει ο χρήστης με τη σελίδα.
Και τώρα αυτό που θα βρείτε λάθος παντού. Επί χρόνια η προϋπόθεση ήταν να υπάρχει service worker με χειριστή fetch. Ο Chrome την αφαίρεσε: «αφαιρέσαμε την απαίτηση να υπάρχει service worker που υλοποιεί τη μέθοδο fetch() για την εγκατάσταση από το μενού, από την έκδοση 108 στα κινητά και 112 στην επιφάνεια εργασίας».
Προσοχή όμως στη λεπτομέρεια, γιατί εδώ χάνονται και οι προσεκτικοί. Η ίδια σελίδα συνεχίζει: «προς το παρόν ο αλγόριθμος που εμφανίζει το μήνυμα εγκατάστασης εξακολουθεί να απαιτεί την ύπαρξη χειριστή fetch()».
Μεταφράζω σε πρακτική γλώσσα. Χωρίς service worker, το site σας εγκαθίσταται αν ο χρήστης το ζητήσει από το μενού του browser. Αλλά ο browser δεν θα του το προτείνει από μόνος του. Δηλαδή τεχνικά είστε εντάξει, εμπορικά όχι, γιατί κανείς δεν ψάχνει στα μενού. Ο service worker λοιπόν δεν είναι πια υποχρεωτικός, είναι όμως αυτό που κάνει τη διαφορά ανάμεσα στο «μπορεί να εγκατασταθεί» και στο «εγκαθίσταται».
Το νούμερο που μοιάζει με έκρηξη, και δεν είναι
Ας δούμε πόσοι το κάνουν όντως. Το Web Almanac του 2025 μετράει service worker στο 20,5% των σελίδων σε υπολογιστή και 20,0% σε κινητό, από περίπου 1,4% το 2022. Δεκαπλασιασμός σε τρία χρόνια. Θα περίμενε κανείς ότι ο ιστός γέμισε εφαρμογές.
Δεν γέμισε. Και το λέει το ίδιο το Web Almanac: η μεγάλη άνοδος αποδίδεται κυρίως στο Google Tag Manager, που εγκαθιστά service worker σε πολλά sites για δικούς του λόγους. Δηλαδή το νούμερο δεν μετράει PWA, μετράει service workers.
Να και το νούμερο που μετράει πραγματικά: manifest έχει περίπου το 9%, ενώ και τα δύο μαζί μόλις το 3,3% ως 3,5%. Τρία στα εκατό. Εκεί είναι η αλήθεια, και εκεί είναι και η ευκαιρία.
Το βρίσκω χρήσιμο παράδειγμα για κάτι γενικότερο: ένα ποσοστό που ανεβαίνει δέκα φορές σε τρία χρόνια είναι πάντα ύποπτο. Κάποιος συνήθως το ανέβασε κατά λάθος.
Το iPhone, όπου χάνονται τα μισά σχέδια
Και τώρα το μέρος που πρέπει να το ξέρετε πριν υποσχεθείτε ειδοποιήσεις σε πελάτη.
Πρώτα μια διόρθωση που τη βρίσκω σε κάθε δεύτερο άρθρο: η προσθήκη στην αρχική οθόνη δεν είναι καινούρια στο iPhone, υπάρχει από τις πρώτες του εκδόσεις. Αυτό που ήρθε με το iOS και iPadOS 16.4 ήταν οι ειδοποιήσεις push, όχι η εγκατάσταση.
Και ήρθαν με έναν όρο που αλλάζει τα πάντα. Η WebKit το γράφει καθαρά: «μια εφαρμογή ιστού που έχει προστεθεί στην αρχική οθόνη μπορεί να ζητήσει άδεια για να λαμβάνει ειδοποιήσεις push». Δηλαδή σε απλή καρτέλα του Safari δεν λαμβάνεται τίποτα. Ο χρήστης πρέπει πρώτα, μόνος του, να κάνει την προσθήκη.
Σκεφτείτε τι σημαίνει εμπορικά. Αν το κοινό σας είναι μισό σε iPhone, τότε οι ειδοποιήσεις φτάνουν μόνο σε όσους έχουν ήδη κάνει την κίνηση της εγκατάστασης. Δεν είναι κανάλι για να αποκτήσετε κοινό, είναι κανάλι για να μιλήσετε σε αυτούς που σας θέλουν ήδη. Και αυτό αλλάζει εντελώς το ποιος πρέπει να το χρησιμοποιήσει.
Δύο πράγματα ακόμη από την ίδια πηγή, θετικά και τα δύο. Η άδεια ζητείται μόνο ύστερα από άμεση ενέργεια του χρήστη, άρα δεν υπάρχει το ενοχλητικό αναδυόμενο που εμφανίζεται πριν προλάβετε να διαβάσετε. Και δεν χρειάζεται λογαριασμός στο Apple Developer Program: το Web Push περνά από την ίδια υπηρεσία της Apple που τροφοδοτεί τις κανονικές ειδοποιήσεις.
Πού το βρίσκω πραγματικά χρήσιμο
Θα σας πω πού λειτούργησε για εμάς, και πού δεν θα το πρότεινα.
Λειτουργεί όταν το ίδιο πρόσωπο ανοίγει το ίδιο εργαλείο πολλές φορές την εβδομάδα. Το Ekkremés το ανοίγω δέκα φορές τη μέρα, οπότε το εικονίδιο στην αρχική οθόνη δεν είναι φιγούρα, είναι δευτερόλεπτα που κερδίζω κάθε φορά. Το ίδιο και με τα οικονομικά: όταν θέλεις να καταχωρίσεις μια απόδειξη στο ταμείο ενός καταστήματος, δεν ανοίγεις browser και δεν πληκτρολογείς διεύθυνση. Και το ίδιο ισχύει για την τιμολόγηση, όπου η ανάγκη έρχεται συνήθως όρθιος, στον χώρο του πελάτη, με το κινητό στο ένα χέρι.
Δεν αξίζει, και το λέω παρότι πουλάω κατασκευή site, σε σελίδα που ο επισκέπτης θα δει μία φορά. Κανείς δεν βάζει στην αρχική του οθόνη ένα ξενοδοχείο που έκλεισε για ένα Σαββατοκύριακο ή ένα κατάστημα από το οποίο αγόρασε ένα καλώδιο. Η εγκατάσταση είναι δέσμευση, και η δέσμευση θέλει λόγο.
Υπάρχει και μια ενδιάμεση περίπτωση που την υποτιμούν: οι εργαζόμενοι του πελάτη. Το προσωπικό ενός συνεργείου, τα άτομα στη ρεσεψιόν, οι τεχνικοί στον δρόμο. Εκεί το PWA είναι σχεδόν πάντα σωστή απάντηση, γιατί το κοινό είναι μικρό, γνωστό, επαναλαμβανόμενο, και δεν δικαιολογεί το κόστος δύο κανονικών εφαρμογών.
Τι δεν θα σας υποσχεθώ
Δεν θα σας πω ότι το PWA αντικαθιστά κανονική εφαρμογή. Σε βαριά χρήση υλικού, σε φόντο που πρέπει να τρέχει συνεχώς, σε ενσωμάτωση με λειτουργίες του λειτουργικού, η κανονική εφαρμογή εξακολουθεί να είναι πιο δυνατή, ιδίως στο iPhone.
Και δεν θα σας δώσω ποσοστό αύξησης πωλήσεων, γιατί όσα κυκλοφορούν είναι αυτοαναφερόμενα από τις ίδιες τις εταιρείες που τα δημοσίευσαν, με τη δική τους μεθοδολογία, στη δική τους σελίδα. Μπορεί να είναι αληθινά και πάλι να μη σας αφορούν.
Αυτό που μπορώ να πω είναι μετρήσιμο και ταπεινό: το ίδιο site, με τα ίδια περιεχόμενα, γίνεται εικονίδιο στην τσέπη του ανθρώπου που το χρειάζεται, χωρίς δεύτερο κώδικα και χωρίς κατάστημα εφαρμογών στη μέση.
Και μια πρόταση για το πώς το πιάνετε
Αν το σκέφτεστε, μην ξεκινήσετε από την τεχνολογία. Ξεκινήστε από μία ερώτηση: ποιος θα το ανοίξει αύριο, και μεθαύριο; Αν η απάντηση είναι «ο ίδιος άνθρωπος», τότε αξίζει και ας το συζητήσουμε. Αν η απάντηση είναι «κάποιος καινούριος κάθε φορά», τότε τα λεφτά σας πάνε καλύτερα στην ταχύτητα και στο περιεχόμενο.
Κι έτσι γυρίζουμε εκεί που ξεκινήσαμε, στο ότι δεν είμαι ουδέτερος. Τα φτιάξαμε έτσι επειδή τα χρησιμοποιούμε οι ίδιοι κάθε μέρα, όχι επειδή ακούγεται μοντέρνο. Αν θέλετε να δούμε αν η δική σας περίπτωση είναι από αυτές που το δικαιολογούν, επικοινωνήστε μαζί μου.