Che cos'è lo sviluppo mobile?

Lo sviluppo mobile descrive i processi e le procedure necessari per la scrittura di software per dispositivi mobili, ad esempio smartphone, smartwatch e tablet.

Al giorno d'oggi il computing si è progressivamente allontanato da computer fissi e persino dai portatili dei decenni scorsi. Oggi, la maggior parte delle operazioni computazionali viene eseguita su dispositivi mobili e più della metà del traffico Internet proviene da smartphone, tablet e altre opzioni wireless.

Mentre la computazione continua la sua transizione da fissa a mobile, cresce la domanda di software in grado di funzionare con efficienza sui dispositivi mobili. Ma questo significa andare oltre la mera creazione di app per dispositivi mobili: le organizzazioni devono essere in grado di sviluppare applicazioni che non solo possano essere utilizzate sui dispositivi mobili, ma anche che ne sfruttino al meglio le funzionalità esclusive.

Per soddisfare appieno questa esigenza, sempre più aziende si affidano allo sviluppo mobile.

Per eseguire un'applicazione è necessario che nel dispositivo mobile sia presente un sistema operativo funzionante. Il sistema operativo fa da tramite tra l'hardware del computer e i programmi che esegue, agevolando l'interazione. Il sistema operativo garantisce che i processi software in esecuzione sul computer abbiano accesso alle risorse pertinenti e che possano funzionare come previsto.

Una piattaforma di sviluppo mobile è essenzialmente un sistema operativo progettato per creare, testare e distribuire applicazioni per dispositivi mobili. Sebbene storicamente esistano numerose piattaforme di sviluppo mobile, oggi il mercato è conteso da due principali concorrenti: Android e iOS.

Android

Android è la più grande piattaforma di sviluppo mobile, che rappresenta circa l'80% della quota di mercato. Questo perché Android è un sistema operativo open source che può essere eseguito in diverse versioni su molti tipi di dispositivi di diversi produttori. Supportato da Google e basato su Linux, Android consente a chiunque di produrre hardware in grado di supportare il sistema operativo. Lo stesso vale per lo sviluppo di applicazioni Android: sviluppatori e sviluppatrici hanno piena autonomia per la creazione di app per dispositivi Android, che si traduce in una maggiore flessibilità delle app e in una barriera di accesso estremamente bassa.

Google fornisce strumenti nativi per lo sviluppo di applicazioni per dispositivi mobili Android, tra cui Android Studio. Inoltre, la natura open source del sistema operativo consente ai provider terzi di creare strumenti di sviluppo Android in autonomia. Le estese linee guida di Google per lo sviluppo aiutano a garantire che l'applicazione sviluppata funzioni perfettamente su molti diversi tipi di hardware. Tuttavia, dato che il numero di potenziali dispositivi Android è fondamentalmente illimitato, non c'è modo di avere certezza che le nuove applicazioni funzionino perfettamente in ogni situazione e con tutti i tipi di hardware.

iOS

Sebbene iOS rappresenti solo il 18% della quota di mercato, è probabilmente la piattaforma predominante tra le due. Il sistema operativo iOS è di proprietà di Apple, l'azienda che più è stata responsabile dell'introduzione dell'informatica mobile nel tessuto quotidiano grazie all'avvento delle tecnologie iPhone e iPad.

Il motivo per cui iOS non si estende a molti dispositivi come Android è che non si tratta di un modello open source: iOS funziona esclusivamente su prodotti Apple. Allo stesso modo, per sviluppare applicazioni per iOS, è necessario utilizzare un computer Mac con OS X (il sistema operativo standard di Mac).

Apple fornisce librerie e strumenti nativi per lo sviluppo mobile: i team di sviluppo sono incoraggiati a utilizzare Swift, il linguaggio di programmazione di Apple.

Poiché Apple mantiene uno stretto controllo sugli aspetti hardware e software dello sviluppo iOS, le prestazioni iOS sono in genere molto reattive, stabili e di facile utilizzo. Anche la frammentazione dei dispositivi è meno problematica, perché Apple autorizza l'esecuzione delle sue applicazioni solo sugli hardware proprietari. D'altro canto, linee guida più severe possono tradursi in una maggiore difficoltà a sviluppare app completamente personalizzate: qualsiasi nuova applicazione iOS deve essere inviata all'App Store per la revisione e l'approvazione.

