Προγραμματισμός

Ανάπτυξη εφαρμογών για κινητά μετά το PhoneGap και την Cordova

Ο Todd Anglin είναι αντιπρόεδρος στρατηγικής προϊόντων και σχέσεων προγραμματιστών στο Progress.

Για σχεδόν μια δεκαετία, το PhoneGap προσφέρει στους προγραμματιστές ιστού μια διαδρομή χαμηλής τριβής για τη δημιουργία εφαρμογών για κινητά που έχουν πρόσβαση σε δυνατότητες εγγενών συσκευών. Το PhoneGap επιτρέπει σε πολλούς προγραμματιστές να δημιουργούν εφαρμογές για iOS και Android (και ακόμη και για Windows Phone και BlackBerry, για κάποιο χρονικό διάστημα) χρησιμοποιώντας δεξιότητες και βιβλιοθήκες JavaScript που ήδη γνωρίζουν και αγαπούν. Αυτός ο συνδυασμός δεξιοτήτων ιστού και πρόσβασης σε εγγενείς συσκευές (κοινώς γνωστός ως "υβριδικό") έχει γίνει ριζωμένος ως μία από τις κύριες προσεγγίσεις για την ανάπτυξη εφαρμογών για κινητά.

Τώρα, καθώς η εργασία για την εξέλιξη του PhoneGap (και το σχετικό έργο ανοιχτού κώδικα Apache Cordova) επιβραδύνεται, τι ακολουθεί για την ανάπτυξη υβριδικών κινητών;

Προφανώς, ως έργο ανοιχτού κώδικα, η Apache Cordova δεν θα αποσυρθεί σύντομα. Πολλές εταιρείες έχουν μεγάλες επενδύσεις στην Κόρδοβα, και η κοινότητα της Κόρδοβα συνεχίζει να γεμίζει τα κενά καθώς οι εταιρικές επιχειρήσεις διαρρέουν.

Αλλά το PhoneGap ήταν ένα έργο που δημιουργήθηκε με τη ρητή πρόθεση να καταστεί παρωχημένο, και αυτή η στιγμή μπορεί να είναι πάνω μας.

Κατά τη διάρκεια των τελευταίων 10 ετών, δύο αναμφισβήτητα ανώτερες επιλογές έχουν προκύψει που είναι έτοιμες να αντικαταστήσουν το PhoneGap και το "hybrid 1.0". Αυτές είναι προοδευτικές εφαρμογές ιστού και εγγενείς εφαρμογές που βασίζονται σε JavaScript.

Προοδευτικές εφαρμογές ιστού

Το PhoneGap προοριζόταν πάντα να βοηθά τους προγραμματιστές ιστού να κάνουν περισσότερα σε κινητές συσκευές όταν φτάνουν στα όρια των προγραμμάτων περιήγησης ιστού για κινητά. Το PhoneGap επαναχρησιμοποιεί τα πάντα από τον Ιστό - HTML, CSS, JavaScript - και βασίζεται σε προσθήκες γραμμένες σε εγγενή κώδικα (Objective-C, Swift, Java) για πρόσβαση σε συγκεκριμένες δυνατότητες εγγενών συσκευών μέσω JavaScript. Με την πάροδο του χρόνου, αυτό αποδείχθηκε τόσο ευλογία όσο και κατάρα. Η καμπύλη εκμάθησης είναι πολύ χαμηλή, αλλά τα ενσωματωμένα προγράμματα περιήγησης ιστού στις εφαρμογές PhoneGap δυσκολεύονται συχνά με την απόδοση (όχι χάρη στην Apple και, για πολύ καιρό, την προεπιλεγμένη προβολή ιστού Android). Ωστόσο, το PhoneGap ήταν μια λειτουργική λύση που παρήγαγε «αρκετά καλά» αποτελέσματα για πολλούς.

Εν τω μεταξύ, τα πρότυπα ιστού εξακολούθησαν να εξελίσσονται και τα τελευταία τρία έως τέσσερα χρόνια, η ώθηση για βελτίωση των προτύπων ιστού που είναι απαραίτητα για τη δημιουργία υψηλότερης απόδοσης εφαρμογών για κινητές συσκευές χωρίς σύνδεση έχει καταλύσει με τον όρο "προοδευτικές εφαρμογές ιστού"

