Sviluppare App Cross-Platform: quale piattaforma scegliere per la tua prossima app ibrida

Scegliere Piattaforma Sviluppo App Crossplatform

Vuoi sviluppare la tua futura app aziendale e sei in cerca della migliore piattaforma di sviluppo per il tuo progetto? Cerchiamo di capire quali sono le migliori soluzioni oggi per sviluppare un’app ibrida.

Vantaggi delle app ibride vs. app native

In un recente post abbiamo esaminato le principali differenze tra un approccio nativo allo sviluppo di applicazioni per il mobile ed un approccio ibrido

Ancora un po’ confuso sulle chiare differenze tra app native e ibride?

App Ibride Vs Native

Cerchiamo di riassumere velocemente: le app native sono sviluppate direttamente sulla piattaforma di destinazione, Android, Windows o iOS e sfruttano i linguaggi (SDK, software development kit) forniti dai produttori dei sistemi operativi, al contrario delle app ibride le quali sono invece sviluppate su framework di terze parti e possono essere distribuite contemporaneamente su più piattaforme. In breve: un unico (sviluppo) software per un’applicazione destinata a più piattaforme. 

Workflow App Ibride Vs Native

Ovviamente ci sono vantaggi e svantaggi nello scegliere la soluzione nativa o ibrida, per approfondire vi rimandiamo al nostro articolo, tuttavia semplificando al massimo le app native sono più veloci e performanti mentre le app ibride sono più veloci… da creare (e mantenere).

Come scegliere una piattaforma ibrida di sviluppo app

La scelta della piattaforma migliore per sviluppare un’app ibrida dipende da molti fattori, tra i quali:

  • Caratteristiche e funzionalità 
  • Team di sviluppo
  • Budget
  • Tempi di sviluppo
  • Flessibilità ed espandibilità
  • Piattaforme di destinazione

Vediamo sinteticamente i punti sopra riportati.

Caratteristiche e funzionalità 

Come abbiamo visto, le app native presentano alcuni vantaggi in termini di performance che diventano cruciali se l’app richiede alcune funzionalità specifiche, quali giochi, animazioni, multimedialità, uso della memoria, 3D, etc. Per la maggior parte delle app di tipo informativo (news, social, ecommerce, etc) le app ibride hanno performance paragonabili a quelle native. 

Team di sviluppo

Per realizzare un’app occorre fare i conti con il Team di Sviluppo. Competenze, esperienza, fiducia, sinergia, costi ed altri fattori possono far propendere verso uno sviluppatore piuttosto che un altro ed ovviamente ogni team di sviluppo si porta appresso i propri strumenti e le proprie competenze. Pertanto la scelta di una tecnologia comporta la definizione di un fornitore idoneo e viceversa.

Budget

I costi di sviluppo possono moltiplicarsi se si sceglie la strada di sviluppare applicazioni native, al contrario della soluzione ibrida cross-platform. Pertanto occorre capire se il rapporto costi / benefici offerti dalla soluzione nativa, in termini di performance ma anche di stabilità e flessibilità, giustificano la scelta appunto di procedere con la soluzione nativa.

Tempi di sviluppo

Sviluppare applicazioni in linguaggio nativo (che sia Object-C, Swift, Java, etc.) comporta tempi di sviluppo più lunghi in quanto occorre sviluppare e mantenere due codici sorgenti differenti. Pertanto, costi e tempi sono due fattori fondamentali da considerare nella scelta della tecnologia di sviluppo di applicazioni mobile.

Flessibilità ed espandibilità

Applicazioni native offrono sicuramente più flessibilità ed espandibilità in quanto non passano per framework di terze parti. Prima di fare una scelta occorre analizzare bene il ciclo di sviluppo dell’app: quali funzionalità sono necessarie all’inizio e quali possono essere le funzionalità da integrare in futuro? Quali tipologie di interfaccia sono necessarie? Che tipo di integrazioni con piattaforme di terze parti? È possibile immaginare come diventerà la nostra app in futuro, considerando che le tecnologie (dispositivi, sistemi operativi, etc) sono in continua evoluzione?

Piattaforme di destinazione

Ovviamente, se si sceglie di pubblicare un’app mobile su piattaforme diverse, i costi della soluzione nativa si moltiplicano. Pertanto occorre capire quali sono i mondi, dispositivi e utenti target della nostra applicazione. 

Le soluzioni per lo sviluppo di app cross platform nel 2020

Guardando le statistiche, ad oggi quali sono le piattaforme più utilizzate per la realizzazione di applicazioni mobile in tecnologia ibrida cross-platform? La risposta ce la fornisce Statista.com.

Piattaforme Piu Usate Sviluppo App Cross Platform

