Questo sito web utilizza cookie tecnici e, previo Suo consenso, cookie di profilazione, nostri e di terze parti. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsente all'uso dei cookie. Leggi la nostra Cookie Policy per esteso.OK

Sviluppare app mobile: come e perché scegliere strumenti multipiattaforma

pittogramma Zerouno

TechTarget Tech InDepth

Sviluppare app mobile: come e perché scegliere strumenti multipiattaforma

Sviluppare app grazie a strumenti di programmazione multipiattaforma aiuta le organizzazioni a creare soluzioni dedicate a diversi utenti e dispositivi. Da dove cominciare? Ecco una guida che aiuta a capire quali sono gli strumenti più utili

25 Ott 2019

di Laura Zanotti - Fonte TechTarget

Sviluppare app mobile per i programmatori rappresenta un ottimo business. L’evoluzione degli utenti ha portato nelle aziende una diversificazione di dispositivi, fissi e mobili, che stanno favorendo la convergenza tra sistemi e applicazioni promuovendo logiche multipiattaforma.

Il monopolio dei desktop Windows nelle aziende è giunto al termine. Oggi l’IT aziendale deve supportare un’ampia gamma di endpoint, tra cui smartphone, tablet e tecnologie emergenti, come smartwatch e dispositivi indossabili. Alcune organizzazioni devono persino tenere conto del moltiplicarsi dei dispositivi IoT: chioschi interattivi, tavoli parlanti e robot, solo per citare i più noti.

Sviluppare app ragionando nativamente multipiattaforma

In ambienti multi-dispositivo, i team IT devono capire come sviluppare app aziendali in chiave mobile nel modo più rapido ed efficiente possibile. Un processo reso più arduo dalla necessità di soddisfare il duopolio della domanda, al momento polarizzata tra iOS e Android. Per questo motivo, molte organizzazioni si rivolgono a strumenti di programmazione mobile multipiattaforma, che consentono loro di sviluppare app sia per iOS che per Android a partire da un’unica base di codice.

Evoluzione della programmazione e dei sistemi operativi mobile

L’obiettivo di questo articolo è fornire una guida agli strumenti che servono a sviluppare app mobile multipiattaforma per aiutare le organizzazioni a determinare quale opzione sia più adatta al proprio team. Per farlo al meglio, serve un po’ di prospettiva.

La svolta agli approcci di programmazione avviene alla fine degli anni ’90. Con l’avvento di Java gli sviluppatori ingranano la marcia all’insegna del motto “scrivi una volta, esegui ovunque“. Il concetto era semplice: utilizzare uno strumento di sviluppo capace di supportare più ambienti.

Oggi le organizzazioni necessitano di strumenti di sviluppo che funzionino in modo equivalente su iOS, Android, Windows Mobile così come su tutte le altre realtà più o meno emergenti come, a esempio, Ubuntu Touch, Tizen Os, Sailfish Os o Plasma Mobile.

Sviluppare app

Esistono diversi fornitori che offrono tool per sviluppare app mobile multipiattaforma in grado di supportare più sistemi operativi. Questi strumenti sono importanti perché contribuiscono a semplificare la programmazione e ad accelerare le modalità di rilascio, evitando di dover sviluppare ogni volta delle app native per ogni piattaforma e dispositivo.

I tool possono essere suddivisi in due macrocategorie:

  1. Ibridi multipiattaforma: questi strumenti, che si basano su tecnologie comuni come JavaScript, CSS eoHTML5, consentono di sviluppare app Web eseguite all’interno di un contenitore nativo sui dispositivi di destinazione. La maggior parte del codice supporta diverse piattaforme, rendendo lo sviluppo più rapido, semplice ed economico rispetto a quanto non avvenga perseguendo approcci nativi. Tuttavia, questo tipo di app non funziona in modo analogo alle app native e non possono sfruttare appieno le funzionalità integrate del dispositivo.
  1. Nativi multipiattaforma: questi strumenti offrono un compromesso tra l’approccio ibrido e lo sviluppo di app native. Gli sviluppatori possono creare app che supportano più piattaforme utilizzando un linguaggio intermedio, come JavaScript o C #. A differenza dell’approccio ibrido, questo tipo di app utilizza i controller nativi dell’interfaccia utente, che consentono loro di sfruttare al meglio le funzionalità del dispositivo, offrendo allo stesso tempo migliori prestazioni dell’app. La progettazione, però, non è così semplice e veloce come con le app ibride. In più bisogna tener conto del fatto che le app native multipiattaforma continuano a non funzionare come le app native reali.

Analizzare bene le esigenze e le finalità

