Sviluppo di app per dispositivi mobili dopo PhoneGap e Cordova

Todd Anglin è vicepresidente della strategia di prodotto e delle relazioni con gli sviluppatori presso Progress.

Per quasi un decennio, PhoneGap ha offerto agli sviluppatori web un percorso a basso attrito per la creazione di app mobili che hanno accesso alle funzionalità native del dispositivo. PhoneGap consente a molti sviluppatori di creare app per iOS e Android (e anche Windows Phone e BlackBerry, per un po ') utilizzando competenze e librerie JavaScript che già conoscono e amano. Questa combinazione di competenze web e accesso al dispositivo nativo (comunemente noto come "ibrido") è diventata saldamente radicata come uno degli approcci principali allo sviluppo di app mobili.

Ora, con il rallentamento del lavoro sull'evoluzione di PhoneGap (e il relativo progetto open source Apache Cordova), quali sono le prospettive per lo sviluppo mobile ibrido?

Ovviamente, come progetto open source, Apache Cordova non scomparirà presto. Molte aziende hanno grandi investimenti in Cordova e la comunità di Cordova continua a colmare le lacune mentre i committer aziendali diminuiscono e fluiscono.

Ma PhoneGap era un progetto creato con l'intento esplicito di diventare obsoleto e quel momento potrebbe essere su di noi.

Nel corso degli ultimi 10 anni, sono emerse due opzioni probabilmente superiori pronte a sostituire PhoneGap e "hybrid 1.0". Si tratta di app Web progressive e app native basate su JavaScript.

App web progressive

PhoneGap è sempre stato pensato per aiutare gli sviluppatori web a fare di più sui dispositivi mobili quando raggiungono i limiti dei browser web mobili. PhoneGap riutilizza tutto dal web — HTML, CSS, JavaScript — e si affida a plugin scritti in codice nativo (Objective-C, Swift, Java) per accedere a specifiche funzioni native del dispositivo tramite JavaScript. Nel tempo, questo si è rivelato sia una benedizione che una maledizione. La curva di apprendimento è molto bassa, ma i browser web incorporati nelle app PhoneGap spesso hanno problemi con le prestazioni (no grazie ad Apple e, per molto tempo, alla visualizzazione web predefinita di Android). Tuttavia, PhoneGap era una soluzione funzionante che ha prodotto risultati "abbastanza buoni" per molti.

Nel frattempo, gli standard web hanno continuato a evolversi e negli ultimi tre o quattro anni la spinta a migliorare gli standard web necessari per la creazione di app mobili offline ad alte prestazioni si è catalizzata sotto il termine "app web progressive".

Con le app web progressive, la piattaforma web compie un altro gigantesco passo avanti. Ora le app Web hanno il controllo completo sullo stack di rete, consentendo di eseguire operazioni avanzate di memorizzazione nella cache e offline. Sono disponibili anche nuove API che consentono alle app Web di eseguire altre operazioni spesso associate alle app mobili native, come l'avvio con una schermata iniziale, l'invio di notifiche push o la richiesta di informazioni di pagamento agli utenti. Aggiungilo a tutte le altre API "HTML5" che sono arrivate nei browser, come l'accesso ad accelerometri, fotocamere, ecc. E avrai una piattaforma web molto capace per molti tipi di app.

Tutte queste funzionalità avrebbero richiesto un'app nativa quando è stato creato PhoneGap, ma ora i browser hanno recuperato. Possiamo togliere le rotelle ibride.

Tuttavia, rimangono dei limiti sul web. È solo la natura della piattaforma basata su standard a movimento lento. Le app web progressive sono un enorme passo avanti, ma non sono un sostituto perfetto per tutte le app. Quindi cosa devono fare gli sviluppatori web dopo l'ibrido se hanno ancora bisogno dell'accesso completo alle API dei dispositivi nativi? Inserisci app native basate su JavaScript.

App native basate su JavaScript

Circa cinque anni fa, diverse aziende hanno iniziato a cercare di trovare una soluzione ai frequenti problemi di prestazioni che affliggevano le app mobili ibride. L'obiettivo: creare framework in grado di fornire prestazioni "veramente native" e ricchezza dell'interfaccia utente pur rimanendo multipiattaforma e familiare agli sviluppatori web. Da questo lavoro sono emerse due opzioni popolari: React Native (da Facebook) e NativeScript (da Progress).

Questi nuovi framework consentono agli sviluppatori di continuare a riutilizzare le proprie competenze web, ma invece di avvolgere semplicemente un browser web in una shell dell'app nativa (come fa PhoneGap), questi nuovi approcci producono un'interfaccia utente nativa. Il risultato sono applicazioni mobili che si sentono e si comportano più come app native "grezze" su piattaforma singola, pur continuando a guadagnare produttività multipiattaforma.

Ci sono stati alcuni nomi per descrivere questo approccio: "ibrido 2.0", "ibrido nativo" e "nativo multipiattaforma", tra gli altri. Forrester ha introdotto il termine "app native basate su JavaScript" e, sebbene non esca esattamente dalla lingua, è almeno un nome accurato e descrittivo.

Con i framework di app native basati su JavaScript, gli sviluppatori Web hanno la maggior parte di ciò che amavano di PhoneGap, ma con ancora più potenza e prestazioni. Ad esempio, NativeScript, che è profondamente integrato con Angular e Vue, offre agli sviluppatori pieno accesso a tutte le API native tramite JavaScript. Ognuno di loro. Se può essere fatto in un'app nativa, può essere fatto in NativeScript ei moduli multipiattaforma consentono la maggior parte delle cose da codificare una volta e funzionano sia su iOS che su Android. È come i plugin PhoneGap sugli steroidi.

React Native e NativeScript sono entrambi fiorenti progetti open source, ed entrambi sono pronti per essere la naturale evoluzione di "hybrid 1.0" per i casi in cui le app web progressive non si adattano al conto.

Quale scegli?

Sebbene PhoneGap non sia andato, è difficile immaginare perché un nuovo progetto dovrebbe iniziare con PhoneGap oggi quando esistono opzioni come app web progressive e app native basate su JavaScript. Entrambe le opzioni rappresentano percorsi costruiti per il futuro e sono relativamente banali da adottare per gli sviluppatori web che hanno già familiarità con lo sviluppo di app ibride.

Anche la scelta tra le opzioni dovrebbe essere semplice:

  1. Se la tua app non richiede molto accesso all'API del dispositivo, non deve essere negli app store e può vivere con alcuni limiti aggiuntivi su iOS (per ora), crea un'app web progressiva.
  2. Se i requisiti della tua app superano i limiti delle app Web progressive, scegli una delle piattaforme di app native basate su JavaScript:
    1. Se sei un negozio React, scegli React Native.
    2. Se sei un negozio Angular o Vue, scegli NativeScript. 

Molte delle aziende che concepiscono questi framework open source sono molto disponibili ad aiutare e la maggior parte offre una guida tecnica per la migrazione da PhoneGap al loro framework. Se stai cercando un posto dove iniziare il tuo viaggio di migrazione, consultare un esperto è sempre una buona idea.

E se rimani bloccato o preferisci semplicemente parlare con un esperto di terze parti, ci sono una serie di ottime risorse disponibili per la comunità degli sviluppatori: la scelta più ovvia e popolare è GitHub. Tuttavia, da un po 'di tempo sono stati creati molti altri forum per aiutare gli sviluppatori a migrare da PhoneGap e ibride alle app Web progressive e offrono alcuni ottimi suggerimenti.

In definitiva, PhoneGap è stato all'altezza del suo nome. Ha aiutato gli sviluppatori web a superare il "divario" nello sviluppo di app mobili per quasi un decennio. È una corsa impressionante per qualsiasi standard. Ora è il momento che le app web progressive e i framework di app native basati su JavaScript prendano il sopravvento e guidino gli sviluppatori nel futuro.

Hybrid (1.0) è morto. Lunga vita all'ibrido (2.0).

Todd Anglin è vicepresidente della strategia di prodotto e delle relazioni con gli sviluppatori presso Progress. 

-

Il New Tech Forum offre un luogo per esplorare e discutere la tecnologia aziendale emergente in profondità e ampiezza senza precedenti. La selezione è soggettiva, in base alla nostra scelta delle tecnologie che riteniamo importanti e di maggiore interesse per i lettori. non accetta materiale di marketing per la pubblicazione e si riserva il diritto di modificare tutti i contenuti forniti. Invia tutte le richieste a  [email protected] .