Creșterea explozivă a spațiului mobil a accelerat căutarea unei soluții robuste și viabile pe mai multe platforme. În 2008, la scurt timp după introducerea SDK-ului iPhone și după ce a făcut cocoa și obiectivul C, Brian LeRoux și colegii săi de la Nitobi au decis că timpul lor a fost mai bine petrecut pentru a construi o soluție cross-platform decât a construi aplicații mobile native.
Astăzi, PhoneGap deține zeci de mii de aplicații mobile. Pentru Brian și echipa sa, s-au schimbat multe de la începutul PhoneGap. În 2011, Adobe a achiziționat Nitobi, iar sursa PhoneGap a fost donată Fundației Software Apache ca Cordova.
În reflecția de astăzi, vorbesc cu Brian despre primele zile ale PhoneGap, viitorul mobilului și de ce distrugerea lui PhoneGap este un lucru bun.
PhoneGap a fost în jur de la începutul revoluției mobile și este bine cunoscut printre dezvoltatori. Pentru cei care nu au Brian LeRoux sau PhoneGap, poți să ne spui despre tine și despre cum ești implicat în proiect?
PhoneGap a fost creat de un mic grup de oameni care lucrau cel mai mult la Nitobi, în Canada în acel moment.
Primul se angajează acolo unde a aterizat Brock Whitten și Rob Ellis pentru iOS. Aceste zile, iOS este complet domeniul prolificului Shazron Abdulla. Joe Bowser a hacked Android foarte devreme și continuă să-l mențină până în această zi.
Dave Johnson a adăugat diferiți biți BlackBerry, acum în mare parte întreținute de BlackBerry cu ajutorul Lorin Beer. Jesse Macfadyen a tăiat încarnările Windows Phone care lucrează îndeaproape cu Microsoft.
Michael Brooks a stârnit documentația și o mare parte din interfața cu linia de comandă (CLI) și instrumentele de testare cu Fil Maj. Anis Kadri a condus o mare parte din instrumentele și descoperirea pluginurilor. Steve Gill a fost responsabil pentru emisiuni și a contribuit cu o mare parte din instrumentele aferente.
Herm Wong a lansat sistemul de operare Firefox și acum noul nostru proiect GUI. Identitatea de brand a început cu Yohei Shimomae și a fost preluată de Joni Rustulka. Google și IBM au și o grămadă de contribuitori.
O poveste de creație ordonată cu un singur hacker în subsol este un fel de fantezie pe care industria noastră o iubește, dar rareori este cazul. Software-ul este întotdeauna un efort colectiv și toți cei care contribuie merită să fie recunoscuți. Mi-e dor de o cantitate canadiană de contribuitori aici, dar tu ai ideea.
Pentru mine, am lucrat la Nitobi, am contribuit cu multe coduri la diferite domenii ale PhoneGap de la incarnare, dar accentul meu principal a fost construirea culturii de proiect, a filozofiei și obiectivelor timpurii - lucrurile extrem de importante în comunicarea direcției și galvanizarea comunității.
Testarea, sculele și bordajul au fost și alte preocupări importante pentru mine. În cele din urmă, accentul meu sa mutat mai mult la creșterea angajamentului dincolo de Nitobi, care a culminat cu donarea de surse către Apache ca Cordova.
Cu numărul PhoneGap fiind aproape de șase ani, majoritatea oamenilor au auzit cel puțin de ea. Pentru cei care nu sunt familiarizați cu PhoneGap, puteți spune ce problemă PhoneGap încearcă să rezolve?
PhoneGap este pentru construirea de aplicații mobile utilizând HTML, CSS și JavaScript. Suportăm toate sistemele de operare mobile majore pentru construirea și distribuirea către magazinele de aplicații native. Suntem însă principalii dezvoltatori web, iar intenția PhoneGap este de a demonstra că web-ul este o platformă de dezvoltare de primă clasă. Vrem să construim aplicații web, nu capcane de proprietate.
În cele din urmă, PhoneGap vă oferă un browser web de tip ecran complet și un model de extensibilitate pentru a accesa funcționalitatea platformei native printr-o interfață de plugin simplu. Modelul plugin-ului îl face ușor să exprime ceva din sistemul de operare la vizualizarea web. În acest fel, fluxurile descendente pot să lanseze rapid prototipuri de noi funcții web, iar dezvoltatorii de aplicații nu sunt constrânși de spațiul tradițional de vizualizare.
În ultimii ani, cea mai mare parte a efortului nostru a fost dedicată creării de instrumente care absoarbe fluxuri de lucru mobile native comune. Compilarea, emularea, logarea, instalarea de plugin-uri și astfel de lucruri.
Cum au arătat primele zile ale PhoneGap? Când ați dat seama că PhoneGap a fost o soluție la o problemă cu care se confruntau multe companii și dezvoltatori?
Primele zile erau ridicole și distractive. PhoneGap a fost în mare parte un proiect lateral, iar dezvoltatorii de bază de la început au fost hackați și filozofiați de multe ori la Alibi Room, un faimos bar de bere din Vancouver, după ore.
Încet, pe măsură ce mobilul și-a început ascensiunea meteorică, mulți alți dezvoltatori au venit la frământare, atrasi de înțelegerile filosofice pe care le împărțim.
A fost și este încă un grup hrănit cu platforme proprietare, schimbând sistemele de operare și blocat în ecosistemele dezvoltatorilor. Obosit de platformele software care revendică "o cale adevărată", doar să actualizeze "în acest fel" la fiecare șase luni și mai târziu să o deprime - dacă nu dispare cu totul.
Pe parcursul a mai multor ani de abuz, platforma web se îmbunătățește lent și aplicațiile care au vizat-o încă mai fugară. Nu am mai căzut pentru materialul de marketing strălucitor numindu-se "îndrumări de proiectare a interfeței umane".
Web-ul nu a suferit niciodată nici o amenințare, dar am găsit o hack care ar putea aduce lupta chiar pe platformele care o amenință. Proiectul a fost întotdeauna cu sursă deschisă, a respectat mai întâi web-ul și a fost conceput pentru a demonstra caracteristicile pe care am simțit că este necesar ca platforma să rămână competitivă față de alternativele de proprietate. Acesta a fost întotdeauna un grup de hackeri, dar am grija să nu ne luăm prea în serios.
Acum câțiva ani, ați spus că PhoneGap "nu este un ciocan de aur" și că PhoneGap nu este soluția pentru fiecare aplicație mobilă. Este încă adevărat sau ne apropiem de o rețea mobilă la fel de puternică ca experiența nativă?
Spectrul de aplicații potențiale este întotdeauna mai amplu pe măsură ce browserele și dispozitivele pe care le rulează se îmbunătățesc. Nu aș susține niciodată telefonul ca soluția finală. Există considerații tehnice, cum ar fi provocările native ale platformelor, și există preocupări mai blânde precum driverele de afaceri, aptitudinile angajaților, investițiile existente în conținut, licențierea, dependența de furnizorii de platforme terțe și chiar relațiile partenere.
Alegerile tehnologice produc întotdeauna compromisuri și investițiile în tehnologii web, cum ar fi PhoneGap, nu este diferit.
Adevărata provocare cu care se confruntă dezvoltatorii și, mai ales, întreprinderea, recunoaște că dezvoltarea aplicațiilor mobile este la fel ca dezvoltarea regulată a software-ului. Acest lucru nu este doar un moment în timp spike de marketing. Există un întreg ciclu de viață care trebuie luat în considerare; proiectare, dezvoltare, testare, analiză și monitorizare.
Dezvoltarea mobilă necesită întreținerea și resursele în curs de desfășurare. O singură operațiune de către o firmă de consultanță va fi necesară actualizării atunci când va fi lansată o nouă versiune de iOS sau Android. Departamentul de marketing trebuie să înțeleagă ce conținut are performanțe și are capacitatea de a publica rapid modificările aduse conținutului care nu funcționează. Departamentul IT are nevoie de rapoarte privind accidentele de rulare și de accesul la infrastructura de notificare prin împingere.
Jocul mai lung, care necesită resursă strategică deliberată, este doar recunoscut, deoarece multe organizații abia acum descoperă că acestea, cel puțin parțial, devin ele însele companii de software. O investiție strategică în tehnologie care se bazează pe un ecosistem proprietate terță parte este un risc de afaceri. PhoneGap poate ajuta la atenuarea acestui risc. În cele din urmă, nu veți pierde niciodată un pariu pe web.
Achiziția lui Nitobi de către Adobe a reprezentat o piatră de hotar importantă pentru PhoneGap, dar Apache Cordova a fost probabil și mai importantă. Cum a schimbat Apache Cordova platforma?
Achiziția lui Nitobi de către Adobe a fost absolut importantă. Am fost eliberați de munca de consultanță nebun să se concentreze exclusiv pe PhoneGap și nu există nici o îndoială că platforma a beneficiat extraordinar. Donația sursei PhoneGap către Apache ca Cordova este la fel de semnificativă într-o perspectivă mai lungă.
Lucrul cu Apache a adus un nou nivel de disciplină proiectului. Procesul nostru de lansare este mult mai formal și în timp ce a fost o provocare pentru a ne menține ritmul, comunitatea noastră câștigă terenul sigur din punct de vedere legal că Apache este renumit pentru.
Acest teritoriu neutru este un mediu minunat pentru persoanele angajate de diferite organizații să colaboreze fără îngrijorare. De când am intrat în Apache, am salutat comitete de la IBM, BlackBerry, Microsoft, Google, Intel, HP, LG, Samsung și altele.
Ca urmare a acestui fapt, am văzut multe distribuții noi în aval ale Cordova. Preferința mea este pentru Adobe PhoneGap, dar dezvoltatorii pot alege să vizeze BlackBerry Webworks, IBM Worklight, SAP SDK, Telerik, Intel XDK sau Google Mobile Chrome Apps.
Unii oameni folosesc doar vanilia Apache Cordova și își creează propriul aval. Îmi place această diversitate. Toate acestea indică un ecosistem vibrant și sănătos pe care comunitatea dezvoltatorilor noștri le poate conta. Repetăm repede, răspundem rapid la erori, adăugăm noi caracteristici pe o cadență obișnuită și avem un proces de contribuție foarte bine înțeles pe care oricine poate să-l participe.
Apache are o reputație bine câștigată în ceea ce privește politica și birocrația, însă îmbunătățirea acesteia face parte din slujba noastră, iar colaborarea cu ASF (Fundația Apache Software) a fost în cele din urmă calea cea bună pentru comunitatea noastră pe termen lung. Sunt foarte mândru de ceea ce am realizat cu ASF.
PhoneGap este o platformă excelentă pentru dezvoltarea de aplicații mobile. Implementarea rămâne greoaie pe multe platforme, însă ați încercat să rezolvați acest lucru cu PhoneGap / Build. PhoneGap / Build sună ca un ciocan de aur pentru dezvoltatorii care caută o soluție inter-platformă. Puteți să ne spuneți ce face serviciul și ce problemă rezolvă?
PhoneGap Build este un compilator găzduit în Adobe Creative Cloud. Folosind PhoneGap / Build, puteți viza orice sistem de operare mobil pe care îl susținem din orice browser web. Puteți construi o aplicație iOS de pe un netbook sau chiar de propriul dvs. telefon (meta).
Inițial am crezut că acest lucru ar putea fi util pentru integrarea și testarea continuă. Acesta a devenit un utilitar cu totul în jur pentru procesul foarte discret de compilare a unei aplicații și de a da artefactului rezultat o adresă URL. Face doar un singur lucru și face destul de bine. Am văzut că mulți oameni folosesc PhoneGap / Build ca API sau compilator.
Odată ați spus că credeți că viitorul PhoneGap se află în distrugerea sa. Poți să explici ce vrei să spui prin asta?
Da, scopul final al PhoneGap este să înceteze să mai existe. Nu vrem să scriem aplicații native. Am fost pe drumul dezvoltării clienților proprietari și știți că aceasta duce la blocarea ecosistemului riscant.
Vrem să construim aplicații web și PhoneGap a fost întotdeauna o soluție stopgap până când browserele, sau poate aplicațiile web instalabile, sunt alternative capabile. Cred că suntem foarte apropiați de această realitate astăzi. Pentru multe aplicații, prima pagină web este absolut potrivită.
Pentru ca aplicațiile web mobile să reușească cu ubiquitatea pe care o vedem pe desktop, este util să demonstrăm domeniile pe care trebuie să le îmbunătățească. Arhitectura pluginului PhoneGap este o suprafață cu adevărat slick pentru a crea prototipuri discrete pentru a expune noile caracteristici la suprafața web tradițională. Această filozofie subtilă a ajutat la marcarea direcțiilor corecte pentru noi, prin implementarea standardelor, pollyfills, colaborarea cu W3C pe designul API și aducerea preocupărilor furnizorilor de browsere care duc la noi funcții de platformă.
Recunoașterea deschisă a decesului final ar putea fi fie un eveniment tragic în timp, fie o înțelegere strategică pentru a planifica împotriva. Pentru a fi martorii răgazului nostru, PhoneGap trebuie să facă tot ce poate pentru a vedea câștigarea platformei web.
Care sunt unele puncte de durere pe care trebuie să le rezolvăm pe web? Cu alte cuvinte, cât de aproape suntem de pe o rețea mobilă care oferă o experiență care concurează cu cea a aplicațiilor native?
Acum 25 de ani este greu de criticat platforma web. Cu toate acestea, bashing web, pe web, este o tradiție onorat timp de ambarcațiunile de webmaster.
Cea mai importantă categorie de generare a veniturilor din App Store este jocurile. Deci, să ne gândim la ce este nevoie pentru a fi un joc minunat. Audio-ul general este dezordonat, dar API-ul Web Audio este nebun. WebRTC, sau orice altceva am ajuns să îl numim, are o mare promisiune pentru a face aplicațiile în timp real mai realiste.
Apoi, există o grămadă de instalații sanitare care nu a aterizat destul de omniprezent, cum ar fi Full Screen și Game Controller. Când toate aceste lucruri sunt în general disponibile, se va agita jocurile. API-urile de date intensive, cum ar fi Web Audio, WebRTC și WebGL, ne vor ajuta să găsim margini ale performanței de executare a JavaScript și toate indicațiile timpurii sunt extrem de pozitive.
Aspectul devine destul de bun. Flexbox este mare și am mari speranțe pentru rețelele CSS. Ultima versiune de Firefox (28) rezolvă ultimele bug-uri cu Flexbox. N-am nici o idee când aterizează rețelele CSS, dar sunt răbdător. Întrebările despre medii, uneori cunoscute sub numele de Responsive Web Design, sunt de ajutor. Vreau un model de capacitate mai robust pentru a ne permite să realizăm optim interfețele adaptive.
Cea mai mare oportunitate este de a sparge într-adevăr povestea offline - probabil mai bine numită "ocazional conectată". Aplicațiile Aplicații Web instalate ca Aplicații PhoneGap sunt intrinsec offline, însă rămâne de definit un model de permisiune completă. Mozilla, Google și W3C lucrează la aceasta.
Mulți dintre cititorii noștri au ambiția de a se dezvolta pentru mobil. Dacă începeați azi, de unde ați începe? Ce te sfătuiești să-ți dai singur?
Mobile nu este mult diferit de programarea regulată a clienților. Sfatul clasic este acela de a testa dispozitivele reale și încurajez oamenii să învețe platformele native, dar să nu crească prea atașați de ei. Un exemplu bun ar fi actualizarea iOS 6-iOS 7. O aplicație de telefon sau o aplicație web obișnuită bine concepută și proiectată nu a fost fragilă pentru acea actualizare.
În caz contrar, se aplică toată înțelepciunea obișnuită a programatorului. Fiți ambițioși în domeniul dvs. de aplicare, dar discreți în implementările dvs. Creați o mulțime de ramuri și fiți pregătit să vă aruncați cea mai mare parte a muncii. Nu sunteți codul vostru, deci refăctorul fără cruțare și să căutați feedback critic.
Modulele mici și prototipurile sunt mai ușor de explicat, cursul este corect, testează și validează. Nu vă lăsați prinși în mod cadru și de bibliotecă. Concentrați-vă pe spațiul cu probleme pe care îl aveți și iterați furios și nemișcat. Scrieți testele și faceți-le moartă simplu pentru cineva nou la baza de coduri pentru a executa testele.
În cele din urmă, fii excelent pentru colegii tăi. Web-ul are o memorie lungă, această industrie este mai mică decât ar putea apărea mai întâi și nimeni nu dorește să lucreze cu un nenorocit. Nimeni nu a crezut vreodată că o persoană nepolitică era inteligentă. Flamingul este doar un comportament nesigur și profesional imatur. Programarea este destul de greu, putem să învățăm ceva unul de celălalt și să optăm pentru o experiență plăcută în acest sens.
Aș dori să-i mulțumesc lui Brian pentru timpul petrecut și pentru a-și împărtăși ideile și perspectivele cu Tuts +. Puteți auzi că Brian vorbește la Future Insights Live 2014 în Las Vegas în iunie. Conferința are o listă impresionantă de vorbitori care acoperă cele mai bune în designul, dezvoltarea și mobilul web. Utilizați codul de cupon TUTS pentru o reducere de 15%.