Με τις προοδευτικές εφαρμογές ιστού, η πλατφόρμα ιστού κάνει ένα ακόμη τεράστιο βήμα μπροστά. Τώρα οι εφαρμογές ιστού έχουν πλήρη έλεγχο της στοίβας δικτύου, καθιστώντας δυνατή την πραγματοποίηση προηγμένων λειτουργιών προσωρινής αποθήκευσης και εκτός σύνδεσης. Υπάρχουν επίσης νέα API που βοηθούν τις εφαρμογές ιστού να κάνουν άλλα πράγματα που συχνά σχετίζονται με εγγενείς εφαρμογές για κινητά, όπως η εκκίνηση με οθόνη splash, η αποστολή ειδοποιήσεων push ή η ερώτηση των χρηστών για πληροφορίες πληρωμής. Προσθέστε αυτό σε όλα τα άλλα API "HTML5" που έχουν προσγειωθεί σε προγράμματα περιήγησης - όπως πρόσβαση σε επιταχυνσιόμετρα, κάμερες κ.λπ. - και έχετε μια πολύ ικανή πλατφόρμα ιστού για πολλά είδη εφαρμογών.

Όλες αυτές οι δυνατότητες θα απαιτούσαν μια εγγενή εφαρμογή κατά τη δημιουργία του PhoneGap, αλλά τώρα τα προγράμματα περιήγησης έχουν φτάσει. Μπορούμε να βγάλουμε τους υβριδικούς τροχούς προπόνησης.

Ωστόσο, παραμένουν όρια στον Ιστό. Είναι απλώς η φύση της πλατφόρμας που βασίζεται σε στάνταρ αργή κίνηση. Οι προοδευτικές εφαρμογές ιστού είναι ένα τεράστιο βήμα προς τα εμπρός, αλλά δεν αποτελούν την τέλεια αντικατάσταση για όλες τις εφαρμογές. Λοιπόν, τι πρέπει να κάνουν οι προγραμματιστές ιστού μετά το υβριδικό εάν εξακολουθούν να χρειάζονται πλήρη πρόσβαση σε API εγγενών συσκευών; Εισαγάγετε εγγενείς εφαρμογές που βασίζονται σε JavaScript.

Εγγενείς εφαρμογές που βασίζονται σε JavaScript

Πριν από περίπου πέντε χρόνια, αρκετές εταιρείες άρχισαν να προσπαθούν να βρουν μια λύση στα συχνά προβλήματα απόδοσης που μαστίζουν τις υβριδικές εφαρμογές για κινητά. Ο στόχος: Δημιουργία πλαισίων που θα μπορούσαν να προσφέρουν "πραγματικά εγγενή" απόδοση και πλούτο διεπαφής χρήστη, ενώ εξακολουθούν να είναι πολλαπλών πλατφορμών και οικεία στους προγραμματιστές ιστού. Από αυτήν την εργασία, προέκυψαν δύο δημοφιλείς επιλογές: React Native (από το Facebook) και NativeScript (από το Progress).

Αυτά τα νέα πλαίσια επιτρέπουν στους προγραμματιστές να συνεχίσουν να επαναχρησιμοποιούν τις δεξιότητές τους στον ιστό, αλλά αντί να τυλίγουν απλώς ένα πρόγραμμα περιήγησης ιστού σε ένα εγγενές κέλυφος εφαρμογών (όπως το PhoneGap), αυτές οι νέες προσεγγίσεις παράγουν μια εγγενή διεπαφή χρήστη. Το αποτέλεσμα είναι εφαρμογές για κινητές συσκευές που αισθάνονται και αποδίδουν περισσότερο σαν «ακατέργαστες» εγγενείς εφαρμογές μιας πλατφόρμας, ενώ παράλληλα κερδίζουν παραγωγικότητα μεταξύ πλατφορμών.

Υπήρξαν μερικά ονόματα που περιγράφουν αυτήν την προσέγγιση: "υβριδικό 2.0", "εγγενές υβρίδιο" και "εγγενές cross-platform" μεταξύ άλλων. Ο Forrester παρουσίασε τον όρο "εγγενείς εφαρμογές που βασίζονται σε JavaScript" και ενώ δεν ξεκινά ακριβώς από τη γλώσσα, είναι, τουλάχιστον, ένα ακριβές και περιγραφικό όνομα.

Με τα εγγενή πλαίσια εφαρμογών που βασίζονται σε JavaScript, οι προγραμματιστές ιστού έχουν τα περισσότερα από αυτά που τους άρεσαν για το PhoneGap, αλλά με ακόμη περισσότερη ισχύ και απόδοση. Για παράδειγμα, το NativeScript, το οποίο είναι βαθιά ενσωματωμένο τόσο στο Angular όσο και στο Vue, δίνει στους προγραμματιστές πλήρη πρόσβαση σε όλα τα εγγενή API μέσω JavaScript. Κάθε ένα από αυτά. Εάν μπορεί να γίνει σε μια εγγενή εφαρμογή, μπορεί να γίνει σε NativeScript και οι ενότητες πολλαπλών πλατφορμών επιτρέπουν την κωδικοποίηση των περισσότερων πραγμάτων μία φορά και λειτουργούν τόσο σε iOS όσο και σε Android. Είναι σαν τα πρόσθετα PhoneGap στα στεροειδή.

