In questo articolo, daremo un'occhiata a NativeScript, un framework open source per la creazione di app mobili con JavaScript. Alla fine dell'articolo, dovresti avere una buona idea di cosa sia NativeScript, come funziona e quali tecnologie usa. Oltre a ciò, risponderemo anche a domande comuni che potreste avere quando esplorate una nuova tecnologia, ad esempio in che modo si differenzia da alternative come Cordova e React Native e da come Telerik è coinvolta nel progetto..
NativeScript è un framework per la creazione di app mobili native multipiattaforma. Consente agli sviluppatori di utilizzare XML, CSS e JavaScript per creare app per Android, iOS e persino la piattaforma universale Windows. A differenza di Cordova, che utilizza WebView per il rendering dell'interfaccia utente dell'app, NativeScript utilizza il motore di rendering della piattaforma nativa, il che significa che fornisce un'esperienza utente veramente nativa.
NativeScript è composto da una macchina virtuale JavaScript, un runtime e un modulo bridge. La macchina virtuale JavaScript interpreta ed esegue il codice JavaScript. Quindi il modulo bridge traduce le chiamate per le chiamate API specifiche della piattaforma e restituisce il risultato al chiamante. Per dirla semplicemente, NativeScript offre agli sviluppatori un modo per comandare la piattaforma nativa tramite JavaScript invece di Objective-C su iOS o Java su Android.
Naturalmente, dietro le quinte c'è molto di più, ma gli sviluppatori di Telerik lo spiegano meglio di me, quindi se vuoi saperne di più sul funzionamento interno di NativeScript, puoi leggere l'articolo di Georgi Atanasov su NativeScript - una panoramica tecnica o l'articolo di TJ VanToll su How NativeScript Works.
Con NativeScript, si utilizza XML per descrivere l'interfaccia utente dell'app, i CSS per lo stile e JavaScript per aggiungere funzionalità.
Puoi usare TypeScript con Angular 2 se preferisci utilizzare un framework per l'authoring del tuo codice JavaScript.
Per lo stile, NativeScript utilizza solo un sottoinsieme di CSS. Ciò significa che non tutte le funzionalità CSS disponibili in un ambiente browser possono essere utilizzate. Ad esempio, non puoi usare i float o gli attributi di posizione. Ecco l'elenco completo delle proprietà CSS supportate. Proprio come nel browser, puoi aggiungere stili che si applicano a tutta l'app, a pagine specifiche o solo a una specifica componente dell'interfaccia utente. Se si preferisce usare Sass, è possibile installare il plugin NativoScript Dev Sass.
Per descrivere la struttura dell'interfaccia utente, si utilizza XML. Ogni pagina dell'app deve trovarsi nel proprio file XML. NativeScript viene fornito con widget o componenti dell'interfaccia utente predefiniti che è possibile utilizzare per creare l'interfaccia utente dell'app. Alcuni di questi componenti sono simili ai diversi elementi HTML utilizzati nel browser.
Ad esempio, c'è un Immagine
componente, che è l'equivalente del img
elemento, o il Campo di testo
componente, che è equivalente al ingresso
elemento con un tipo di testo. I gestori di eventi come il tocco di un pulsante vengono aggiunti nel componente stesso. Ecco un esempio:
exports.doSomething = function () // fa qualcosa
Un'altra cosa da notare è che i componenti servono anche come modelli. Se hai familiarità con le librerie di template come Handlebars o Moustache, dovresti essere a casa con la seguente sintassi:
L'esempio sopra utilizza il Visualizzazione elenco
componente. Come suggerisce il nome, questo componente ti consente di creare elenchi. animali
è un array definito nel file JavaScript ed è associato a animali
variabile sul caricamento della pagina. Questo rende il animali
variabile disponibile per l'uso all'interno del file XML.
var animals = ['panda', 'tiger', 'monkey', 'snake', 'mantis']; function pageLoaded (args) var page = args.object; page.bindingContext = animals: animals
Questo emette ogni elemento nell'array all'interno del Visualizzazione elenco
.
Infine, ci sono plugin che consentono di accedere all'hardware del dispositivo e alle funzionalità specifiche della piattaforma. NativeScript viene fornito con un plug-in per telecamera preinstallato. Questo ti consente di accedere alla fotocamera del dispositivo e scattare foto. Puoi quindi salvare il percorso locale della foto nella tua app per un uso futuro. Le funzionalità specifiche della piattaforma come la condivisione social possono anche essere utilizzate installando plug-in come il plug-in Social Share di NativeScript.
Grazie alla nativa natura di NativeScript, puoi creare praticamente qualsiasi tipo di app con esso. Ecco alcuni esempi di app che puoi creare con NativeScript:
Per quanto riguarda i tipi di app che è possibile creare con NativeScript, i soli fattori limitanti sono le prestazioni e la disponibilità dei plug-in. La scrittura di app mobili native in JavaScript ha un prezzo: non puoi davvero aspettarti di creare app che richiedono alte prestazioni. Gli esempi includono giochi con grafica e animazioni complesse, app con molte parti mobili e processi in background.
Un'altra limitazione è la disponibilità dei plugin. La maggior parte degli sviluppatori arriva su NativeScript da uno sfondo di sviluppo web. Ciò significa che la maggior parte di loro non ha familiarità o conoscenza limitata delle API della piattaforma nativa che potrebbero essere utilizzate per creare plug-in per accedere all'hardware del dispositivo o alle funzionalità specifiche della piattaforma come contatti o messaggistica.
Se vuoi saperne di più su quali tipi di app puoi creare con NativeScript, puoi consultare la pagina App Showcases. La maggior parte delle app elencate sono pubblicate su Google Play Store e Apple Store. Ciò significa che puoi installarlo ed eseguirlo sul tuo dispositivo per avere un'idea di quali app sono state create con NativeScript e come si comportano.
Se non sei nuovo nello sviluppo di app per dispositivi mobili ibridi, potresti aver trovato framework come Cordova e React Native. NativeScript è correlato a questi due framework in quanto entrambi mirano a risolvere il problema di "Scrivi una volta, corri ovunque" nel campo dello sviluppo di app per dispositivi mobili. Ora diamo un'occhiata a ciascun quadro:
Cordova | Reagire Nativo | NativeScript | |
---|---|---|---|
Creatore | Nitobi; Successivamente acquistato da Adobe Systems | Telerik | |
UI | HTML | I componenti dell'interfaccia utente sono tradotti nelle loro controparti native | I componenti dell'interfaccia utente sono tradotti nelle loro controparti native |
Può testare | Browser, emulatore, dispositivo | Emulatore, dispositivo | Emulatore, dispositivo |
Codice con | HTML, CSS, JavaScript | Componenti dell'interfaccia utente, JavaScript, sottoinsieme di CSS | Componenti dell'interfaccia utente, sottoinsieme di CSS, JavaScript |
Accesso alla funzionalità nativa | Attraverso i plugin | Moduli nativi | Accesso API nativo tramite JavaScript |
Distribuisce a | Android, iOS, Ubuntu, Windows, OS X, Blackberry 10 | Android e iOS. Windows Universal e Samsung Tizen in arrivo | Android e iOS. Windows Universal in arrivo |
Librerie e framework JavaScript | Qualsiasi libreria o framework di front-end (ad es. Angolare, Brace) | Qualsiasi libreria che non dipende dal browser | Qualsiasi libreria che non dipende dal browser |
Modello di codifica | Qualsiasi struttura front-end può essere utilizzata per strutturare il codice | Il markup dell'interfaccia utente, JavaScript e CSS sono tutti raggruppati in un singolo file per impostazione predefinita | Modello MVVM / MVC |
Come viene eseguito il codice JavaScript | WebView | JavaScriptCore Engine per eseguire codice app su Android e iOS | Motore Webkit JavaScript per eseguire il codice app su iOS e il motore JavaScript V8 di Google su Android |
Per riassumere, Cordova è la vecchia generazione di framework per app mobili ibridi. Utilizza WebView per eseguire il rendering dell'interfaccia utente dell'app e accedere alle funzionalità dei dispositivi nativi tramite plug-in. React Native e NativeScript sono la nuova generazione perché traducono il tuo codice JavaScript in modo che possa essere eseguito dalla piattaforma nativa.
Qualcuno potrebbe trovare un nome migliore per framework come React Native e NativeScript in futuro. Ma per ora li classifichiamo come "Native Hybrid Frameworks" perché entrambi usano JavaScript per creare app e offrono un'esperienza e prestazioni native agli utenti.
Telerik è la società che ha creato NativeScript. E, proprio come qualsiasi altra azienda, hanno bisogno di fare soldi per sopravvivere. Quindi potresti chiedere, se NativeScript è gratuito e open source, come fa Telerik a fare soldi da esso? Bene, la risposta è attraverso la piattaforma Telerik e l'interfaccia utente di Telerik per NativeScript.
La piattaforma Telerik fornisce agli sviluppatori gli strumenti necessari per progettare, costruire, testare, distribuire, gestire e misurare facilmente le prestazioni delle app NativeScript. Ecco alcuni esempi degli strumenti che offrono:
L'interfaccia utente di Telerik per NativeScript è un insieme di componenti per la creazione dell'interfaccia utente dell'app. NativeScript è già dotato di componenti UI gratuiti, ma ci sono anche componenti UI a pagamento come il grafico e il calendario che puoi usare solo quando lo acquisti da Telerik.
Se vuoi saperne di più su NativeScript, ti consiglio di controllare le seguenti risorse:
In questo articolo hai imparato le basi di NativeScript. Come hai visto, NativeScript è una buona opzione per creare app per dispositivi mobili utilizzando le competenze che hai già come sviluppatore web. Spero che questo articolo ti abbia fornito le conoscenze necessarie per aiutarti a decidere se NativeScript è giusto per te.