Den eksplosive veksten i mobilrommet har akselerert søket etter en robust og levedyktig plattformløsning. I 2008, kort tid etter introduksjonen av iPhone SDK og etter å ha fiddling med Cocoa og Objective-C, bestemte Brian LeRoux og hans kollegaer på Nitobi at deres tid var bedre brukt til å bygge en kryssplattformløsning enn å bygge inn mobile applikasjoner.
TelefonGap har i dag titusener av mobile applikasjoner. For Brian og hans lag har mye endret seg siden starten av PhoneGap. I 2011 kjøpte Adobe Nitobi og kilden til PhoneGap ble donert til Apache Software Foundation som Cordova.
I dagens spotlight snakker jeg med Brian om de tidlige dagene til PhoneGap, mobilens fremtid, og hvorfor PhoneGap ødeleggelse er en god ting.
PhoneGap har eksistert siden starten av mobilrevolusjonen og er kjent blant utviklere. For de som ikke bruker Brian LeRoux eller PhoneGap, kan du fortelle oss om deg selv og hvordan du er involvert i prosjektet?
PhoneGap ble opprettet av en liten gruppe mennesker som de fleste arbeidet på Nitobi, i Canada på den tiden.
Den første begår hvor landet av Brock Whitten og Rob Ellis for iOS. I dag er iOS helt domenet til den frodige Shazron Abdulla. Joe Bowser hacket ut veldig tidlig Android og fortsetter å opprettholde den til denne dagen.
Dave Johnson la til forskjellige BlackBerry-biter, nå i stor grad vedlikeholdt av BlackBerry selv ved hjelp av Lorin Beer. Jesse Macfadyen kutter Windows Phone-inkarnasjoner som jobber tett med Microsoft.
Michael Brooks slo ut dokumentasjonen og mye av CLI (Command Line Interface) og testverktøy med Fil Maj. Anis Kadri har ledet mye av plugins verktøy og oppdagelse. Steve Gill har vært ansvarlig for utgivelser og bidratt mye av det relaterte verktøyet.
Herm Wong startet Firefox OS og nå vårt nye GUI-prosjekt. Branding-identiteten startet med Yohei Shimomae og har siden blitt tatt opp av Joni Rustulka. Google og IBM har også en hel del bidragsytere.
En ryddig skapelseshistorie med en enkelt hacker i kjelleren er en slags fantasi som vår bransje elsker, men er sjelden tilfellet. Programvare er alltid en kollektiv innsats, og alle som bidrar fortjener anerkjennelse. Jeg savner et kanadisk metrisk tonn bidragsytere her, men du får ideen.
For meg selv jobbet jeg på Nitobi, bidro masse kode til ulike områder av PhoneGap fra inkarnasjon, men hovedfokuset mitt var å bygge den tidlige prosjektkulturen, filosofien og målene - det som er avgjørende for kommunikasjonsretning og galvanisering av samfunnet.
Testing, verktøy og ombordstigning var andre viktige bekymringer for meg. Til slutt flyttet fokuset mitt til å vokse kommisjonen utenfor Nitobi, som kulminerte i kildedonasjonen til Apache som Cordova.
Med PhoneGap å være nær seks år gammel, har de fleste i det minste hørt om det. For de som ikke er kjent med PhoneGap, kan du fortelle hvilket problem PhoneGap prøver å løse?
PhoneGap er for å bygge mobile apps ved hjelp av HTML, CSS og JavaScript. Vi støtter alle de store mobile operativsystemene for bygging og distribusjon til innfødte appbutikker. Men vi er webutviklere først og fremst, og PhoneGaps hensikt er å demonstrere nettet som en førsteklasses utviklingsplattform. Vi ønsker å bygge webapps, ikke proprietære feller.
I siste instans gir PhoneGap deg en fancy fullskjerm nettleser og en utvidelsesmodell for å få tilgang til innbygget plattformfunksjonalitet gjennom et enkelt plugin-grensesnitt. Pluggmodellen gjør det trivielt enkelt å eksponere noe på operativsystemet til webvisningen. På denne måten kan nedstrømmer raskt prototype nye webfunksjoner, og programutviklere er ikke begrenset av den tradisjonelle web-view-sandboksen.
I de senere år har hoveddelen av vår innsats vært dedikert til å skape verktøy som abstraherer vanlige innfødte mobile utviklings arbeidsflyter. Samling, emulering, logging, installering av plugins og den slags ting.
Hva så de første dagene av PhoneGap ut? Når skjønte du at PhoneGap var en løsning på et problem som mange bedrifter og utviklere sto overfor?
De tidlige dagene var latterlige og morsomme. PhoneGap var et sideprosjekt for det meste, og de tidlige kjerneutviklerne ble ofte hacket og filosofisert på Alibi-rommet, en berømt ølbar i Vancouver, etter timer.
Langsomt, som mobilen begynte sin meteoriske oppgang, kom mange andre utviklere til bråk, tiltrukket av de filosofiske forståelsene vi delte.
Det var, og fremdeles, en gruppe lei seg av proprietære plattformer, endrede operativsystemer, og låst i utviklerøkosystemer. Utviklet av programvareplattformer som hevder "en sann måte", bare for å oppdatere "på den måten" hver sjette måned og senere avskrive den - om ikke forsvinner helt.
Gjennom hele årene av dette misbruket ble webplatformen langsomt forbedret, og apper som målrettet det, kjørte fortsatt. Vi faller ikke lenger for det skinnende markedsføringsmaterialet som kaller seg "retningslinjer for menneskelig grensesnittdesign".
Internett har aldri lidd noen trussel, men vi fant en hack som kunne bringe kampen til selve plattformene truer den. Prosjektet var alltid åpen kildekode, respekterte nettet først, og designet for å demonstrere funksjoner vi følte at plattformen behøvde å forbli konkurransedyktig mot proprietære alternativer. Det har alltid vært en scrappy gruppe hackere, men vi er forsiktig med å ikke ta oss for alvor.
For noen år siden sa du at PhoneGap "ikke er en gylden hammer", og at PhoneGap ikke er løsningen for alle mobile applikasjoner. Er det fortsatt sant eller kommer vi nærmere en mobilnett som er like kraftig som den opprinnelige opplevelsen?
Spekteret av potensielle apper vokser alltid bredere som nettlesere, og enhetene de kjører på, forbedres. Jeg vil aldri forplikte PhoneGap som de ultimate løsning. Det er tekniske overveier, for eksempel innfødte plattformer, og det er myke bekymringer som forretningsdrivere, ansattes ferdigheter, eksisterende innholdsinvestering, lisensiering, tillit til tredjeparts plattformsleverandører, og til og med partnerrelasjoner.
Teknologi valg alltid bringe tradeoffs og investere i web teknologier som PhoneGap er ikke annerledes.
Den virkelige utfordringen som utviklere, og spesielt i bedriften, står overfor, erkjenner at mobilapputvikling er som vanlig programvareutvikling. Dette er ikke bare noen gang i tiden markedsføring spike. Det er en hel livssyklus å vurdere; design, utvikling, testing, analyse og overvåking.
Mobil utvikling krever løpende vedlikehold og resourcing. Engangs av et konsulentfirma trenger oppdatering når en ny versjon av iOS eller Android sendes. Markedsavdelingen må forstå hva innholdet utfører og har muligheten til raskt å publisere endringer i innhold som ikke utfører. IT-avdelingen trenger rapportering om krasjulykke og tilgang til push-varslingsinfrastruktur.
Jo lenger spill som krever bevisst strategisk ressursbruk, blir bare anerkjent, da mange organisasjoner bare nå oppdager at de, i det minste delvis, blir programvarefirmaer selv. En strategisk investering i teknologi som er avhengig av et tredjeparts proprietært økosystem, er en forretningsrisiko. PhoneGap kan bidra til å redusere risikoen. Til slutt vil du aldri miste et spill på nettet.
Oppkjøpet av Nitobi av Adobe var en viktig milepæl for PhoneGap, men Apache Cordova var nok enda viktigere. Hvordan har Apache Cordova endret plattformen?
Oppkjøpet av Nitobi av Adobe var helt viktig. Vi ble befriet av gal konsulenttjenester for å fokusere utelukkende på PhoneGap, og det er ingen tvil om at plattformen gav stor fordel. Donasjonen av PhoneGap-kilde til Apache som Cordova er like viktig i en lengre visning.
Arbeide med Apache tok et helt nytt nivå av disiplin til prosjektet. Vår utgivelsesprosess er langt mer formalisert, og mens det har vært utfordrende å holde tråden vår, vinner vårt fellesskap det lovlige trygge grunnlaget at Apache er kjent for.
Dette nøytrale området er et flott miljø for enkeltpersoner ansatt av ulike organisasjoner for å samarbeide uten bekymring. Siden vi begynte med Apache har vi velkommen kommittere fra IBM, BlackBerry, Microsoft, Google, Intel, HP, LG, Samsung og mer.
Som et resultat av dette har vi sett mange nye nedstrøms distribusjoner av Cordova. Min bias er for Adobe PhoneGap, men utviklere kan velge å målrette BlackBerry Webworks, IBM arbeidslys, SAP SDK, Telerik, Intel XDK eller Google Mobile Chrome Apps.
Noen folk bruker bare vanilje Apache Cordova og lager sine egne nedstrøms. Jeg elsker dette mangfoldet. Alt dette peker på et levende og sunt økosystem som vårt utviklingssamfunn kan stole på. Vi itererer fort, adresserer bugs raskt, legger til nye funksjoner på en vanlig kadence, og har en veldig godt forstått bidragsprosess som alle kan delta i.
Apache har et velfortjent rykte for politikk og byråkrati, men det er også en del av vår jobb å jobbe sammen med ASF (Apache Software Foundation). Det har vært den ultimate vei for samfunnet på lang sikt. Jeg er veldig stolt av hva vi har oppnådd med ASF.
PhoneGap er en flott plattform for utvikling av mobile applikasjoner. Utplasseringen forblir besværlig på mange plattformer, men du har forsøkt å løse dette med PhoneGap / Build. PhoneGap / Build høres ut som en gylden hammer for utviklere som leter etter en kryssplattformløsning. Kan du fortelle oss hva tjenesten gjør og hvilket problem det løser?
PhoneGap Build er en kompilator som er vert i Adobe Creative Cloud. Ved hjelp av PhoneGap / Build kan du målrette mot hvilket mobil operativsystem vi støtter fra hvilken som helst nettleser. Du kan bygge en iOS-app fra en netbook eller til og med din egen telefon (meta).
I utgangspunktet trodde vi at dette kan være nyttig for kontinuerlig integrering og testing. Det har blitt et allsidig verktøy for den svært diskrete prosessen med å kompilere en app og gi den resulterende artefakt en URL. Det gjør bare den ene tingen, og det gjør det ganske bra. Vi har sett mange brukere bruker PhoneGap / Build som API eller som kompilator.
Du sa en gang at du tror at PhoneGaps fremtid ligger i sin egen ødeleggelse. Kan du forklare hva du mener med det?
Ja, det ultimate målet med PhoneGap er å slutte å eksistere. Vi ønsker ikke å skrive innfødte apps. Vi har vært nede i veien for proprietær kundeutvikling og vet at det fører til risikabelt økosystemlåsing.
Vi ønsker å bygge webapps, og PhoneGap har alltid vært en stopgap-løsning til nettlesere, eller kanskje installable webapper, er i stand til alternativer. Jeg tror vi er svært nær den virkeligheten i dag. For mange applikasjoner er web først riktig.
For at mobilnettappene skal lykkes med ubiquityen vi ser på skrivebordet, er det nyttig å demonstrere områdene weben må forbedre. TelefonGap-pluginarkitekturen er en veldig glatt overflate for å lage diskrete prototyper for å avsløre nye funksjoner til den tradisjonelle weboverflaten. Denne subtile filosofien bidro til å lette de riktige retningene for oss, ved å implementere standarder, pollyfills, samarbeide med W3C på API-design, og bringe bekymringer til nettleservirksomhetene som fører til nye plattformsfunksjoner.
Åpen bekreftelse på ultimate død kan enten være en tragisk hendelse i tid eller strategisk forståelse for å planlegge mot. For å være vitne til vårt eget å angre, må PhoneGap gjøre alt for å se at nettplattformen vinne.
Hva er noen av smertepunktene som vi fortsatt trenger å løse på nettet? Med andre ord, hvor nær er vi fra en mobilnett som tilbyr en opplevelse som rivaler det med innfødte applikasjoner?
25 år på, er det vanskelig å kritisere webplattformen. Men bashing Internett, på nettet, er en tid æret tradisjon av webmaster craft.
Inntektsgenereringskategorien # 1 i App Store er spill. Så la oss tenke på hva som trengs for å være et godt spill. Lyd generelt er rotete, men Web Audio API er gal, fantastisk. WebRTC, eller hva vi ender med å ringe det, holder godt på for å gjøre sanntidsapplikasjoner mer virkelige.
Så er det en gjeng med rørleggerarbeid som ikke har landet helt ubiquitously som Full Screen og Game Controller. Når alt dette er generelt tilgjengelig, vil det skake opp spill. Dataintensive APIer som Web Audio, WebRTC og WebGL skal hjelpe oss med å finne kantene av JavaScript-utførelsen, og alle tidlige indikasjoner er svært positive.
Layout blir ganske bra. Flexbox er flott, og jeg har høye forhåpninger for CSS Grids. Den siste versjonen av Firefox (28) løser de siste feilene med Flexbox. Jeg aner ikke når CSS Grids lander, men jeg er tålmodig. Medieforespørsler, noen ganger kjent som Responsive Web Design, er nyttige. Jeg vil ha en mer robust kapasitetsmodell slik at vi kan gi adaptive grensesnitt optimalt.
Den største muligheten er virkelig å knekke offline-historien, sannsynligvis bedre betegnet "sporadisk tilkoblet". Installerte webapper - som PhoneGap apps - er i utgangspunktet frakoblet, men en fullstendig tillatelsesmodell gjenstår å bli definert. Mozilla, Google og W3C jobber med det.
Mange av våre lesere har ambisjoner om å utvikle for mobil. Hvis du begynte i dag, hvor skulle du begynne? Hvilket råd vil du gi deg selv?
Mobil er ikke mye annerledes enn vanlig klientprogrammering. Det klassiske rådet er å teste på ekte enheter, og jeg oppfordrer folk til å lære de innfødte plattformene, men ikke å vokse for festet til dem. Et godt eksempel ville være iOS 6 til iOS 7-oppdateringen. En brønnarkitekt og designet PhoneGap eller vanlig webapp var ikke skjøre for den oppdateringen.
Ellers gjelder all den vanlige programmørens visdom. Vær ambisiøs i ditt omfang, men diskret i implementeringene. Lag mange grener og vær forberedt på å kaste det meste av arbeidet ditt. Du er ikke din kode, så refactor hensynsløst og søke kritisk tilbakemelding.
Små moduler og prototyper er enklere å begrunne, kursrett, test og validere. Ikke bli fanget opp i rammen og biblioteksmodus. Fokuser på problemrommet du har og itererer rasende og ubehagelig. Skriv tester og gjør det enkelt for noen som er ny i kodebase å kjøre testene selv.
Til slutt, vær super utmerket til dine kolleger. Internett har et langt minne, denne bransjen er mindre enn den først kan vises, og ingen ønsker å jobbe med et røvhull. Ingen har noen gang trodd at en uhøflig person var smart. Flaming er bare usikker oppførsel og profesjonelt umodne. Programmering er vanskelig nok, vi kan alle lære noe fra hverandre og velge en hyggelig opplevelse med å gjøre det.
Jeg vil gjerne takke Brian for sin tid og for å dele hans ideer og innsikt med Tuts +. Du kan høre Brian snakke på Future Insights Live 2014 i Las Vegas i juni. Konferansen har en imponerende liste over høyttalere som dekker det beste innen webdesign, utvikling og mobil. Bruk kupongkode TUTS for 15% avslag.