Oltre agli strumenti di sviluppo mobile multipiattaforma, i team IT dovrebbero valutare nel dettaglio quali sono le esigenze di sviluppo per le app basate sul Web e quindi quali possono essere le opzioni a livello di programmazione. Le app Web progressive sono un classico esempio: un sito Web si presenta e si comporta come se fosse un’app mobile perché progettato per sfruttare le funzionalità dei dispositivi mobili nativi, senza richiedere all’utente finale di visitare un app store o effettuare un acquisto e scaricare software localmente. In sintesi, si tratta di applicazioni Web potenziate, che si basano su plug-in per accedere alle funzionalità native sui dispositivi mobili. Questa opzione offre la flessibilità delle applicazioni basate sul Web, supportando comunque le funzionalità più avanzate dei dispositivi.

Per semplificare il processo di sviluppo, in alcuni casi i team IT possono considerare gli strumenti no-code o low-code. Questa opzione risulta particolarmente utile per le organizzazioni più piccole, che hanno risorse di sviluppo limitate così come per i team di organizzazioni più grandi, che devono gestire requisiti specifici. Alcuni strumenti multipiattaforma supportano funzionalità a basso codice, ma le reali potenzialità di questi strumenti consiste nell’insieme di funzionalità del loro set.

I vantaggi degli strumenti di sviluppo mobile multipiattaforma

Per quanto le aziende debbano prestare attenzione quando gestiscono ambienti multipiattaforma, ci sono indubbiamente molti vantaggi nello scegliere questo approccio allo sviluppo.

Innanzitutto, un singolo team di programmatori può costruire piattaforme più versatili e agili, perché svincolate dal tipo di dispositivo mobile. In secondo luogo, diventa più facile imparare come utilizzare un solo strumento di sviluppo, abbassando i bassi i costi.

La maggior parte degli strumenti multipiattaforma sta maturando rapidamente; molte delle funzionalità richieste alle app mobili di tipo enterprise come, ad esempio, la scansione di codici a barre, il riconoscimento delle immagini o la connessione voce/dati, sono caratteristiche base degli strumenti multipiattaforma. I tool che permettono di sviluppare app mobile multipiattaforma aiutano a progettare il software in modo più rapido ed efficiente. Si tratta di un vantaggio che diventa un valore importante per le PMI le quali, tipicamente, non hanno il budget necessario a diversificare la programmazione sia per Android che per iOS. In ogni caso, anche le grandi aziende possono mettere in pista piccoli progetti di sviluppo utilizzando strumenti multipiattaforma.

Esempi di strumenti multipiattaforma ibridi

Oggi ci sono molti strumenti multipiattaforma tra cui scegliere, sia per lo sviluppo ibrido che nativo. Tra gli strumenti ibridi, i più diffusi sono:

  • Apache Cordova
  • Adobe PhoneGap
  • Framework7
  • Ionic
  • Sencha Ext JS

Apache Cordova e Adobe PhoneGap: differenze e analogie

Cordova è uno strumento di sviluppo particolarmente importante perché viene utilizzato o correlato a molti altri strumenti ibridi multipiattaforma, come Ionic, Ext JS e Framework7.

In effetti, Cordova e PhoneGap condividono alcuni elementi in comune, originati da un singolo progetto avviato nel 2008 da un gruppo di ingegneri della società di sviluppo web Nitobi. Quando Adobe ha acquisito Nitobi, il progetto è stato spacchettato in due, con Cordova che è diventato il prodotto Apache open source e PhoneGap il prodotto brandizzato Adobe. Nonostante la divisione, le due piattaforme rimangono molto simili.

Prodotti come Cordova e PhoneGap rendono più semplice sviluppare app mobili tramite linguaggi semplici come HTML e JavaScript. Di conseguenza, le organizzazioni che hanno già investito in infrastrutture di sviluppo Web possono passare alla programmazione di app mobili con molto meno sforzo. Inoltre, gli sviluppatori possono utilizzare questi strumenti in combinazione con ambienti di sviluppo integrati, come Xcode, Eclipse e Visual Studio.

Ext JS: caratteristiche e funzionalità

Gli strumenti ibridi multipiattaforma offrono anche altre importanti funzionalità. Ext JS viene fornito con un assortimento di strumenti per la creazione di app end-to-end, come Sencha Architect, che offre funzionalità di trascinamento della selezione. Inoltre, Ext JS offre lo strumento da riga di comando ExtGen per la generazione di app, ExtBuild per la creazione e la conversione di app e Sencha Cmd per la gestione del ciclo di vita dell’applicazione.

Esempi di strumenti nativi multipiattaforma

Gli strumenti nativi multipiattaforma sono altrettanto versatili, se non di più. Tra gli strumenti e i framework nativi più utilizzati, ci sono:

  • Appcelerator Titanium
  • Flutter
  • NativeScript
  • React Native
  • Xamarin

Sebbene tutti gli strumenti supportino lo sviluppo nativo multipiattaforma, tra uno e l’altro sussistono differenze significative. Per fare un esempio concreto: mentre molti usano JavaScript per lo sviluppo di app, Flutter utilizza Dart e Xamarin utilizza C #.