Qui sotto invece gli interessi per la piattaforma registrati dalle ricerche Google Trends.

Vediamo quali sono le caratteristiche delle principali piattaforme, vantaggi e svantaggi.

React Native

React Native è una piattaforma sviluppata da Facebook. Nel 2012 Mark Zuckerberg aveva commentato: “L’errore più grande che abbiamo commesso come azienda è stato scommettere troppo sull’HTML anziché sul nativo”. Con React Native, Facebook ha cercato di colmare il divario tra ibrido e nativo.

React Native

React Native, come suggerisce il nome, offre una piattaforma di sviluppo nativa intuitiva basata fondamentalmente su React, una libreria JavaScript sfruttata dagli sviluppatori di app mobili per creare interfacce UI intuitive.

React Native permette di sviluppare applicazioni compatibili con Android, iOS, Web and UWP e permettono agli sviluppatori di usare React e capacità native.

Ci sono molti vantaggi nel framework JavaScript, inclusi (ma non limitati) a facile integrazione con progetti esistenti e in corso, testing e possibilità di accedere ad una enorme libreria di estensioni.

Vantaggi di React Native

  • È potente e flessibile
  • Sfrutta il codice nativo dei sistemi operativi di destinazione
  • Community: è supportato da una vasta comunità di sviluppatori 
  • Rapido per lo sviluppo
  • Codice riusabile

Svantaggi di React Native

  • Funziona meglio con le single page application: non è la migliore soluzione se l’app richiede molte interazioni e varie schermate 
  • Pochi moduli personalizzati 
  • Apprendimento lento e difficile non usabile
  • Pochi errori possono rendere il progetto instabile 
  • Occorre un Team di sviluppo mobile con molta esperienza
  • Non è sicuramente un framework per sviluppatori junior e startup.

Flutter

Flutter è un kit di sviluppo software open source creato da Google. Viene utilizzato per sviluppare applicazioni ibride, ossia sviluppate da un unico codice sorgente, che girano su Android, iOS, Linux, Mac, Windows, Google Fuchsia e il Web.

Flutter

Flutter è già diventata la soluzione ottimale quando è necessario creare app con UI / UX dinamiche e attraenti.

Grazie ai suoi componenti flessibili è possibile creare con Flutter una straordinaria interfaccia utente in pochissimo tempo: è un kit di sviluppo e potente per creare ed eseguire un’app multipiattaforma in pochissimo tempo.

Vantaggi di Flutter

  • Più facile di React Native da apprendere
  • Più facilità nella customizzazione dei widget e delle interfacce 
  • Integrazione Material Design di Google
  • Sviluppo facile e veloce
  • Migliore ciclo di test

Svantaggi di Flutter

  • Supporto carente sulle librerie 
  • Dimensioni dell’app più grande (circa +40% rispetto ad un’app nativa)
  • Per sviluppare occorre conoscere il linguaggio di programmazione Dart
  • Supporto limitato per alcune features

Cordova / PhoneGap

Intanto chiariamo un po’ di confusione tra PhoneGap e Cordova, spesso considerati distintamente. Apache Cordova (ex PhoneGap) è un framework per lo sviluppo di applicativi per dispositivi mobili originariamente creato da Nitobi. Adobe ha acquistato Nitobi nel 2011 e creato il nuovo marchio PhoneGap, che fu poi successivamente rilasciato in versione open source e chiamato nuovamente Apache Cordova.

Cordova PhoneGap

Apache Cordova permette ai programmatori di creare applicazioni mobili usando CSS3, HTML5 e Javascript invece di affidarsi ad API native delle piattaforme Android, iOS o Windows. Le applicazioni generate da Cordova non possono né considerarsi puramente native (il rendering della struttura grafica è sviluppato in webview, ossia in browser web) né basate completamente sul web (il programma viene impacchettato come un’applicazione per la distribuzione e hanno accesso alle API native dei dispositivi mobili). 

