En introduksjon til Cordova Grunnleggende

I denne artikkelen vil jeg introdusere deg til Cordova, et rammeverk som brukes til å utvikle mobile applikasjoner. Hvis du er ny til Cordova, eller du vil vite om det er riktig verktøy for ditt neste prosjekt, så er du på rett sted. I denne artikkelen vil jeg sikte på å svare på følgende spørsmål:

  • Hva er Cordova?
  • Hvordan fungerer det under hetten?
  • Hva kan jeg bygge med Cordova?
  • Hvordan kommer jeg i gang med Cordova og hva trenger jeg?

La oss gå videre og dykke inn.

1. Hva er Cordova?

Cordova er en mobil applikasjonsutvikling rammeverk som er primært beregnet for webutviklere. Det tillater webutviklere å bruke webteknologier, for eksempel HTML, CSS og JavaScript, for å lage mobile applikasjoner. Som alle andre teknologier har Cordova sine fordeler og ulemper.

Pros

  • Lett å lære Hvis du er en webutvikler, har Cordova en mild læringskurve. Du kan enkelt bruke dine ferdigheter som webutvikler for å bygge en app med Cordova. Alt du trenger, er å gjøre deg kjent med kommandolinjen for å komme opp med Cordova.
  • Tilgang til innfødt funksjonalitet Med Cordova har du tilgang til innfødte enheter, for eksempel kameraet, kontakter, geolocation, media, SMS og mange andre.
  • Gratis Du trenger ikke å betale noe for å bruke Cordova.
  • Åpen kilde Alle kan bidra til Cordovas kildekode for å gjøre det bedre. Plugins er også åpen kildekode og alle kan bygge tilpassede plugins. Dette betyr at utviklere som deg selv enkelt kan installere og bruke disse pluginene. Eller du kan bygge din egen plugin og dele den med fellesskapet.
  • Big Community Mange utviklere bruker Cordova. På Stack Overflow er det for eksempel nær 40.000 spørsmål merket med cordova. Dette betyr at du aldri kommer til å være alene å løse rare bugs (hvis du noen gang støter på dem). Folk i samfunnet er alltid villige til å hjelpe, alt du trenger å gjøre er å spørre.
  • Skriv en gang, distribuér overalt Cordova kompilerer appen din i en pakkefil, som kreves av de fleste appbutikker. Dette betyr at apper som er opprettet med Cordova, enkelt kan distribueres til appbutikken du velger. Hvis du distribuerer til Android, oppretter Cordova en APK (Android Application Package) -filen. Hvis du distribuerer til iOS, kompilerer Cordova til IPA. For Windows er det appx.

Ulemper

  • Dårlig dokumentasjon Det er vanskelig å finne informasjon om virkelig bestemte ting, for eksempel hvilke pakker du trenger å installere med Android SDK Manager. Og når du ser noe opp, peker resultatene på informasjon som er spesifikk for forskjellige versjoner av Cordova. Dette er noen ganger forvirrende for nybegynnere, da de kanskje har en annen versjon av Cordova installert, og de ser på dokumentasjon for en annen versjon av Cordova.
  • Sakte enn innfødt Siden apper som er bygd med Cordova, er i utgangspunktet webapps som er inneholdt i en nettvisning, utfører de ikke så vel som deres innfødte kolleger. Dette betyr at det er en grense for hva slags programmer du kan bygge. For eksempel er et videoredigeringsprogram bedre bygget innfødt, siden det vil sterkt stole på CPU og GPU for å gjøre sitt arbeid.
  • rammer Fordi Cordova bare er en wrapper for en webapplikasjon, kommer den ikke med brukergrensesnittkomponenter, animasjoner og andre godbiter som du finner i de fleste native applikasjoner. Dette betyr at du må implementere alle disse på egen hånd. Derfor er mange utviklere avhengige av rammer som ionisk eller Onsen-brukergrensesnitt for å bygge brukergrensesnittet til deres applikasjoner.
  • Feil i plugger Ikke alle plugin er opprettet like. Det er de som har feil eller ikke fungerer som forventet.
  • Ikke hver enhet er den samme Native device funksjonalitet er tilgjengelig gjennom bruk av plugins. Cordova avslører en API slik at disse pluginene kan brukes i webvisningen, men ikke alle enheter er de samme. Det er quirks på hver enhet. For å si det enkelt, vil ikke alle valgene du kan sette på et plugin, fungere på alle enheter. For eksempel, på Android, cameraDirection verdi resulterer alltid i et bilde tatt med kameraet bakovervendt.

