Οι περισσότεροι από εμάς ξοδεύουμε πολύ χρόνο μέσα σε ένα πρόγραμμα περιήγησης ιστού. Εάν είστε χρήστης του Chrome, του Firefox ή του Edge, τότε θα γνωρίζετε ότι αυτά τα προγράμματα περιήγησης διαθέτουν έναν τεράστιο αριθμό επεκτάσεων τρίτων για να αυξήσουν τις δυνατότητες που είναι ήδη ενσωματωμένες στο λογισμικό.
Τι γίνεται όμως αν χρειάζεστε κάποια συγκεκριμένη επιπλέον λειτουργικότητα, κάποιο εργαλείο ή δυνατότητα που δεν καλύπτεται από τα υπάρχοντα πρόσθετα; Τότε ίσως είναι καιρός να σκεφτείτε να γράψετε τη δική σας επέκταση προγράμματος περιήγησης. Αυτό μπορεί να ακούγεται τρομακτικό, αλλά δεν είναι τόσο δύσκολο να το κάνετε μόλις μάθετε πώς. Και αφού δημιουργήσετε μια προσαρμοσμένη επέκταση, μπορείτε είτε να τη διατηρήσετε για δική σας ιδιωτική χρήση είτε να την κάνετε δημόσια ώστε να μπορεί να τη χρησιμοποιήσει όλοι.
Απαιτούνται κάποιες γνώσεις κωδικοποίησης, επομένως θα χρειαστεί να μάθετε τα βασικά για το πώς γράφονται οι ιστοσελίδες και τα σενάρια, εάν δεν τα γνωρίζετε ήδη. Εάν είστε αρχάριος, μπορείτε να ξεκινήσετε από μικρά και να προχωρήσετε. Υπάρχουν επίσης πολλοί χρήσιμοι πόροι στον ιστό, εάν τους χρειάζεστε, από βιβλιοθήκες κώδικα έως διαδικτυακά μαθήματα.
Υπάρχουν ορισμένα στοιχεία που συνθέτουν μια επέκταση προγράμματος περιήγησης. Πρώτα είναι το μανιφέστο, το οποίο παίρνει το όνομα αρχείου manifest.json και περιέχει διάφορα bits μεταδεδομένων που προσδιορίζουν την επέκταση και τι κάνει. Βάζετε το όνομα της επέκτασης στο μανιφέστο, περιγράφετε τι κάνει και καθορίζετε μια προεπιλεγμένη ενέργεια που εκτελεί η επέκταση.
Δείτε την τεκμηρίωση μορφής αρχείου του μανιφέστου που παρέχεται από την Google για το Chrome. Μπορείτε να δείτε μερικά παραδείγματα εκεί, συμπεριλαμβανομένου ενός ελάχιστου μανιφέστου που περιέχει μόνο τα βασικά. Το μανιφέστο οδηγεί σε όλα τα άλλα απαιτούμενα αρχεία για την επέκταση, τα οποία θα πρέπει να διατηρούνται στον ίδιο φάκελο με την ανάπτυξη.
Μερικά από τα αρχεία στα οποία οδηγεί το μανιφέστο είναι τα αρχεία εικονιδίων, τα οποία αντιπροσωπεύουν οπτικά την επέκτασή σας στο πρόγραμμα περιήγησης. Οι χρήστες θα αναζητήσουν το εικονίδιό σας για να δουν ότι η επέκτασή σας εκτελείται και θα κάνουν κλικ στο εικονίδιο για πρόσβαση στις ρυθμίσεις της επέκτασης ή για να την απενεργοποιήσουν. Θα πρέπει να δημιουργήσετε ένα εικονίδιο 128 x 128 pixel ως ελάχιστο, και συνιστώνται εικονίδια σε άλλα μεγέθη (όπως αναφέρονται εδώ), ώστε η επέκταση να φαίνεται η ίδια παντού στο πρόγραμμα περιήγησης, από την οθόνη ρυθμίσεων έως τη γραμμή καρτελών. Εάν δεν παρέχετε ένα εικονίδιο, θα χρησιμοποιηθεί ένα γενικό εικονίδιο που θα δείχνει το πρώτο γράμμα του ονόματος της επέκτασης.
Στη συνέχεια, έχετε τα σενάρια σας, τα οποία κάνουν την πραγματική δουλειά της επέκτασης και μπορούν να έρθουν σε διάφορες μορφές: HTML (Γλώσσα σήμανσης υπερκειμένου) για βασικό σχεδιασμό ιστοσελίδων, CSS (Cascading Style Sheets) για πιο προηγμένο στυλ και χειρισμό αντικειμένων στο web και JavaScript για να κάνετε το μεγαλύτερο μέρος των εργασιών προγραμματισμού (υποθέτοντας ότι η επέκτασή σας κάνει κάτι περισσότερο από απλώς τη φόρτωση μιας σελίδας στην οθόνη).
Αυτές είναι οι ίδιες τεχνολογίες που τροφοδοτούν τις ιστοσελίδες και τις εφαρμογές Ιστού που φορτώνετε καθημερινά μέσα στο πρόγραμμα περιήγησης και θα χρειαστείτε τουλάχιστον μια βασική κατανόηση των HTML, CSS και JavaScript για να ξεκινήσετε. Αν δεν έχετε ξαναπαίξει ποτέ με καμία από αυτές τις γλώσσες, μην αποθαρρύνεστε: Ακόμα κι αν ξεκινάτε από το μηδέν, μπορείτε να δημιουργήσετε απλό κώδικα σε λιγότερο από μία ώρα.
Θα χρειαστείτε επίσης μια ιδέα για το τι πρέπει να κάνει η επέκτασή σας: Ίσως σκεφτείτε ότι λείπει η λειτουργικότητα που θα θέλατε να είχατε στο πρόγραμμα περιήγησής σας ή κάτι που κάνει έναν συγκεκριμένο ιστότοπο πιο εύκολο στη χρήση. Εάν χρειάζεστε κάποια έμπνευση, ρίξτε μια ματιά στις βιβλιοθήκες επεκτάσεων του προγράμματος περιήγησης τρίτων για το Chrome και τον Firefox για να δείτε τι κάνουν οι άλλοι.
Δεν έχουμε χώρο εδώ για έναν πλήρη οδηγό προγραμματισμού για αρχάριους, αλλά ουσιαστικά δεν υπάρχει τέλος στους εκπαιδευτικούς πόρους που είναι διαθέσιμοι στον Ιστό και η εκμάθηση των βασικών δεν διαρκεί όσο νομίζετε. Μαζί με τα σεμινάρια, θα βρείτε επίσης μια ολόκληρη σειρά από επεκτάσεις παραδειγμάτων και αποσπάσματα κώδικα που μπορείτε να αντιγράψετε, να επικολλήσετε και στη συνέχεια να προσαρμόσετε για τους δικούς σας σκοπούς.
Η Google παρείχε βοηθητικά ένα πλήρες σεμινάριο για την κωδικοποίηση μιας βασικής επέκτασης του Chrome, το οποίο καλύπτει τα πάντα, από τη δημιουργία του μανιφέστου έως τον έλεγχο μέσω αρχείων καταγραφής σφαλμάτων και τη διασφάλιση ότι το ολοκληρωμένο πρόσθετο είναι ορατό στο πρόγραμμα περιήγησης. Είναι μια καλή εισαγωγή στον τρόπο δομής των διαφόρων στοιχείων που απαρτίζουν την επέκτασή σας.
Υπάρχει άλλο ένα καλό σεμινάριο στο FreeCodeCamp. Είναι λίγο παλαιότερο, αλλά εξακολουθεί να είναι χρήσιμο, ξεκινώντας από την αρχή πριν εισαγάγετε ιδέες όπως το πώς να επιλέγετε μέρη μιας ιστοσελίδας και πώς οι επεκτάσεις μπορούν να χρησιμοποιηθούν για τον χειρισμό αντικειμένων σε μια σελίδα. Θα βρείτε επίσης πολλά περισσότερα σεμινάρια όπως αυτό.
Όσον αφορά τους γενικούς πόρους κωδικοποίησης, μέρη όπως το Codecademy και το Upskill μπορούν να σας μεταφέρουν από αρχάριο σε κάποιον που μπορεί να προγραμματίσει μια επέκταση αρκετά γρήγορα. Υπάρχουν επίσης πολλά πραγματικά χρήσιμα μαθήματα στο YouTube—όπως αυτό το βίντεο που θα σας διδάξει τα βασικά της JavaScript σε μια ώρα—και μπορείτε ακόμη και να αποκτήσετε εργαλεία τεχνητής νοημοσύνης που δημιουργούνται για να σας δώσουν οδηγίες και βοήθεια (απλώς προσέξτε αυτές τις παραισθήσεις ).
Για να ξεκινήσετε τη δημιουργία της επέκτασής σας, είναι καλύτερο να στοχεύετε το πρόγραμμα περιήγησης στο οποίο εργάζεστε πιο συχνά. Αφού δημιουργήσετε την επέκτασή σας για το πρόγραμμα περιήγησης που προτιμάτε, έχετε την επιλογή να την καταστήσετε διαθέσιμη και για άλλα προγράμματα περιήγησης. Αυτό είναι πιο εύκολο από ό,τι στο παρελθόν, χάρη στην υιοθέτηση περισσότερων προτύπων πολλαπλών πλατφορμών, αλλά εξακολουθεί να απαιτεί λίγη δουλειά: η Mozilla έχει έναν χρήσιμο οδηγό για επεκτάσεις μεταξύ προγραμμάτων περιήγησης που μπορείτε να συμβουλευτείτε.
Όσον αφορά το λογισμικό, μπορείτε να ξεκινήσετε την κωδικοποίηση σε ένα απλό πρόγραμμα επεξεργασίας απλού κειμένου όπως το Notepad στα Windows ή το TextEdit στο macOS. Καθώς αρχίζετε να αποκτάτε μεγαλύτερη αυτοπεποίθηση, μπορείτε να αναπτύξετε πιο προηγμένους επεξεργαστές κώδικα που βοηθούν στην εισαγωγή και μορφοποίηση κώδικα, καθώς και σε πλήρως ενσωματωμένα περιβάλλοντα ανάπτυξης (IDE) που περιλαμβάνουν επιπλέον εργαλεία για τη δοκιμή και τον εντοπισμό σφαλμάτων της εργασίας σας.
Η επέκτασή σας δεν χρειάζεται να είναι σχεδόν ολοκληρωμένη για να μπορέσετε να ξεκινήσετε τη δοκιμή της τοπικά στον υπολογιστή σας. Εάν, για παράδειγμα, φορτώσετε τη σελίδα Επεκτάσεις στο Chrome, θα δείτε έναν διακόπτη εναλλαγής λειτουργίας προγραμματιστή στην επάνω δεξιά γωνία. Ενεργοποιήστε το και μπορείτε να φορτώσετε όλα τα πρόσθετα στα οποία εργάζεστε.
Οι τρεις επιλογές που σας δίνονται είναι Load unpacked (για τη φόρτωση μιας επέκτασης που εξακολουθεί να είναι αποθηκευμένη ως πολλά ξεχωριστά αρχεία), Pack extension (για τη συσκευασία αυτών των αρχείων σε ένα ολοκληρωμένο αρχείο .crx που μπορεί να διανεμηθεί) και Update (για την ενημέρωση των αρχείων που χρησιμοποιούνται με μια επέκταση που έχετε ήδη προσθέσει). Θα χρησιμοποιήσετε και τα τρία καθώς περνάτε από τη διαδικασία ανάπτυξης.
Όταν το ολοκληρωμένο πρόσθετο συσκευάζεται σωστά σε ένα αρχείο με .crx στο τέλος του ονόματός του, μπορείτε να το προσθέσετε στο Chrome κάνοντας διπλό κλικ πάνω του. Σημαίνει επίσης ότι μπορείτε να το υποβάλετε στο Chrome Web Store. Αυτό απαιτεί την εγγραφή ενός λογαριασμού προγραμματιστή Google, ο οποίος απαιτεί εφάπαξ χρέωση 5 $ και σας επιτρέπει να υποβάλετε έως και 20 διαφορετικές επεκτάσεις.
Η διαδικασία υποβολής απαιτεί τη συμπλήρωση πληροφοριών σχετικά με το τι κάνει η επέκταση και πώς χειρίζεται το απόρρητο των χρηστών. Αφού υποβάλετε την επέκτασή σας, η Google θα την ελέγξει για να βεβαιωθεί ότι είναι ασφαλής και ότι κάνει ό,τι λέει. Αυτή η διαδικασία μπορεί να διαρκέσει αρκετές εβδομάδες και η Google έχει δημοσιεύσει περισσότερες πληροφορίες σχετικά εδώ.
Εάν αποφασίσετε να δημοσιεύσετε μια επέκταση, είτε για το γενικότερο καλό της ανθρωπότητας είτε για να βγάλετε μερικά επιπλέον δολάρια (μπορείτε να χρεώσετε το πρόσθετο εάν θέλετε), να γνωρίζετε ότι η διανομή της απαιτεί σημαντικό όγκο εργασίας . Εκτός από την παροχή μιας καταχώρισης για την επέκταση, πρέπει να είστε έτοιμοι να απαντήσετε σε σχόλια και να χειριστείτε αναφορές σφαλμάτων.
Παρά τις περιστασιακές ενοχλήσεις όμως, είναι σίγουρα κάτι που αξίζει να εξεταστεί. Εκτός από την κατανόηση των σύγχρονων τεχνολογιών και γλωσσών ιστού, θα μπορούσατε επίσης να καταλήξετε με χιλιάδες ή και δεκάδες χιλιάδες άτομα που χρησιμοποιούν την επέκταση που έχετε δημιουργήσει.