Apache Cordova comprende un migliaio di plugin-in scritti nel linguaggio nativo del sistema operativo (ad es. Java, Objective C, C#…) che utilizzano le API del sistema operativo (Android, iOS, Windows..) per essere integrate, attraverso il linguaggio Javascript, all’interno del codice HTML e, di conseguenza, permette agli sviluppatori di accedere all’hardware dello smartphone in modo efficace. È possibile controllare la fotocamera, il sensore GPS, il Bluetooth, il giroscopio e ogni altro dispositivo hardware dello smartphone.

Vantaggi di Cordova

  • Offre una soluzione cloud che consente agli sviluppatori di app mobili di creare app direttamente nella piattaforma
  • È possibile sviluppare app sfruttando competenze di web, ossia solo con HTML5, CSS3 e Javascript
  • Compatibile con numerosi strumenti e API di terze parti
  • Debug facile con i principali strumenti di web inspector

Svantaggi di Cordova

  • Decisamente sconsigliato per applicazioni grafiche e che richiedono alte prestazioni
  • Le app create con Phonegap sono più lente di quelle native
  • Dipendente dagli SDK iOS.

Ionic

Ionic fornisce strumenti e servizi per lo sviluppo di applicazioni web ibride mobili, desktop e progressive basate su moderne tecnologie e pratiche di sviluppo web, utilizzando tecnologie web come CSS, HTML5 e Sass. 

Ionic è stato creato nel 2013 e nasce dall’integrazione del mondo AngularJS con Apache Cordova. Tuttavia, l’ultima versione è stata completamente riscritta e consente di scegliere qualsiasi framework di interfaccia utente, come Angular, React o Vue.js. 

Essendo sul mercato dal 2013, per molti anni è stata la soluzione principale per mettere insieme un’app Web progressiva e di grande impatto visivo in un attimo, grazie anche ad una facile curva di apprendimento e ad una quantità rilevante di plug-in disponibili.

Ionic

Vantaggi di Ionic

  • Fornisce una ricca raccolta di potenti funzionalità
  • È  basato su Angular: non c’è bisogno di imparare un linguaggio completamente nuovo
  • Fornisce ottimi strumenti di debug
  • Integra un’interfaccia a riga di comando (Ionic CLI) che semplifica il ciclo di sviluppo delle app TypeScript e Node.js
  • È supportato da una vasta comunità di sviluppatori

Svantaggi di Ionic

  • Poco performante: non è l’opzione migliore se si hai intenzione di creare un’app con impieghi gravosi, quali giochi, animazioni, transizioni, 3D, multimediali, etc.
  • Alcune delle sue funzionalità sono basate su Cordova e quindi non tutti i plugin sono supportati

Xamarin

Xamarin è la soluzione proposta da Microsoft al problema dello sviluppo ibrido mobile. Con un codice condiviso basato su C#, gli sviluppatori possono usare gli strumenti Xamarin per scrivere applicazioni native Android, iOS e Windows con interfacce utenti native e condividere il codice su diverse piattaforme. 

Xamarin

Basato sul linguaggio .NET, questo particolare framework consente agli sviluppatori di condividere il 75% del codice su piattaforme diverse.

Vantaggi di Xamarin

  • Supporto per le API, le librerie e i linguaggi di programmazione più recenti
  • Framework dell’interfaccia utente mobile che offre un aspetto coerente su diversi sistemi operativi
  • Accesso alle API native e ai pacchetti NuGet

Svantaggi di Xamarin

  • Sebbene gratuita, la licenza completa potrebbe diventare costosa per lo sviluppo di soluzioni enterprise aziendali
  • Non consigliato per app con grafica pesante
  • Scarsa community

Appcelerator Axway

Una cosa va innanzitutto detta, siamo stati dei gran fan di Appcelerator ed abbiamo sviluppato decine di progetti con questa piattaforma. Per noi è sempre stata la soluzione ottimale anche se oggi il progetto sembra superato, ma nel febbraio 2013 Business Insider stimava che il 10% di tutti gli smartphone in tutto il mondo utilizzava app realizzate in Appcelerator.

Appcelerator Titanium SDK è un framework open source che consente la creazione di app mobili native su piattaforme tra cui iOS, Android e Windows UWP partendo da un singolo codice sorgente JavaScript

Purtroppo con il passaggio ad Axway (e grazie al casino che hanno fatto sulle licenze, prima a pagamento poi gratuite e sulle IDE) la community si è molto ridotta e disinnamorata di questo progetto. 

Appcelerator Axway

Ancora oggi comunque per noi di Neting, Appcelerator rappresenta un’ottima risorsa per sviluppare app ibride stabili, performanti e gradevoli dal punto di vista grafico.

Unity

Infine vorremmo citare Unity, anche se rappresenta decisamente una soluzione differente dal panorama precedente, in quanto non utilizza HTML, CSS3 per le interfacce ma un motore grafico nativo. 

Unity è un motore grafico multipiattaforma sviluppato da Unity Technologies che consente lo sviluppo di videogiochi e altri contenuti interattivi, quali visualizzazioni architettoniche o animazioni 3D in tempo reale.
Quindi in questo caso Unity è la soluzione per creare applicazioni di gaming, realtà aumentata e virtuale.

Unity

L’ambiente di sviluppo Unity gira sia su Microsoft Windows sia su macOS e sia su Linux, e i giochi che produce possono essere eseguiti su Microsoft Windows, Mac, Linux, Xbox 360, PlayStation 3, PlayStation Vita, Wii, iPad, iPhone, Android, Windows Mobile, PlayStation 4, Xbox One, Wii U e Switch. Per portare Unity su Xbox One, la compagnia ha stretto una collaborazione con la stessa Microsoft per lo sviluppo di tool appositamente studiati per la next gen della casa di Redmond, che evidentemente ha deciso di puntare in maniera decisa sull’engine in questione. Può anche produrre giochi per browser web che utilizzano il plugin Unity web player, supportate su Mac e Windows.

Il web player viene utilizzato anche per la distribuzione come i widget negli Apple Macintosh. Unity ha anche la possibilità di esportare giochi alle funzionalità 3D di Adobe stage in Flash, ma alcune caratteristiche supportate dal web player non sono utilizzabili a causa di limitazioni in Flash.

Unity consente di utilizzare sia un editor per lo sviluppo / progettazione di contenuti sia un motore di gioco per l’esecuzione del prodotto finale. Unity è simile a Director, Blender Game Engine, Virtools, Torque Game Builder e Gamestudio, è inoltre possibile utilizzare un ambiente grafico integrato come metodo primario di sviluppo.

Quanto costa realizzare un app cross-platform

Quanto costa lo sviluppo di un’app cross-platform? Ovviamente questa domanda è troppo generica e non esiste una risposta a priori.

Costo App Crossplatform

Per valutare correttamente i costi occorre quindi fornire agli sviluppatori:

  • Descrizione dettagliata dell’app e delle schermate richieste
  • Diagramma di flusso del funzionamento
  • Integrazione con sistemi esterni, ERP e CRM aziendali
  • Dispositivi e sistemi obiettivo (Android, iOS, etc.)
  • Tipologia di dispositivi (smartphone, tablet, etc.)
  • Tempi di sviluppo e future implementazioni
  • Team di sviluppo ed integrazione con altri team (ad esempio, grafici, copywriter, etc)
  • Lingue e mercati obiettivo
  • Modalità di promozione dell’app
  • Obiettivi e KPI per l’analisi dei risultati
  • Futuri sviluppi ed implementazioni

Tutte queste informazioni vi sembrano troppe? Niente paura, affidandovi a professionisti nello sviluppo di app, sarete guidati nel fornire le risposte corrette e valutare le giuste premesse. È fondamentale comprendere che investire del tempo e del budget per l’analisi preliminare è del tutto necessario per la riuscita del vostro progetto, risparmiare tempo e denaro in futuro.

Dunque se volete sapere quanto potrebbe costare l’app che avete in mente, vi consigliamo di richiederci un preventivo includendo nella richiesta una descrizione dettagliata del progetto, del modello di business e dei budget dedicati al progetto.  

Conclusioni

Scegliere la migliore tecnologia per il proprio progetto mobile richiede spesso valutazioni complesse che comportano analisi su:

  • Caratteristiche e funzionalità dell’App
  • Team di sviluppo, caratteristiche e competenze
  • Budget dedicato alla fase di sviluppo iniziale e successive implementazioni e manutenzioni
  • Tempi di sviluppo, time to market
  • Flessibilità ed espandibilità, valutazioni sulle future evoluzioni dell’applicazione, del mercato, delle tecnologie, etc.
  • Piattaforme di destinazione, target, tipologia di utenti, etc.

Tutte queste valutazioni richiedono esperienza e competenze pertanto è sempre opportuno rivolgersi a sviluppatori professionisti che possano indirizzarvi nel modo migliore verso la soluzione più idonea per il vostro progetto.

Condividi
Condividi su facebook
Condividi su google
Condividi su twitter
Condividi su linkedin
guest
0 Commenti
Inline Feedbacks
View all comments

Potrebbe Interessarti

Luca Mainieri
Dal 2013 sono l’orgoglioso papà di Francesco e Camilla, due panzottini che hanno reso la mia vita più ricca di emozioni. Dal 2002 mi occupo di web in modo professionale, prima come programmatore e successivamente come consulente webmarketing e seo / ppc e social media. Nel 2009 ho creato Neting, con la quale forniamo servizi professionali di sviluppo (realizzazione App e siti Web) e consulenziali (web marketing e promozione SEO / PPC).
Condividi
Condividi su facebook
Facebook
Condividi su linkedin
LinkedIn
SCRIVI UN GUEST POST

Sei un blogger e sei interessato a scrivere articoli per il Blog di Neting?

Vuoi approfondire questo argomento?

Vuoi saperne di più? Hai bisogno di aiuto per il tuo business?
I nostri esperti sono a tua disposizione.