Un'introduzione a Cordova Nozioni di base

In questo articolo, ti presenterò Cordova, un framework utilizzato per lo sviluppo di applicazioni mobili. Se sei nuovo in Cordova o vuoi sapere se è lo strumento giusto per il tuo prossimo progetto, allora sei nel posto giusto. In questo articolo, cercherò di rispondere alle seguenti domande:

  • Cos'è Cordova?
  • Come funziona sotto il cofano?
  • Cosa posso costruire con Cordova?
  • Come iniziare con Cordova e di cosa ho bisogno?

Andiamo avanti e tuffati.

1. Cos'è Cordova?

Cordova è un framework di sviluppo di applicazioni mobili destinato principalmente agli sviluppatori web. Consente agli sviluppatori Web di utilizzare tecnologie web, come HTML, CSS e JavaScript, per creare applicazioni mobili. Come ogni altra tecnologia, Cordova ha i suoi pro e contro.

Professionisti

  • Facile da imparare Se sei uno sviluppatore web, Cordova ha una leggera curva di apprendimento. Puoi facilmente applicare le tue capacità di sviluppatore web per creare un'app con Cordova. Tutto ciò di cui hai veramente bisogno è di familiarizzare con la linea di comando per iniziare a lavorare con Cordova.
  • Accesso alle funzionalità native Con Cordova, hai accesso alle funzionalità del dispositivo nativo, come la fotocamera, i contatti, la geolocalizzazione, i media, gli SMS e molti altri.
  • Gratuito Non devi pagare nulla per usare Cordova.
  • Open Source Chiunque può contribuire al codice sorgente di Cordova per migliorarlo. I plugin sono anche open source e chiunque può creare plug-in personalizzati. Ciò significa che gli sviluppatori come te possono facilmente installare e utilizzare questi plugin. O puoi costruire il tuo plugin e condividerlo con la community.
  • Grande comunità Molti sviluppatori stanno usando Cordova. Su Overflow dello stack, ad esempio, ci sono quasi 40.000 domande con cui è stato taggato Cordova. Ciò significa che non sarai mai lasciato solo a risolvere bug strani (se mai li incontrerai). Le persone nella comunità sono sempre disponibili ad aiutare, tutto quello che devi fare è chiedere.
  • Scrivi una volta, distribuisci ovunque Cordova compila la tua app in un file del pacchetto, che è richiesto dalla maggior parte degli store di app. Ciò significa che le app create con Cordova possono essere facilmente distribuite nell'app store di tua scelta. Se si sta distribuendo su Android, Cordova crea un APK (Pacchetto applicazione Android). Se stai distribuendo su iOS, compila Cordova IPA. Per Windows, lo è APPX.

Contro

  • Scarsa documentazione È difficile trovare informazioni su cose davvero specifiche, ad esempio quali pacchetti è necessario installare con Android SDK Manager. E quando guardi qualcosa, i risultati indicano informazioni specifiche per diverse versioni di Cordova. Questo a volte confonde i principianti perché potrebbero avere una versione diversa di Cordova installata e stanno guardando la documentazione per un'altra versione di Cordova.
  • Più lento di nativo Poiché le app create con Cordova sono fondamentalmente app Web contenute in una visualizzazione Web, non hanno prestazioni altrettanto buone delle controparti native. Ciò significa che esiste un limite al tipo di app che puoi costruire. Ad esempio, un'applicazione di editing video è costruita in modo nativo in quanto si affida fortemente alla CPU e alla GPU per fare il suo lavoro.
  • Frameworks Poiché Cordova è solo un wrapper per un'applicazione web, non viene fornito con i componenti dell'interfaccia utente, le animazioni e altri extra che trovi nella maggior parte delle applicazioni native. Ciò significa che devi implementare tutti questi da solo. Ecco perché molti sviluppatori si affidano a framework come Ionic o Onsen UI per creare l'interfaccia utente delle loro applicazioni.
  • Bug nei plugin Non tutti i plugin sono creati uguali. Ci sono quelli che hanno bug o non funzionano come previsto.
  • Non tutti i dispositivi sono uguali È possibile accedere alla funzionalità nativa del dispositivo tramite l'utilizzo di plug-in. Cordova espone un'API in modo che questi plug-in possano essere utilizzati nella vista Web, ma non tutti i dispositivi sono uguali. Ci sono stranezze su ogni dispositivo. Per dirla semplicemente, non tutte le opzioni che è possibile impostare su un plug-in funzioneranno su tutti i dispositivi. Ad esempio, su Android, il cameraDirection il valore risulta sempre in una foto scattata con la fotocamera posteriore.