Gli strumenti possono anche variare in termini di sforzo di sviluppo, maturità, disponibilità di librerie, quantità di codifica personalizzata richiesta e, soprattutto, prestazioni delle app. Ad esempio, Flutter sta rapidamente guadagnando popolarità in tutti i casi in cui si debbano creare app ad alte prestazioni ma, in quanto tecnologia ancora giovane, molti servizi di terze parti e altre piattaforme non sono ancora supportate. Dunque, prima di scegliere, non dimenticare le opportune valutazioni.

Sviluppare app: scegliere gli strumenti in base al target

A dispetto del fatto che sia una considerazione scontata, per sviluppare app non va dimenticato come ogni organizzazione sia diversa dall’altra per tipologia e dimensioni. Soprattutto, ogni realtà ha diverse esigenze, specie quando si tratta di software in chiave mobile. Le imprese devono scegliere strumenti per sviluppare app mobile multipiattaforma adatti alle loro circostanze specifiche.

A questo proposito, gli esperti forniscono delle utili linee guida:

  • Piccole aziende (meno di 50 persone): quando le aziende hanno un piccolo team che lavora per offrire valore ai clienti, dovrebbero concentrarsi su app mobili che possono essere lanciate rapidamente senza dover sostenere le spese legate ai costi ingenti di un team di sviluppo. A tal fine, le aziende dovrebbero utilizzare le opzioni già disponibili negli app store pubblici o nei prodotti commerciali standard (Commercial Off-The-Shelf – COTS).
  • Aziende di medie dimensioni (fino a 500 persone): queste organizzazioni devono affrontare la sfida di dover creare app sia per iOS che per Android a causa di un mix di esigenze sia del personale che dei consumatori. Le tecnologie multipiattaforma, come Xamarin o Titanium, funzionano bene in questo tipo di ambiente. L’uso di C # in Xamarin renderà più semplice la migrazione ai dispositivi mobili basati su .NET. Le medie imprese dovrebbero anche prendere in considerazione opzioni di sviluppo a basso codice.
  • Grandi aziende (oltre 500 persone): le esigenze di queste organizzazioni sono più complesse delle PMI a sia per le caratteristiche dei loro sistemi di back-office sia per la necessità di definire una sicurezza più sofisticata nelle loro app. Per questo motivo, dovrebbe essere utile un approccio multilivello: utilizzare uno strumento multipiattaforma per piccoli team e rivolgersi a strumenti nativi sia per app mission-critical che per app pubbliche rivolte al consumatore.

Programmare app mobile: attenzione agli obiettivi

Sicurezza

Quando la sicurezza è un problema, gli sviluppatori dovrebbero puntare alla creazione di app native. Se le app sono per uso interno, una piattaforma di gestione delle applicazioni mobili può aiutare con la distribuzione delle app.

Velocità

Quando la velocità di consegna è la principale preoccupazione, le organizzazioni dovrebbero utilizzare una combinazione di prodotti COTS e strumenti multipiattaforma che supportano framework come NativeScript, Framework7 o Xamarin. Dovrebbero anche considerare le opzioni di sviluppo a basso codice.

Costo

Quando il costo è la preoccupazione maggiore, le tecnologie open source come Cordova o React Native sono buone opzioni.

Quali strumenti funzionano meglio

Gli strumenti per lo sviluppo mobile stanno maturando rapidamente. Sempre e in ogni caso gli osservatori suggeriscono di rivedere gli strumenti disponibili ogni 6-12 mesi per verificare quali potrebbero funzionare meglio.

Gli strumenti per sviluppare app mobile multipiattaforma sono ottimi per eseguire test concettuali, è importante prendere in considerazione anche altri fattori. Di seguito qualche caso emblematico:

  • Nella maggior parte die casi oggi gli sviluppatori hanno ancora bisogno di accedere a un ambiente macOS per creare app iOS. Anywhere Software afferma che la sua piattaforma B4i è l’unico strumento di sviluppo che consente agli sviluppatori di creare app iOS senza un Mac locale.
  • Gli strumenti per lo sviluppo di app multipiattaforma sono sempre al passo con l’evoluzione dei sistemi operativi mobili
  • Gli strumenti multipiattaforma degradano le loro prestazioni quando le app diventano più complesse
Z

Laura Zanotti - Fonte TechTarget

Giornalista

Ha iniziato a lavorare come technical writer e giornalista negli anni '80, collaborando con tutte le nascenti riviste di informatica e Telco. In oltre 30 anni di attività ha intervistato centinaia di Cio, Ceo e manager, raccontando le innovazioni, i problemi e le strategie vincenti delle imprese nazionali e multinazionali alle prese con la progressiva convergenza tra mondo analogico e digitale. E ancora oggi continua a farlo...

Argomenti trattati

Approfondimenti

Tech InDepth

Articolo 1 di 5