Το Apache Cordova είναι ένα open-source framework που επιτρέπει τη δημιουργία κινητών εφαρμογών με HTML, CSS και JavaScript με πρόσβαση σε εγγενείς λειτουργίες της συσκευής. Αποτελεί το θεμέλιο για πολλές υβριδικές πλατφόρμες, συμπεριλαμβανομένων των PhoneGap και Ionic. Σύμφωνα με τα δεδομένα Apache Software Foundation, 2025, το Cordova χρησιμοποιείται σε χιλιάδες εφαρμογές στο Google Play και στο App Store. WebView — η κύρια συνιστώσα του framework που εξασφαλίζει την εμφάνιση της διαδικτυακής διεπαφής μέσα στην εφαρμογή κινητού.
Βασικά σημεία
Apache Cordova — είναι μια πλατφόρμα ανοικτού κώδικα που περιτυλίσσει μια διαδικτυακή εφαρμογή σε ένα εγγενές δοχείο και παρέχει JavaScript API για πρόσβαση στις δυνατότητες υλικού της κινητής συσκευής. Αρχικά το έργο ονομαζόταν PhoneGap και δημιουργήθηκε από την Nitobi Software το 2009.
Το 2011, η Adobe εξαγόρασε τη Nitobi και μετέφερε τον πηγαίο κώδικα του PhoneGap στο Apache Software Foundation, όπου το έργο έλαβε την ονομασία Apache Cordova. Η Adobe συνέχισε να διανέμει το PhoneGap ως διανομή του Cordova με πρόσθετες υπηρεσίες, και το framework έγινε ανεξάρτητο έργο υπό τη διαχείριση του Apache.
Σύμφωνα με τα Apache Cordova Project Statistics (2024), το framework υποστηρίζει 10 κινητές πλατφόρμες, συμπεριλαμβανομένων των iOS, Android, Windows, macOS και Electron. Οι κύριες πλατφόρμες παραμένουν το Android και το iOS, στα οποία αναλογεί πάνω από 95% όλων των έργων Cordova.
Η αρχιτεκτονική του Apache Cordova αποτελείται από τέσσερα επίπεδα: διαδικτυακή εφαρμογή, WebView, γέφυρα προσθετών και εγγενείς προσθέτες. Κάθε επίπεδο είναι απομονωμένο, επιτρέποντας την αντικατάσταση συνιστωσών χωρίς να αλλάξει το υπόλοιπο σύστημα.
WebView στο Cordova — είναι ένα συστημικό στοιχείο του ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ που εμφανίζει την ιστοσελίδα ως μέρος της εγγενούς εφαρμογής. Στο iOS χρησιμοποιείται το WKWebView (από iOS 9+), στο Android — Android System WebView (από Android 5+). Το framework φορτώνει στο WebView το σημείο εισόδου index.html με όλους τους πόρους της εφαρμογής.
Σύμφωνα με τα δεδομένα της WebKit Team (2024), το WKWebView έχει 50% μικρότερη κατανάλωση μνήμης σε σύγκριση με το UIWebView, που χρησιμοποιούνταν σε πρώιμες εκδόσεις του Cordova. Αυτό είναι κρίσιμο για κινητές συσκευές με περιορισμένη ΜΝΗΜΗ RAM.
Η γέφυρα (bridge) — ο βασικός μηχανισμός του Cordova που επιτρέπει στον κώδικα JavaScript να καλεί εγγενείς συναρτήσεις. Όταν μια εφαρμογή καλεί μια προσθήκη, το Cordova σειριοποιεί το αίτημα σε JSON και το αποστέλλει μέσω του πρωτοκόλλου URL του WebView (αλλαγή του location.href με προσαρμοσμένο σχήμα). Η εγγενής πλευρά παραλαμβάνει αυτό το αίτημα, εκτελεί την απαραίτητη λειτουργία και επιστρέφει το αποτέλεσμα.
Αυτός ο μηχανισμός λειτουργεί ασύγχρονα: η κλήση της προσθήκης επιστρέφει ένα Promise που επιλύεται μετά την εκτέλεση της εγγενούς λειτουργίας. Σύμφωνα με δοκιμές της IBM Research (2023), η καθυστέρηση της γέφυρας είναι 2–5 ms για απλές λειτουργίες και έως 50 ms για λειτουργίες εισόδου-εξόδου.
Κάθε Cordova προσθήκη — είναι ένα πακέτο με διεπαφή JavaScript και εγγενή υλοποίηση για κάθε πλατφόρμα. Στο iOS οι προσθέτες γράφονται σε Objective-C ή Swift, στο Android — σε Java ή Kotlin. Το μέρος JavaScript της προσθήκης παρέχει στον προγραμματιστή ένα API βασισμένο σε Promise, ενώ το εγγενές μέρος εκτελεί κλήσεις συστήματος.
Το τυπικό σετ περιλαμβάνει πάνω από 30 προσθέτες: Battery Status, Camera, Contacts, Device Motion, File, Geolocation, InAppBrowser, Media, Network Information, Splashscreen, Statusbar, Vibration και άλλα.
Η γραμμή εντολών Cordova CLI — το κύριο εργαλείο για τη δημιουργία, την κατασκευή και τη διαχείριση έργων. Παρέχει εντολές για την αρχικοποίηση έργου, την προσθήκη πλατφορμών και την εγκατάσταση προσθετών μέσω ενοποιημένης διεπαφής.
Η ροή εργασίας περιλαμβάνει τρεις βασικές εντολές: cordova create για τη δημιουργία έργου, cordova platform add ios/android για την προσθήκη πλατφορμών-στόχων και cordova plugin add για την εγκατάσταση προσθετών από το μητρώο npm.
Όλες οι ρυθμίσεις έργου αποθηκεύονται στο αρχείο config.xml στον ριζικό κατάλογο. Σε αυτό καθορίζονται το όνομα της εφαρμογής, το αναγνωριστικό πακέτου, οι υποστηριζόμενοι προσανατολισμοί οθόνης, τα εικονίδια και η λίστα εγκατεστημένων προσθετών. Το αρχείο χρησιμοποιεί τη μορφή XML W3C Widget Package, που επιτρέπει την ενσωμάτωση του έργου με οποιαδήποτε εργαλεία κατασκευής, συμπεριλαμβανομένων των συστημάτων CI/CD Jenkins και GitHub Actions.
Ας εξετάσουμε ένα παράδειγμα αρχείου ρυθμίσεων config.xml για ένα έργο Cordova με υποστήριξη κάμερας και γεωτοποθεσίας.
<?xml version='1.0' encoding='utf-8'?>
<widget id='com.example.app'
version='1.0.0'
xmlns='http://www.w3.org/ns/widgets'
xmlns:cdv='http://cordova.apache.org/ns/1.0'>
<name>MyApp</name>
<description>
Παράδειγμα εφαρμογής Cordova
</description>
<plugin name='cordova-plugin-camera' />
<plugin name='cordova-plugin-geolocation' />
<allow-intent href='http://*/*' />
<allow-intent href='https://*/*' />
</widget>
Σε αυτό το config.xml έχουν δηλωθεί οι προσθέτες κάμερας και γεωτοποθεσίας, καθώς και επιτρέπονται οι συνδέσεις HTTP/HTTPS για φόρτωση δεδομένων από τον διακομιστή. Το Cordova τα συνδέει αυτόματα κατά την κατασκευή και τα καθιστά προσβάσιμα μέσω των καθολικών αντικειμένων navigator.camera και navigator.geolocation.
Παράδειγμα κλήσης της προσθήκης κάμερας από τον κώδικα JavaScript της εφαρμογής:
function capturePhoto() {
navigator.camera.getPicture(
function(imageData) {
const img = document.getElementById('myImage');
img.src = 'data:image/jpeg;base64,' + imageData;
},
function(error) {
console.error('Σφάλμα κάμερας:' + error);
},
{ quality: 50, destinationType: 0 }
);
}
Η συνάρτηση capturePhoto καλεί την εγγενή κάμερα μέσω της προσθήκης cordova-plugin-camera. Η επιστροφή επιτυχίας λαμβάνει την εικόνα σε μορφή base64, μετά από την οποία εμφανίζεται στη σελίδα. Ο χειρισμός σφαλμάτων είναι υποχρεωτικός — ο χρήστης μπορεί να απορρίψει το αίτημα πρόσβασης στην κάμερα.
Παρά τη δημοτικότητα, το Apache Cordova έχει μια σειρά περιορισμών που οδήγησαν στην εμφάνιση του εναλλακτικού Capacitor από την ομάδα Ionic. Τα κύρια προβλήματα σχετίζονται με την απόδοση της γέφυρας, την υποστήριξη σύγχρονων προτύπων web και την πολυπλοκότητα του εντοπισμού σφαλμάτων.
Η γέφυρα μέσω του πρωτοκόλλου URL του WebView λειτουργεί πιο αργά από την άμεση JavaScript Bridge στο Capacitor. Σε συχνές κλήσεις εγγενών API, για παράδειγμα κατά την εργασία με την κάμερα σε πραγματικό χρόνο, αυτή η διαφορά γίνεται αισθητή. Το Cordova επίσης δεν υποστηρίζει πλήρως τις σύγχρονες δυνατότητες του WebView χωρίς πρόσθετες προσθήκες.
Ένας άλλος περιορισμός — η έλλειψη ενσωματωμένης υποστήριξης για Live Reload στη συσκευή χωρίς εξωτερικά εργαλεία. Για ανάπτυξη, το Cordova απαιτεί ανακατασκευή του έργου μετά από κάθε αλλαγή κώδικα, γεγονός που επιβραδύνει τον κύκλο ανάπτυξης σε σύγκριση με το Capacitor ή το React Native.
Σύμφωνα με τα δεδομένα της Ionic Team (2024), πάνω από 60% των νέων υβριδικών έργων επιλέγουν το Capacitor αντί του Cordova. Ωστόσο, τα υπάρχοντα έργα Cordova παραμένουν λειτουργικά — το framework συνεχίζει να λαμβάνει ενημερώσεις ασφαλείας από το Apache Software Foundation.
Το Apache Cordova έχει γίνει η βάση για πολλές εμπορικές πλατφόρμες και υπηρεσίες που επεκτείνουν τη λειτουργικότητά του και παρέχουν πρόσθετα εργαλεία ανάπτυξης. Το PhoneGap από την Adobe ήταν η πρώτη και πιο γνωστή διανομή του Cordova.
Το PhoneGap προσθέτει την υπηρεσία cloud PhoneGap Build, που επιτρέπει τη μεταγλώττιση της εφαρμογής χωρίς εγκατάσταση Xcode ή Android Studio. Ο προγραμματιστής ανεβάζει τον πηγαίο κώδικα στον διακομιστή Adobe και λαμβάνει έτοιμα αρχεία APK και IPA. Αυτό ήταν ιδιαίτερα βολικό για ομάδες χωρίς υποδομή Mac.
Άλλες πλατφόρμες που βασίζονται στο Cordova περιλαμβάνουν Monaca (cloud IDE) και Framework7. Η Monaca παρέχει ένα πλήρες περιβάλλον ανάπτυξης στον browser με προσομοιωτή συσκευής και ενσωμάτωση με προσθέτες Cordova. Το Framework7 χρησιμοποιεί το Cordova ως backend για απόδοση, προσφέροντας το δικό του σετ στοιχείων UI.
Παρά τη μείωση της δημοτικότητας του Cordova μετά την κυκλοφορία των Flutter και React Native, το οικοσύστημα παραμένει σχετικό για την υποστήριξη κληρονομικών έργων και εξειδικευμένων σεναρίων όπου η απλότητα εισόδου για προγραμματιστές web είναι κρίσιμη. Οι εταιρικές εφαρμογές με ασυνήθιστες απαιτήσεις πρόσβασης υλικού συχνά παραμένουν στο Cordova λόγω της εκτεταμένης βιβλιοθήκης δοκιμασμένων προσθετών.
Για μετάβαση από το Cordova στο Capacitor, υπάρχει ένας οδηγός βήμα προς βήμα από την Ionic Team που περιλαμβάνει την αντικατάσταση σεναρίων αρχικοποίησης στο index.html και την ενημέρωση των ρυθμίσεων. Η κύρια δυσκολία — ο έλεγχος συμβατότητας των προσαρμοσμένων προσθετών Cordova με τη νέα αρχιτεκτονική της γέφυρας Capacitor.
Συχνές ερωτήσεις
PhoneGap — είναι μια εμπορική διανομή του Apache Cordova από την Adobe που προσθέτει την υπηρεσία cloud κατασκευής PhoneGap Build. Το ίδιο το framework βασίζεται πλήρως στον κώδικα Cordova, και όλες οι προσθέτες και τα API είναι πανομοιότυπα. Η διαφορά είναι μόνο στις πρόσθετες υπηρεσίες της Adobe.
Ναι, το Cordova υποστηρίζει και τις δύο πλατφόρμες από μια ενιαία βάση κώδικα. Η εντολή cordova platform add ios && cordova platform add android προσθέτει και τις δύο πλατφόρμες-στόχους. Όλος ο κώδικας JavaScript και τα πρότυπα HTML είναι κοινά, και το εγγενές μέρος των προσθετών υλοποιείται ξεχωριστά για κάθε λειτουργικό σύστημα.
Η πρόσβαση σε εγγενείς λειτουργίες πραγματοποιείται μέσω του συστήματος προσθετών. Η προσθήκη cordova-plugin-camera παρέχει JavaScript API navigator.camera.getPicture που καλεί τον εγγενή κώδικα κάμερας σε Objective-C ή Java. Η προσθήκη γεωτοποθεσίας λειτουργεί παρόμοια μέσω του navigator.geolocation.
Για νέα έργα, συνιστάται το Capacitor — μια πιο σύγχρονη εναλλακτική από την ομάδα Ionic με καλύτερη απόδοση, ενσωματωμένο Live Reload και υποστήριξη PWA. Το Cordova δικαιολογείται μόνο για υποστήριξη κληρονομικών έργων ή αν η ομάδα έχει ήδη υποδομή στο Cordova.
Οι πιο χρησιμοποιούμενες προσθέτες είναι cordova-plugin-camera (πρόσβαση κάμερας), cordova-plugin-geolocation (GPS), cordova-plugin-file (σύστημα αρχείων), cordova-plugin-inappbrowser (ενσωματωμένος browser) και cordova-plugin-splashscreen (οθόνη εκκίνησης). Αυτές οι προσθέτες καλύπτουν το 80% των τυπικών εργασιών.
Σύνοψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.
Διαβάστε επίσης