2. Cordova og PhoneGap

Når du arbeider med Cordova, kommer du ofte over begrepet PhoneGap. PhoneGap er navnet på det opprinnelige prosjektet opprettet av en oppstart som heter Nitobi rundt 2009. I 2011 ble selskapet anskaffet av Adobe.

Merk at Adobe ikke kjøpte den faktiske kodebasen, bare navnet og personene som jobbet på Nitobi. Kjernekjernen ble donert til Apache Software Foundation, som nå er kjent som Cordova.

En vanlig analogi brukt av utviklere er at Cordova er å PhoneGap hva WebKit er for Safari. Sett forskjellig, PhoneGap er en distribusjon av Cordova som vedlikeholdes av Adobe. Hvis du vil lese mer om historien, kan du sjekke ut denne artikkelen på PhoneGap bloggen av Brian LeRoux.

I praksis er PhoneGap og Cordova i utgangspunktet det samme. Du kan velge enten PhoneGap eller Cordova når du starter et prosjekt. Den eneste forskjellen er CLI (Command Line Interface). PhoneGaps CLI integreres med Adobe PhoneGap Build. Denne tjenesten lar utviklere kompilere sine apper til plattformen etter eget valg ved å laste den opp til PhoneGap Build-nettstedet.

3. Hvordan virker Cordova under hetten?

Cordovas brukergrensesnitt er en webvisning. Du kan tenke på nettvisningen som en fan i en nettleser. Når du kompilerer en Cordova-applikasjon, tar den ikke faktisk HTML-, CSS- og JavaScript-koden og konverterer den automatisk til innfødt kode, spesifikk for hver plattform.

Cordova fungerer som en beholder for appen du skriver ved hjelp av webteknologi. Når appen er kompilert, forblir koden din intakt. Kompilatoren tar bare koden din og gjør den tilgjengelig for webvisningen for gjengivelse.

Hvis du noen gang har åpnet en HTML-fil i en nettleser, er det i utgangspunktet det samme. Du må huske på at denne nettvisningen er implementert annerledes på hver enhet. Dette betyr at det finnes visse funksjoner som ikke er tilgjengelige på noen plattformer, eller de implementeres annerledes.

4. Native Device Functionality

Med Cordova har du tilgang til innfødt enhetsfunksjonalitet ved hjelp av plugins. Plugins er tilleggsprogrammer som avslører en JavaScript API for innfødte komponenter. De lar deg få tilgang til innfødte enhetskapasiteter ved å benytte JavaScript-API-en som den avslører.

Som du kanskje mistenker, er plugins skrevet i innfødt kode. Dette betyr at du må ha SDK installert for de forskjellige plattformene du planlegger å distribuere til, bare da kan du skrive den innfødte koden for hver av disse plattformene. Deretter kaller du den opprinnelige koden gjennom JavaScript API, slik at den kan nås i nettvisningen.

Det finnes to typer plugins som du finner i Cordova plugin-økosystemet. Først er de offisielle plugins. Disse vedlikeholdes av Cordova-samfunnet. Du vet at et plugin er offisielt hvis det har cordova-plugin prefiks.

Den andre typen plugin er tilpassede plugins. Disse er bygget av utviklere som deg og meg. Ofte er de bygget for å løse et svært spesifikt problem, for eksempel å koble en app til Facebook eller Ionic Keyboard Plugin for å gjøre samhandling med tastaturet enklere.

Hvis du vil lære mer om hva slags plugins du kan bruke med Cordova, kan du besøke Cordova Plugins nettside.

5. Hva kan du bygge med Cordova?