Το React Native και το NativeScript είναι και τα δύο ακμάζοντα έργα ανοιχτού κώδικα και και τα δύο είναι έτοιμα να είναι η φυσική εξέλιξη του "hybrid 1.0" για περιπτώσεις όπου προοδευτικές εφαρμογές ιστού δεν ταιριάζουν.

Ποια επιλέγετε;

Ενώ το PhoneGap δεν έχει φύγει, είναι δύσκολο να φανταστεί κανείς γιατί οποιοδήποτε νέο έργο θα ξεκινήσει σήμερα με το PhoneGap όταν υπάρχουν επιλογές όπως προοδευτικές εφαρμογές ιστού και εγγενείς εφαρμογές που βασίζονται σε JavaScript. Και οι δύο επιλογές αντιπροσωπεύουν διαδρομές που έχουν δημιουργηθεί για το μέλλον και είναι σχετικά ασήμαντες για υιοθέτηση για προγραμματιστές ιστού που είναι ήδη εξοικειωμένοι με την υβριδική ανάπτυξη εφαρμογών.

Η επιλογή μεταξύ των επιλογών πρέπει επίσης να είναι απλή:

  1. Εάν η εφαρμογή σας δεν χρειάζεται πολλή πρόσβαση στο API της συσκευής, δεν χρειάζεται να βρίσκεται στα καταστήματα εφαρμογών και μπορεί να ζήσει με κάποια επιπλέον όρια στο iOS (για τώρα), δημιουργήστε μια προοδευτική εφαρμογή ιστού.
  2. Εάν οι απαιτήσεις της εφαρμογής σας υπερβαίνουν τα όρια των προοδευτικών εφαρμογών ιστού, επιλέξτε μία από τις εγγενείς πλατφόρμες εφαρμογών που βασίζονται σε JavaScript:
    1. Εάν είστε κατάστημα React, επιλέξτε React Native.
    2. Εάν είστε κατάστημα Angular ή Vue, επιλέξτε NativeScript.

Πολλές από τις εταιρείες που συλλαμβάνουν αυτά τα πλαίσια ανοιχτού κώδικα είναι πολύ πρόθυμες να βοηθήσουν και οι περισσότερες προσφέρουν τεχνική καθοδήγηση για τη μετάβαση από το PhoneGap στο πλαίσιο τους. Εάν αναζητάτε μέρος για να ξεκινήσετε το ταξίδι μετανάστευσης, η συμβουλή με έναν ειδικό είναι πάντα καλή ιδέα.

Και αν κολλήσετε, ή απλά θα προτιμούσατε να μιλήσετε με έναν ειδικό τρίτου μέρους, υπάρχουν αρκετοί μεγάλοι πόροι διαθέσιμοι για την κοινότητα προγραμματιστών - η προφανής και πιο δημοφιλής επιλογή είναι το GitHub. Ωστόσο, έχουν δημιουργηθεί πολλά άλλα φόρουμ για να βοηθήσουν τους προγραμματιστές να μεταναστεύσουν από το PhoneGap και τις υβριδικές σε προοδευτικές εφαρμογές ιστού για λίγο τώρα, και προσφέρουν μερικούς εξαιρετικούς δείκτες.

Τελικά, το PhoneGap ανταποκρίθηκε στο όνομά του. Βοήθησε τους προγραμματιστές ιστού να καλύπτουν το «κενό» ανάπτυξης εφαρμογών για κινητά για σχεδόν μια δεκαετία. Αυτή είναι μια εντυπωσιακή εκτέλεση από οποιοδήποτε πρότυπο. Τώρα ήρθε η ώρα για προοδευτικές εφαρμογές ιστού και εγγενή πλαίσια εφαρμογών που βασίζονται σε JavaScript να πάρουν τον μανδύα και να οδηγήσουν τους προγραμματιστές στο μέλλον.

Το Hybrid (1.0) είναι νεκρό. Μεγάλο ζωντανό υβρίδιο (2.0).

Ο Todd Anglin είναι αντιπρόεδρος στρατηγικής προϊόντων και σχέσεων προγραμματιστών στο Progress.

Το New Tech Forum παρέχει έναν χώρο για να εξερευνήσετε και να συζητήσετε την αναδυόμενη τεχνολογία σε πρωτοφανές βάθος και εύρος. Η επιλογή είναι υποκειμενική, με βάση την επιλογή των τεχνολογιών που πιστεύουμε ότι είναι σημαντικές και έχουν μεγάλο ενδιαφέρον για τους αναγνώστες. δεν αποδέχεται ασφάλεια μάρκετινγκ για δημοσίευση και διατηρεί το δικαίωμα να επεξεργαστεί όλο το περιεχόμενο. Στείλτε όλες τις ερωτήσεις στο[email protected].