Altre piattaforme

Tutte le altre piattaforme di sviluppo mobile attualmente in circolazione condividono il restante 2% della quota di mercato. Tra queste figurano le piattaforme di sviluppo Windows e BlackBerry, ma quasi tutti i team di sviluppo mobile scelgono di concentrare i propri sforzi su Android, iOS o una combinazione dei due.

Esistono diversi approcci allo sviluppo mobile. In questo articolo, esaminiamo più da vicino tre dei più comuni:

Sviluppo nativo

Probabilmente il metodo di sviluppo mobile più diretto e ovvio è utilizzare gli strumenti e le piattaforme messi a disposizione dal fornitore del sistema operativo. Questi strumenti sono stati progettati tenendo a mente la facilità d'uso e forniscono esempi, strumenti, framework e altre risorse per garantire un debugging più rapido e la funzionalità ottimale sul sistema operativo mobile per il quale si sta sviluppando l'applicazione.

Tuttavia, gli strumenti di sviluppo nativi presentano degli svantaggi. Poiché sono progettati per facilitare lo sviluppo nel rispettivo sistema operativo, si basano su linguaggi di programmazione diversi. Ciò significa che i team di sviluppo che desiderano codificare utilizzando gli strumenti di sviluppo Android o iOS devono avere familiarità con i linguaggi utilizzati in tali strumenti, e che non possono semplicemente lavorare utilizzando il linguaggio che preferiscono. Analogamente, sviluppare un'app per entrambi i tipi di sistemi operativi può significare lavorare il doppio, codificare l'applicazione due volte e seguire due diverse serie di processi e best practice.

Tuttavia, per coloro che sono interessati allo sviluppo di app per un solo sistema operativo, lo sviluppo nativo può essere la soluzione più veloce e semplice.

Pro

  • Prestazioni ottimizzate
    Sfruttando appieno le funzionalità del dispositivo, le app sviluppate nativamente tendono a funzionare meglio e in modo più coerente.
  • Usabilità migliorata
    Le app native sono progettate per funzionare su dispositivi specifici. Di conseguenza, possono sfruttare le funzionalità intrinseche di tali dispositivi per offrire un'esperienza utente migliore.
  • Codifica su un'unica piattaforma
    Poiché sono progettate per funzionare su un'unica piattaforma e non su più sistemi operativi, le app native sono più facili da sviluppare.

Contro

  • Necessità di competenze specialistiche
    Le app native progettate per sistemi operativi specifici richiedono team di sviluppo con competenze specialistiche nella codifica per il dispositivo di destinazione.
  • Molteplici sforzi di sviluppo
    Poiché le app native devono essere sviluppate specificamente per adattarsi ai singoli sistemi operativi, sono necessari molteplici sforzi di sviluppo (oltre all'aumento associato dei costi e all'impegno in termini di tempo) per creare un'app in grado di funzionare su più di una piattaforma.

Framework multipiattaforma

I framework di sviluppo multipiattaforma (anche chiamati ibridi) sono progettati per consentire ai team di sviluppo di creare applicazioni mobili efficaci che possano funzionare in modo ottimale su entrambi i principali sistemi operativi. A livello teorico, significa che il team di sviluppo dovrà scrivere il codice solo una volta per poterlo eseguire su tutte le piattaforme supportate. La maggior parte dei framework multipiattaforma tende a favorire un sistema operativo rispetto all'altro, costringendo i team di sviluppo a modificare la versione dell'app destinata all'altro sistema operativo.

Spesso i framework multipiattaforma sono astrazioni: utilizzano librerie e framework nativi e richiedono ai team di sviluppo di conoscere questi elementi a livello basilare. Altri adottano un approccio ibrido, integrando componenti HTML basati sul Web e componenti nativi.

La maggior parte delle soluzioni multipiattaforma supporta un linguaggio di programmazione specifico: molti team di sviluppo sceglieranno il linguaggio di programmazione da usare in base a quello con cui hanno già familiarità.