Mens du kan bygge nesten alle slags app med Cordova, er det noen grenser som vi snakker om senere. For nå, la oss gå gjennom noen prøveapper som du kan bygge med Cordova.

  • TripCase TripCase er en reiseprogram som veileder deg gjennom alle stadier av turen.
  • FruitSalad FruitSalad er et puslespill som ligner Bejeweled.
  • Panasonic World Heritage Calendar Dette er en kalenderapp som viser deg vakre bilder av verdensarvsteder. Det inkluderer også trivia om kultur og natur relatert til områdene.
  • HealthTap HealthTap er Stack Overflow for helsespørsmål.
  • Wikipedia Den offisielle Wikipedia-appen er bygget med Cordova.

Basert på appene som er oppført ovenfor, bør du nå ha en ide om hva slags apper du kan bygge med Cordova. Hvis du er en utvikler, kan du ha lagt merke til at alle disse appene bruker internett. De kommuniserer alle til en ekstern server for å hente data. Det er hva Cordova har det bra på, henter data fra en server, presenterer det for brukeren, og lytter etter og svarer på innspill fra brukeren.

Men dette betyr ikke at du ikke kan bygge selvforsynte apps med Cordova. Det finnes mange kundebaserte databaseløsninger som du enkelt kan bruke. Et populært eksempel er LokiJS, en rask dokumentorientert datastore for Node.js, nettleseren og Cordova. I et bildegalleri-app kan du for eksempel bruke dette biblioteket til å lagre stiene til bilder og deretter ta dem fra lageret når det trengs.

Med Cordova kan du bruke stort sett alle CSS eller JavaScript-bibliotek som du finner på cdnjs, fordi koden du skriver kjører i nettleseren. Du må være forsiktig, men ikke alle nettlesere er de samme. Og det bringer oss til neste del.

6. Begrensninger

Som med alt annet i livet, er det alltid begrensninger. Cordova er ikke noe unntak. I dette avsnittet snakker jeg om noen av begrensningene i Cordova.

Uansett hva du kan oppnå med innfødt kode, kan du også oppnå med Cordova. Det er imidlertid to vanlige begrensninger skjønt, opptreden og plugin tilgjengelighet.

Opptreden

Cordova får tilgang til innfødte enhetskapasiteter via plugins, og dette har en kostnad, en kostnad som innfødte apper ikke har. Som jeg tidligere nevnte i denne opplæringen, er det ikke en god ide å bygge programmer med Cordova som er avhengige av CPU eller GPU. Slike programmer vil ikke være like performant som du vil at de skal være, spesielt når sammenlignet med innfødte kolleger.

Plugin tilgjengelighet

En annen begrensning er plugin tilgjengelighet. Hvis en bestemt funksjonalitet ikke er tilgjengelig gjennom et eksisterende plugin i depotet, er det eneste valget å bygge pluggen selv.

Nettvisning

Som standard bruker Cordova plattformens nettvisning for å gi brukergrensesnittet, noe som betyr at du samhandler med en annen nettvisning på alle plattformer du målretter mot.

Videre kan forskjellige versjoner av plattformens operativsystem ha en annen nettvisning eller en med et annet sett med funksjoner. For eksempel kan moderne Android-enheter kjøre en smak av Android som har WebRTC aktivert, mens eldre versjoner av Android mangler denne funksjonen.

For Cordova-utviklere er det en god ting som prosjekter som Crosswalk kommer til redning. Crosswalk lar deg bruke en tilpasset webvisning i Cordova apps, normalisere forskjellene mellom plattformer. Senere i denne opplæringen vil jeg vise deg hvordan du kan bruke Crosswalk i et Cordova-prosjekt.

Lær mer i vår Cordova Course

Hvis du liker å lære mer om Cordova, så sjekk ut Reggie Dawson kurs på Cordova. Reggie introduserer deg til plattformen og hjelper deg med å lage en Cordova-app fra bunnen av. Ta en titt på videoen nedenfor for å få en smak av kurset.

Konklusjon

Du bør nå ha en god ide om hva Cordova er, og hvordan det gjør sin magi. Jeg håper denne artikkelen har besvart spørsmålet om Cordova er det riktige verktøyet for ditt neste mobilprosjekt.

I neste artikkel får vi hendene skitne ved å lage et mobilprogram med Cordova. Ta gjerne spørsmål eller kommentarer i kommentarene nedenfor.