un interessante articolo sull'argomento in oggetto, riporto la traduzione auto di google translator, con qualche leggera ritoccata personale, per l'originale in "inglisc" cliccate qua
https://www.sitepoint.com/native-vs-hybrid-app-development/
NATIVO
Costruire applicazioni native significa usare il "linguaggio madre" della piattaforma, Objective-C su iOS, e Java su Android. Il vantaggio principale di applicazioni native è nelle prestazioni . Applicazioni native sono compilate in codice macchina (Dalvik bytecode sotto Android), che offre le migliori prestazioni ottenibili dal dispositivo (smartphone o tablet/phablet, ecc). Questo comprende animazioni veloci e fluide, nonché il pieno accesso all'hardware del dispositivo, il supporto multi-touch e le ultime API.
lo sviluppo nativo è tutt'altro che facile. Nonostante il grande numero di risorse che si possono trovare, potrebbe non essere comprensibile a tutti. Come codice deve essere scritto appositamente per ogni piattaforma, lo stesso codice dovrà essere ampiamente riscritto con scarso grado di essere condivisi. La logica può essere lo stesso, ma la lingua, API e il processo di sviluppo è diverso. Questo processo può essere relativamente lungo per applicazioni complesse.
Se sei un nuovo sviluppatore per piattaforma mobile e vuoi costruire applicazioni mobili di performance-critical e / o vuoi approfittare delle API native, si avrebbe bisogno di una buona risorsa per l'apprendimento lo sviluppo nativo mobile.
Prendiamo ad esempio iOS. Se vuoi essere uno sviluppatore iOS nativa, innanzitutto procuratevi un Mac. È possibile scrivere codice da nessuna parte, ma un Mac è necessario per costruire il codice in un'applicazione così come un account iOS sviluppatore ($ 99 all'anno).
È possibile ottenere una guida introduttiva a Objective-C per creare il proprio "Flappy Bird" (gioco) nel tuo browser . Una singola lezione on-line non sarà del tutto esaustiva, però, Apple fornisce la propria esercitazione , che è utile per i principianti e gli sviluppatori più esperti. Questo tutorial introduce progettazione delle applicazioni, la struttura e l'attuazione del codice, mentre la costruzione di una applicazione ToDoList (liste ToDo sembrano essere le applicazioni ‘Hello, World!’ Per lo sviluppo mobile).
Per quanto riguarda lo sviluppo di Android, mi sento di raccomandare l'apprendimento Android, 2nd Edition da O'Reilly. Dà una buona conoscenza al di sviluppo Android, mentre la costruzione di un client mobile simile a Twitter.
E, naturalmente, SitePoint ha un sacco di articoli di sviluppo per iOS e Android .
IBRIDO
Applicazioni ibride sono applicazioni web (o pagine web) nel browser nativo, come UIWebViewin su iOS e WebView (non Safari o Chrome) su Android . Applicazioni ibride sono sviluppate utilizzando HTML, CSS e Javascript, e poi avvolti in un'applicazione "android package" (leggasi APK) utilizzando piattaforme come Cordova . Ciò consente di utilizzare qualsiasi framework web-native che si desidera, e ci sono molti di questi.
Lo sviluppo di applicazioni è più veloce, più semplice , più rapida e l'applicazione è più facile da mantenere. È possibile modificare le piattaforme qualsiasi momento avete bisogno, Cordova consente di creare l'applicazione per più di una piattaforma solo per uno aggiungendo riga di codice. Per quanto riguarda l'hardware del telefono, come la fotocamera o Bluetooth, Cordova ha una grande repository di plugin che si possono utilizzare.
Il problema principale con le applicazioni ibride è che ancora dipendono dal browser nativo, il che significa che non sono veloce come applicazioni native.
Se avete deciso di sviluppare applicazioni ibride, allora si dovrebbe sapere che ci sono due principali concorrenti '' in questo campo. Uno è Cordova (e gli strumenti di Cordova-based come PhoneGap) e l'altro è Appcelerator Titanium . Hanno entrambe le piattaforme mobili di destinazione, ma il lavoro in modi molto diversi.
Sviluppare con Cordova è proprio come lo sviluppo di una pagina web. È possibile creare HTML, CSS e JavaScript file locali, li prova nel browser e poi avvolgerli in una visualizzazione Web nativa con Cordova (è comunque necessario SDK nativo e strumenti di sviluppo per questo passo).
Utilizzando Titanium è un po 'diverso, non si usa qualsiasi file HTML e CSS, a meno che non si desidera creare un'applicazione che utilizza sia nativi e interfacce utente basati su HTML. Titanium offre un utilissimo set di strumenti mobile che consente di emulare (o simulare) l'applicazione sulla piattaforma reale, non nel browser. Quando la tua applicazione viene eseguito sul dispositivo, esso non viene avvolto in una vista web, ma viene interpretato da un motore Javascript ( JavaScriptCorein iOS oppure RhinoAndroid).
Appcelerator fornisce una buona esercitazione (sorprendentemente non una applicazione ToDo).
Ci sono anche molti altri meno conosciuti opzioni di sviluppo ibrido, come Xamarin , Rho , Corona e MoSync . Tutti questi lavorano in modi leggermente diversi e possono beneficiare di più a seconda della vostra esperienza di programmazione in corso.
Conclusione
Sia nativo e ibridi sono modi per soddisfare le diverse esigenze e preferenze degli utenti e sviluppatori, e nessuno di loro può essere pensato come una soluzione perfetta. Hanno i loro punti di forza e di debolezza e spetta a voi decidere quale di essi si adatta meglio e quale si intende utilizzare nella propria applicazione.
Quali sono le vostre esperienze e pensieri su ibrida vs sviluppo nativo?