Pro

  • Sviluppo più rapido
    Per creare un'app multipiattaforma è richiesto un singolo set di codici per il funzionamento su più sistemi operativi, il che si traduce in cicli di sviluppo più rapidi.
  • Sviluppo più semplice
    Chi sviluppa app ibride deve acquisire familiarità con una sola tecnologia, il che si traduce in minori barriere d'accesso e in un processo di sviluppo semplificato.
  • Pubblico più ampio
    Poiché le app multipiattaforma sono concepite per essere disponibili nei principali marketplace di app, sviluppatori e sviluppatrici possono raggiungere utenti Android e iOS.

Contro

  • Usabilità ridotta
    Le app create per il funzionamento su entrambi i principali sistemi operativi in genere non sono in grado di sfruttare al meglio le funzionalità specifiche delle rispettive piattaforme. Ciò può influire sull'usabilità e sulla velocità di esecuzione delle applicazioni, che avviene più lentamente rispetto a quelle sviluppate nativamente.
  • Rallentamento nel roll out delle nuove funzionalità
    Con l'introduzione di nuove funzionalità native, i team di sviluppo multipiattaforma devono aspettare che le funzioni siano compatibili per il framework di sviluppo scelto.
  • Difficoltà di personalizzazione
    La personalizzazione delle app è molto più difficoltosa se l'app non viene sviluppata in modo nativo. Se si utilizza il framework multipiattaforma, potrebbe non essere possibile in toto.
  • Problemi di prestazioni
    Le app che non vengono create per un sistema operativo specifico possono riscontrare problemi di comunicazione e di prestazioni.

Applicazione Web per dispositivi mobili

La terza opzione, che negli ultimi anni si sta diffondendo sempre più, è utilizzare un'applicazione web per dispositivi mobili per lo sviluppo mobile. Ciò comporta la creazione di un'applicazione Web a cui accedere tramite un browser Web standard e la sua ottimizzazione per l'uso su dispositivi mobili.

Questo approccio può sembrare una scorciatoia, ma la verità è che le applicazioni Web per dispositivi mobili possono essere efficaci, funzionali e raffinate come qualsiasi applicazione sviluppata nativamente. Di fatto, sono disponibili molti framework progettati per aiutare i team di sviluppo a sviluppare applicazioni Web per dispositivi mobili che sembrino native quando vengono eseguite su un sistema operativo mobile specifico. Le applicazioni Web per dispositivi mobili possono persino incorporare funzionalità dai dispositivi mobili su cui vengono eseguite: accesso alla fotocamera, composizione di numeri di telefono, acquisizione di dati sulla posizione e altro ancora.

Pro

  • Manutenzione semplificata
    Grazie alle regole e ai linguaggi di programmazione dei siti Web standard, lo sviluppo e l'aggiornamento delle applicazioni Web per dispositivi mobili sono facili quanto quelli dei siti Web.
  • Sviluppo più rapido
    Lo sviluppo di applicazioni Web utilizza un unico set di codici, per un processo di sviluppo più rapido e semplice. Inoltre, poiché non richiedono l'approvazione dai principali marketplace di app, possono essere rilasciate molto più rapidamente.
  • Costi ridotti
    La codifica semplificata e i cicli di sviluppo più rapidi consentono di ridurre i costi di sviluppo.
  • Accessibilità ottimale
    Le applicazioni Web funzionano in modo analogo ai siti Web e sono accessibili tramite qualsiasi browser Web standard.

Contro

  • Dipendenza da Internet
    Poiché alle applicazioni Web si accede da Internet tramite un browser Web standard, per funzionare è necessaria una connessione online. Senza l'accesso alla rete Wi-Fi o ai dati cellulari, gli utenti non possono accedere all'app.
  • Accessibilità alle funzionalità limitata
    Le applicazioni Web non hanno accesso alle funzionalità native del dispositivo o del sistema operativo, il che limita potenzialmente le relative funzionalità.
  • Non disponibili sui marketplace di app
    Le applicazioni Web non sono disponibili sui marketplace delle app, il che rende facile lasciarsele sfuggire.

Sebbene i singoli sviluppatori e le singole sviluppatrici possano adottare approcci diversi o utilizzare metodologie diverse, il processo di sviluppo delle app in genere segue sei fasi:

1. Ideazione

