La crescita esplosiva dello spazio mobile ha accelerato la ricerca di una soluzione cross-platform solida e valida. Nel 2008, poco dopo l'introduzione dell'SDK di iPhone e dopo aver manipolato Cocoa e Objective-C, Brian LeRoux e i suoi colleghi di Nitobi hanno deciso che era meglio impiegare una soluzione multipiattaforma rispetto alla creazione di applicazioni mobili native.
Oggi PhoneGap supporta decine di migliaia di applicazioni mobili. Per Brian e il suo team, molto è cambiato dall'inizio di PhoneGap. Nel 2011, Adobe ha acquisito Nitobi e la fonte di PhoneGap è stata donata alla Apache Software Foundation come Cordova.
Sotto i riflettori di oggi, parlo con Brian dei primi giorni di PhoneGap, il futuro del mobile, e perché la distruzione di PhoneGap è una buona cosa.
PhoneGap è in circolazione dall'inizio della rivoluzione mobile ed è ben noto agli sviluppatori. Per coloro che non conoscono Brian LeRoux o PhoneGap, puoi parlarci di te e di come sei coinvolto nel progetto?
PhoneGap è stato creato da un piccolo gruppo di persone la maggior parte delle quali ha lavorato a Nitobi, in Canada, al momento.
Il primo si impegna dove è atterrato da Brock Whitten e Rob Ellis per iOS. In questi giorni, iOS è completamente dominio del prolifico Shazron Abdulla. Joe Bowser ha hackerato l'Android molto presto e continua a mantenerlo fino ad oggi.
Dave Johnson ha aggiunto vari bit di BlackBerry, ora ampiamente gestiti dagli stessi BlackBerry con l'aiuto di Lorin Beer. Jesse Macfadyen ha tagliato le incarnazioni di Windows Phone lavorando a stretto contatto con Microsoft.
Michael Brooks ha scovato la documentazione e gran parte della CLI (Command Line Interface) e degli strumenti di prova con Fil Maj. Anis Kadri ha guidato gran parte degli strumenti e delle scoperte dei plugin. Steve Gill è stato responsabile per le pubblicazioni e ha contribuito con gran parte degli strumenti correlati.
Herm Wong ha avviato Firefox OS e ora il nostro nuovo progetto GUI. L'identità del marchio è iniziata con Yohei Shimomae e da allora è stata ripresa da Joni Rustulka. Anche Google e IBM hanno un sacco di contributori.
Una storia di creazione ordinata con un singolo hacker nel seminterrato è una sorta di fantasia che il nostro settore ama ma raramente è il caso. Il software è sempre uno sforzo collettivo e tutti quelli che contribuiscono meritano un riconoscimento. Mi manca una metrica canadese di collaboratori qui, ma tu hai l'idea.
Per quanto mi riguarda, ho lavorato a Nitobi, ho contribuito con un sacco di codice a varie aree di PhoneGap dall'incarnazione, ma il mio obiettivo principale era costruire la cultura, la filosofia e gli obiettivi iniziali del progetto - le cose di importanza cruciale nella comunicazione della direzione e nella comunità galvanizzante.
Test, strumenti e onboarding erano altri primi problemi chiave per me. Alla fine la mia attenzione si è spostata maggiormente sulla crescita della committenza oltre Nitobi, che è culminata nella donazione di fonte ad Apache come Cordova.
Con PhoneGap che ha quasi sei anni, la maggior parte delle persone ne ha almeno sentito parlare. Per chi non ha familiarità con PhoneGap, puoi dire quale problema cerca di risolvere PhoneGap?
PhoneGap è pensato per creare app per dispositivi mobili utilizzando HTML, CSS e JavaScript. Supportiamo tutti i principali sistemi operativi mobili per la creazione e la distribuzione negli app store nativi. Ma siamo gli sviluppatori web più importanti e l'intenzione di PhoneGap è di dimostrare il web come una piattaforma di sviluppo di prima classe. Vogliamo creare app web, non trappole proprietarie.
In definitiva, PhoneGap offre un browser Web a schermo intero e un modello di estensibilità per accedere alle funzionalità della piattaforma nativa attraverso una semplice interfaccia di plugin. Il modello di plugin rende banalmente semplice esporre qualsiasi cosa sul sistema operativo alla vista web. In questo modo, i downstream possono prototipare rapidamente nuove funzionalità Web e gli sviluppatori di applicazioni non sono vincolati dalla tradizionale sandbox della vista Web.
Negli ultimi anni la maggior parte dei nostri sforzi è stata dedicata alla creazione di strumenti che astraggono flussi di lavoro di sviluppo mobile nativi comuni. Compilazione, emulazione, registrazione, installazione di plugin e quel genere di cose.
Come sono stati i primi tempi di PhoneGap? Quando hai realizzato che PhoneGap era una soluzione a un problema che molte società e sviluppatori si trovavano ad affrontare?
I primi tempi erano ridicoli e divertenti. PhoneGap è stato un progetto parallelo per lo più e i primi sviluppatori principali spesso hanno hackerato e filosofato all'Alibi Room, una famosa birreria di Vancouver, dopo ore.
Lentamente, quando il cellulare ha iniziato la sua ascesa, molti altri sviluppatori sono venuti alla mischia, attratti dalle comprensioni filosofiche che condividevamo.
Era, ed è ancora, un gruppo stufo di piattaforme proprietarie, modifica dei sistemi operativi e bloccato negli ecosistemi degli sviluppatori. Affaticato dalle piattaforme software che affermano "un vero modo", solo per aggiornare "in questo modo" ogni sei mesi e poi deprecarlo - se non scompare del tutto.
Durante tutti gli anni di questo abuso, la piattaforma web stava lentamente migliorando e le app che lo avevano colpito erano ancora in esecuzione. Non ci stavamo più innamorando del brillante materiale di marketing che si autodefiniva "linee guida per la progettazione dell'interfaccia umana".
Il web non ha mai subito alcuna minaccia, ma abbiamo trovato un trucco che potrebbe portare la lotta sulle stesse piattaforme che la minacciano. Il progetto era sempre open source, rispettato prima il web e progettato per dimostrare le caratteristiche che ritenevamo la piattaforma necessaria per rimanere competitiva rispetto alle alternative proprietarie. È sempre stato un gruppo di hacker scartato, ma stiamo attenti a non prenderci troppo sul serio.
Qualche anno fa, hai detto che PhoneGap "non è un martello d'oro" e che PhoneGap non è la soluzione per ogni applicazione mobile. È ancora vero o ci stiamo avvicinando a un web mobile che è potente quanto l'esperienza nativa?
Lo spettro delle potenziali app è sempre più ampio man mano che i browser e i dispositivi su cui girano migliorano. Non vorrei mai difendere PhoneGap come il soluzione definitiva. Ci sono considerazioni tecniche come le opportunità della piattaforma nativa e ci sono preoccupazioni più delicate come i driver aziendali, le competenze dei dipendenti, l'investimento di contenuti esistenti, le licenze, l'affidamento a fornitori di piattaforme di terze parti e persino le relazioni con i partner.
Le scelte tecnologiche portano sempre un compromesso e investire in tecnologie web come PhoneGap non è diverso.
La vera sfida affrontata dagli sviluppatori, e specialmente dall'azienda, è riconoscere che lo sviluppo di app per dispositivi mobili è proprio come lo sviluppo regolare del software. Questo non è solo un point in time marketing spike. C'è un intero ciclo di vita da considerare; progettazione, sviluppo, test, analisi e monitoraggio.
Lo sviluppo mobile richiede manutenzione continua e risorse. Gli one-off di una società di consulenza dovranno essere aggiornati quando verrà rilasciata una nuova versione di iOS o Android. Il reparto marketing ha bisogno di capire che cosa sta realizzando il contenuto e ha la possibilità di pubblicare rapidamente le modifiche al contenuto che non sta funzionando. Il dipartimento IT ha bisogno di rapporti sugli arresti anomali in fase di esecuzione e accesso all'infrastruttura di notifica push.
Il gioco più lungo che richiede risorse strategiche mirate è appena stato riconosciuto poiché molte organizzazioni stanno solo ora scoprendo che, almeno in parte, stanno diventando esse stesse società di software. Un investimento strategico in tecnologia che fa affidamento su un ecosistema proprietario di terze parti è un rischio aziendale. PhoneGap può aiutare a mitigare tale rischio. Alla fine non perderai mai una scommessa sul web.
L'acquisizione di Nitobi da parte di Adobe è stata un'importante pietra miliare per PhoneGap, ma Apache Cordova era probabilmente ancora più importante. Come ha fatto Apache Cordova a cambiare piattaforma?
L'acquisizione di Nitobi da parte di Adobe è stata assolutamente importante. Siamo stati liberati da pazzi lavori di consulenza per concentrarci esclusivamente su PhoneGap e non c'è dubbio che la piattaforma abbia beneficiato enormemente. La donazione di PhoneGap a Apache come Cordova è altrettanto significativa in una visione più lunga.
Lavorare con Apache ha portato un nuovo livello di disciplina al progetto. Il nostro processo di rilascio è molto più formale e, mentre è stato difficile mantenere la nostra cadenza, la nostra comunità vince il terreno sicuro legale che Apache è famoso per.
Questo territorio neutrale è un ottimo ambiente per le persone impiegate da diverse organizzazioni per collaborare senza preoccupazioni. Da quando siamo entrati in Apache abbiamo accolto i committer di IBM, BlackBerry, Microsoft, Google, Intel, HP, LG, Samsung e altro ancora.
Di conseguenza, abbiamo visto molte nuove distribuzioni downstream di Cordova. La mia preferenza è per Adobe PhoneGap, ma gli sviluppatori possono scegliere di scegliere come target le app BlackBerry Webworks, IBM Worklight, SAP SDK, Telerik, Intel XDK o Google Mobile Chrome.
Alcune persone usano solo Vanilla Apache Cordova e creano il proprio downstream. Amo questa diversità. Tutto ciò indica un ecosistema vivace e sano su cui la nostra comunità di sviluppatori può contare. Avanziamo rapidamente, risolviamo rapidamente i bug, aggiungiamo nuove funzionalità su cadenza regolare e abbiamo un processo di contributo molto ben compreso a cui chiunque può partecipare.
Apache ha una reputazione ben guadagnata per la politica e la burocrazia, ma anche migliorarla fa parte del nostro lavoro e lavorare con ASF (Apache Software Foundation) è stato alla fine la strada giusta per la nostra comunità a lungo termine. Sono molto orgoglioso di ciò che abbiamo realizzato con l'ASF.
PhoneGap è una grande piattaforma per lo sviluppo di applicazioni mobili. La distribuzione rimane ingombrante su molte piattaforme, ma hai provato a risolverlo con PhoneGap / Build. PhoneGap / Build sembra un martello d'oro per gli sviluppatori che cercano una soluzione multipiattaforma. Puoi dirci cosa fa il servizio e quale problema risolve?
PhoneGap Build è un compilatore ospitato in Adobe Creative Cloud. Utilizzando PhoneGap / Build, puoi scegliere come target qualsiasi sistema operativo mobile supportato da qualsiasi browser web. Puoi costruire un'app per iOS da un netbook o persino dal tuo telefono (meta).
Inizialmente pensavamo che questo potesse essere utile per l'integrazione continua e per scopi di test. È diventato un'utilità a tutto tondo per il processo molto discreto di compilazione di un'app e di fornire l'artefatto risultante come un URL. Fa solo una cosa e lo fa piuttosto bene. Abbiamo visto molte persone utilizzare PhoneGap / Build come API o come compilatore.
Una volta hai detto che credi che il futuro di PhoneGap risieda nella sua stessa distruzione. Puoi spiegare cosa intendi con questo?
Sì, l'obiettivo finale di PhoneGap è cessare di esistere. Non vogliamo scrivere app native. Siamo stati sulla strada dello sviluppo del client proprietario e sappiamo che porta ad un lock-in ecosistemico rischioso.
Vogliamo creare app web e PhoneGap è sempre stata una soluzione temporanea finché i browser, o forse le app web installabili, sono alternative valide. Penso che siamo molto vicini a quella realtà oggi. Per molte applicazioni, il primo web è assolutamente appropriato.
Per far sì che le app Web mobili abbiano successo con l'ubiquità che vediamo sul desktop, è utile dimostrare le aree che il Web deve migliorare. L'architettura del plug-in PhoneGap è una superficie davvero liscia per creare prototipi discreti per l'esposizione di nuove funzionalità alla superficie web tradizionale. Questa sottile filosofia ha aiutato a illuminare le giuste indicazioni per noi, implementando standard, pollyfill, collaborando con il W3C alla progettazione delle API e portando preoccupazioni ai fornitori di browser che portano a nuove funzionalità della piattaforma.
Il riconoscimento aperto della scomparsa definitiva potrebbe essere un tragico evento nel tempo o una comprensione strategica da affrontare contro. Per testimoniare la nostra rovina, PhoneGap deve fare tutto il possibile per vedere vincere la piattaforma web.
Quali sono alcuni dei punti di vista che dobbiamo ancora risolvere sul web? In altre parole, quanto siamo vicini a un web mobile che offre un'esperienza che rivaleggia con quella delle applicazioni native?
25 anni dopo, è difficile criticare la piattaforma web. Tuttavia, colpire il web, sul web, è una tradizione onorata dal tempo del mestiere del webmaster.
La categoria di generazione di entrate n. 1 nell'App Store è costituita dai giochi. Quindi pensiamo a quello che serve per essere un grande gioco. L'audio generale è disordinato, ma l'API Web Audio è pazzesca. WebRTC, o qualsiasi altra cosa finiamo per chiamarlo, ha una grande promessa per rendere le app in tempo reale più reali.
Poi c'è un po 'di impianto idraulico che non è atterrato quasi ovunque come Full Screen e Game Controller. Quando tutta questa roba è generalmente disponibile, farà tremare i giochi. Le API intense di dati come Web Audio, WebRTC e WebGL ci aiuteranno a trovare i margini delle prestazioni di esecuzione di JavaScript e tutte le prime indicazioni sono estremamente positive.
Il layout sta diventando piuttosto buono. Flexbox è eccezionale e nutro grandi speranze per i CSS Grid. L'ultima versione di Firefox (28) corregge gli ultimi bug con Flexbox. Non ho idea di quando i Grid CSS atterrano, ma sono paziente. Le query multimediali, a volte denominate Responsive Web Design, sono utili. Voglio un modello di capacità più robusto che ci consenta di rendere le interfacce adattive in modo ottimale.
La più grande opportunità è quella di spezzare la trama offline, probabilmente meglio definita "occasionalmente connessa". Le app Web installate, come le app PhoneGap, sono intrinsecamente offline, ma resta da definire un modello di autorizzazione completo. Mozilla, Google e il W3C ci stanno lavorando.
Molti dei nostri lettori hanno l'ambizione di svilupparsi per i dispositivi mobili. Se stessimo iniziando oggi, da dove cominceresti? Che consiglio daresti a te stesso?
Il mobile non è molto diverso dalla normale programmazione del client. Il consiglio classico è di testare su dispositivi reali e incoraggio le persone ad apprendere le piattaforme native, ma a non crescere troppo attaccate a loro. Un buon esempio potrebbe essere l'aggiornamento da iOS 6 a iOS 7. Un PhoneGap ben progettato e progettato o una normale app Web non era fragile per quell'aggiornamento.
In caso contrario, si applica la normale saggezza del programmatore. Sii ambizioso nel tuo ambito ma discreto nelle tue implementazioni. Crea molti rami e preparati a buttare via la maggior parte del tuo lavoro. Non sei il tuo codice, quindi rifatti spietatamente e cerca un feedback critico.
Piccoli moduli e prototipi sono più facili da ragionare, corretti, testati e convalidati. Non farti coinvolgere dalla moda di struttura e libreria. Concentrati sullo spazio problema che hai e prosegui furiosamente e spassionatamente. Scrivi test e rendi semplicemente semplice per qualcuno nuovo al codebase eseguire i test stessi.
Infine, sii super eccellente con i tuoi colleghi. Il web ha una memoria lunga, questo settore è più piccolo di quanto possa sembrare e nessuno vuole lavorare con uno stronzo. Nessuno ha mai pensato che una persona maleducata fosse intelligente. Il fiammeggiare è solo un comportamento insicuro e professionalmente immaturo. La programmazione è abbastanza difficile, tutti possiamo imparare qualcosa gli uni dagli altri e optare per un'esperienza piacevole nel farlo.
Vorrei ringraziare Brian per il suo tempo e per aver condiviso le sue idee e intuizioni con Tuts +. Puoi sentire Brian parlare a Future Insights Live 2014 a Las Vegas a giugno. La conferenza ha una lista impressionante di relatori che coprono il meglio del web design, dello sviluppo e dei dispositivi mobili. Utilizza il codice promozionale TUTS per il 15% di sconto.