2. Cordova e PhoneGap

Quando si lavora con Cordova, si incontra spesso il termine PhoneGap. PhoneGap è il nome del progetto originale creato da una startup chiamata Nitobi intorno al 2009. Nel 2011, la società è stata acquisita da Adobe.

Nota che Adobe non ha acquistato la base di codice attuale, solo il nome e le persone che hanno lavorato a Nitobi. Il nucleo open source è stato donato alla Apache Software Foundation, che ora è conosciuta come Cordova.

Un'analogia comune utilizzata dagli sviluppatori è che Cordova è per PhoneGap ciò che WebKit è per Safari. In altre parole, PhoneGap è una distribuzione di Cordova gestita da Adobe. Se vuoi saperne di più sulla storia, puoi dare un'occhiata a questo articolo sul blog PhoneGap di Brian LeRoux.

In pratica, PhoneGap e Cordova sono praticamente gli stessi. Puoi scegliere PhoneGap o Cordova all'avvio di un progetto. L'unica differenza è la CLI (Command Line Interface). La CLI di PhoneGap si integra con Adobe PhoneGap Build. Questo servizio consente agli sviluppatori di compilare le loro app sulla piattaforma di loro scelta caricandola sul sito Web PhoneGap Build.

3. Come funziona Cordova sotto i cofani?

L'interfaccia utente di Cordova è una vista web. Puoi pensare alla vista Web come a una scheda in un browser. Quando si compila un'applicazione Cordova, in realtà non prende il codice HTML, CSS e JavaScript e lo converte automagicamente in codice nativo, specifico per ciascuna piattaforma.

Cordova funge da contenitore per l'app che scrivi utilizzando le tecnologie web. Quando l'app è compilata, il tuo codice rimane effettivamente intatto. Il compilatore prende il tuo codice e lo rende disponibile per la visualizzazione web per il rendering.

Se hai mai aperto un file HTML in un browser, è praticamente la stessa cosa. Devi tenere presente che questa visualizzazione web è implementata in modo diverso su ogni dispositivo. Ciò significa che alcune funzionalità non sono disponibili su alcune piattaforme o sono implementate in modo diverso.

4. Funzionalità dispositivo nativo

Con Cordova, hai accesso alle funzionalità del dispositivo nativo attraverso l'uso di plug-in. I plug-in sono componenti aggiuntivi che espongono un'API JavaScript per i componenti nativi. Consentono di accedere alle funzionalità del dispositivo nativo sfruttando l'API JavaScript che espone.

Come potresti sospettare, i plugin sono scritti in codice nativo. Ciò significa che è necessario che l'SDK sia installato per le diverse piattaforme che si prevede di distribuire, solo allora è possibile scrivere il codice nativo per ciascuna di tali piattaforme. Quindi si invoca il codice nativo tramite l'API JavaScript in modo che sia possibile accedervi nella vista Web.

Ci sono due tipi di plugin che puoi trovare nell'ecosistema di plugin Cordova. Innanzitutto sono i plugin ufficiali. Questi sono mantenuti dalla comunità Cordova. Saprai che un plugin è ufficiale se ha il Cordova-plugin prefisso.

L'altro tipo di plugin sono plugin personalizzati. Questi sono costruiti da sviluppatori come te e me. Spesso, sono costruite per risolvere un problema molto specifico, come la connessione di un'app a Facebook o il plug-in Ionic Keyboard per facilitare l'interazione con la tastiera.

Se vuoi saperne di più sul tipo di plugin che puoi utilizzare con Cordova, puoi visitare il sito web dei Plugin Cordova.

5. Cosa puoi costruire con Cordova?