Il team di sviluppo deve collaborare con altri reparti e stakeholder per stabilire i requisiti dell'app da sviluppare. Ciò include tutte le funzionalità e le capacità di cui l'app dovrà disporre, il pubblico a cui sarà destinata e i problemi specifici che dovrà risolvere.

Processo di sviluppo delle app - ServiceNow

2. Progettazione

Una volta definita l'idea alla base dell'app, il passo successivo consiste nel progettare l'interfaccia utente (UI) e l'esperienza utente (UX) dell'app.

3. Sviluppo

La fase di sviluppo è quella in cui si inizia effettivamente con le operazioni di codifica. I team di sviluppo programmano l'app rispettando le linee guida stabilite. Avviano i test preliminari, con l'obiettivo di garantire la corretta funzionalità.

4. Test

Man mano che l'app si avvicina al completamento, è necessario eseguire test più approfonditi. Questa fase di test non solo aiuta a determinare se l'app funziona o se vi sono problemi da risolvere, ma considera anche la qualità generale e l'esperienza utente.

5. Pubblicazione

Una volta completato il test finale dell'app, che risulta conforme agli standard stabiliti, tutto è finalmente pronto per la pubblicazione.

6. Marketing

Sebbene non faccia tecnicamente parte dello sviluppo delle app, il marketing aiuta a garantire che il duro lavoro del team di sviluppo non vada sprecato. La giusta strategia di marketing è fondamentale per comunicare al pubblico che l'applicazione è disponibile e spiegare cosa offre. Allo stesso tempo, il marketing può generare preziosi feedback, che possono essere impiegati dal team di sviluppo per migliorare l'app tramite ulteriore supporto.

Il successo di quasi tutte le applicazioni mobili dipende dall'usabilità. L'interfaccia utente determina l'aspetto dell'applicazione e il modo in cui gli utenti interagiranno con essa. Pertanto, la creazione di un'interfaccia utente efficace richiede alcuni componenti:

Architettura delle informazioni

Nella creazione dell'architettura delle informazioni, il team di sviluppo specifica la funzionalità dell'applicazione e descrive in dettaglio i componenti dell'interfaccia.

Reticolo

I reticoli creano una rappresentazione visiva di base dell'aspetto integrale dell'app. Ciò include le dimensioni dei vari elementi e la loro relazione reciproca relativamente al layout.

Guide di stile

Le guide di stile sono riferimenti che forniscono dettagli rilevanti sull'app per garantire che il design rimanga coerente.

Mockup

Partendo da reticoli e guide di stile, i mockup mostrano il flusso dell'app, presentata come visualizzazione statica.

Prototipi

Un prototipo è una versione essenziale dell'applicazione funzionante che integra o estrae tutti i precedenti componenti. I prototipi offrono ai team di sviluppo una panoramica dinamica sul funzionamento dell'app prima del suo completamento. In questo modo è possibile identificare i punti deboli dell'interfaccia utente e dell'esperienza utente, in modo che il prodotto finito abbia maggiori possibilità di soddisfare o superare le aspettative degli utenti.

Sviluppare app potenti e affidabili è ormai fondamentale per rimanere competitivi nell'attuale mondo aziendale sempre più connesso. ServiceNow, leader nelle soluzioni di gestione IT, offre soluzioni per lo sviluppo di app che consentono a qualsiasi organizzazione di accedere facilmente a risorse e strumenti avanzati per concettualizzare, sviluppare, pubblicare ed eseguire la manutenzione di applicazioni coinvolgenti ed efficaci.

ServiceNow Mobile Studio offre alle aziende tutto ciò che serve per sviluppare app personalizzate per dispositivi mobili, senza richiedere un esercito di sviluppatori o una conoscenza approfondita del codice. Grazie a modelli preconfigurati, funzionalità trascina e rilascia e opzioni di branding di facile utilizzo, Mobile Studio rende lo sviluppo di app semplice come premere un pulsante. Inoltre, gli strumenti di configurazione di ServiceNow Mobile App Builder offrono ancora di più grazie a una maggiore organizzazione, visibilità e guida per la creazione di app.

Scopri di più sullo sviluppo mobile

Crea applicazioni per la tua azienda e i tuoi clienti con ServiceNow.