Mentre puoi costruire praticamente qualsiasi tipo di app con Cordova, ci sono alcuni limiti di cui parleremo in seguito. Per ora, passiamo ad alcune app di esempio che puoi costruire con Cordova.

  • TripCase TripCase è un'app di viaggio che ti guida in ogni fase del tuo viaggio.
  • FruitSalad FruitSalad è un puzzle game simile a Bejeweled.
  • Panasonic World Heritage Calendar Questa è un'app di calendario che ti mostra splendide fotografie dei siti del Patrimonio Mondiale. Include anche curiosità sulla cultura e la natura relative ai siti.
  • HealthTap HealthTap è lo Stack Overflow per le domande sulla salute.
  • Wikipedia L'app ufficiale di Wikipedia è costruita con Cordova.

In base alle app sopra elencate, ora dovresti avere un'idea del tipo di app che puoi costruire con Cordova. Se sei uno sviluppatore, potresti aver notato che tutte queste app utilizzano Internet. Tutti comunicano con un server remoto per recuperare i dati. Questo è ciò che Cordova è bravo a recuperare i dati da un server, presentandolo all'utente e ascoltando e rispondendo all'input dell'utente.

Ma questo non significa che non puoi creare app autonome con Cordova. Esistono molte soluzioni database sul lato client che è possibile utilizzare prontamente. Un esempio popolare è LokiJS, un datastore veloce e orientato ai documenti per Node.js, il browser e Cordova. Ad esempio, in una app di galleria fotografica è possibile utilizzare questa libreria per archiviare i percorsi delle foto e quindi recuperarle dall'archivio quando necessario.

Con Cordova puoi usare praticamente qualsiasi libreria CSS o JavaScript che puoi trovare su cdnjs, perché il codice che scrivi viene eseguito nel browser. Bisogna fare attenzione però, non tutti i browser sono uguali. E questo ci porta alla prossima sezione.

6. Limitazioni

Come per qualsiasi altra cosa nella vita, ci sono sempre dei limiti. Cordova non fa eccezione. In questa sezione, parlerò di alcune limitazioni di Cordova.

Qualunque cosa tu possa ottenere con il codice nativo, puoi anche farlo con Cordova. Ci sono tuttavia due limiti comuni, prestazione e disponibilità di plugin.

Prestazione

Cordova accede alle funzionalità dei dispositivi nativi tramite plugin e questo ha un costo, un costo che le app native non hanno. Come accennato in precedenza in questo tutorial, non è una buona idea creare app con Cordova che facciano molto affidamento sulla CPU o sulla GPU. Tali app non saranno performanti come vorreste che fossero, specialmente se confrontate con le controparti native.

Disponibilità del plugin

Un'altra limitazione è la disponibilità dei plugin. Se una funzionalità specifica non è disponibile tramite un plug-in esistente nel repository, la tua unica scelta è quella di creare il plugin da solo.

Vista Web

Per impostazione predefinita, Cordova utilizza la visualizzazione Web della piattaforma per il rendering dell'interfaccia utente, il che significa che stai interagendo con una visualizzazione Web diversa su tutte le piattaforme a cui sei indirizzato.

Inoltre, diverse versioni del sistema operativo della piattaforma possono avere una vista Web diversa o una con un diverso set di funzionalità. Ad esempio, i dispositivi Android moderni potrebbero avere un sapore di Android con WebRTC abilitato mentre versioni precedenti di Android non dispongono di questa funzionalità.

Per gli sviluppatori Cordova, è un bene che progetti come Crosswalk vengano in soccorso. Crosswalk consente di utilizzare una visualizzazione Web personalizzata nelle app Cordova, normalizzando le differenze tra le piattaforme. Più avanti in questo tutorial, ti mostrerò come utilizzare Crosswalk in un progetto Cordova.

Scopri di più nel nostro corso Cordova

Se vuoi saperne di più su Cordova, dai un'occhiata al corso di Reggie Dawson su Cordova. Reggie ti introduce sulla piattaforma e ti aiuta a creare un'applicazione Cordova da zero. Dai un'occhiata al video qui sotto per avere un assaggio del corso.

Conclusione

Dovresti ora avere una buona idea di cos'è la Cordova e come fa la sua magia. Spero che questo articolo abbia risposto alla domanda se Cordova sia lo strumento giusto per il tuo prossimo progetto mobile.

Nel prossimo articolo ci sporcheremo le mani creando un'applicazione mobile con Cordova. Sentiti libero di lasciare qualsiasi domanda o commento che hai nei commenti qui sotto.