Come cambia lo sviluppo delle applicazioni mobile
La sempre maggiore complessità delle varie piattaforme, e la loro incompatibilità, ha reso tuttavia sempre più complicato per un singolo programmatore (o team di sviluppo) rimanere aggiornato su tutte le innovazioni e sulle novità a livello di implementazione. Da tempo esistono tentativi di standardizzare sotto un denominatore comune gli sviluppi per le varie piattaforme mobile, con Framework che però si allontanano dallo strato “nativo” dei singoli sistemi e, introducendo astrazioni che limitano la libertà degli sviluppatori, non permettono di sfruttare a fondo le potenzialità dei dispositivi e forniscono in ultima analisi una esperienza utente nettamente inferiore. O almeno così era fino a poco tempo fa.
Soluzioni per lo sviluppo
Per padroneggiare al meglio la complessità di produzione codice, sono nati diversi metodi di gestione dello sviluppo di app multi-piattaforma attraverso l’utilizzo di Framework. Le tecnologie per la creazione di applicazioni mobile multipiattaforma sono divise in due grandi categorie: le applicazioni web-based e le applicazioni multi-piattaforma scritte in un linguaggio comune, appoggiandosi a un framework specifico.
1. Soluzioni Web-Based
Le tecnologie web-based (ovvero “basate sul web”) spesso usano un software “contenitore” nativo simile a un normale web-browser, che fa da ponte tra l’applicazione ibrida scritta in HTML/Javascript (le stesse tecnologie su cui si basa il web) e il sistema operativo. Questo è il caso per esempio di Cordova/Phonegap, che permette alle app ibride di accedere alle specifiche del singolo dispositivo mobile (es. la dimensioni dello schermo) e rendendo disponibili alcune caratteristiche altrimenti non accessibili normalmente da web (funzioni specifiche del sistema operativo o dell’hardware). Più recentemente hanno iniziato a diffondersi anche le Progressive Web Apps (o PWA), principalmente spinte da Google, ma che funzionano anche su Apple con alcuni limiti. Le PWA superano la necessità di un “contenitore” e vengono sviluppate interamente in tecnologia web, grazie alle nuove specifiche di HTML5, proprio come un sito web. Le PWA, inoltre, a differenza delle altre tecnologie nominate, non hanno componenti native e non vengono quindi distribuite sugli app store tradizionali, ma direttamente con un link come un normale sito web. Si tratta di una tecnologia interessante ma ancora non completamente matura, che con ogni probabilità tratteremo in futuro.
2. Framework multi-piattaforma
Attraverso un framework di sviluppo multi-piattaforma è possibile scrivere codice che verrà compilato per essere eseguito direttamente sulle varie piattaforme, in modo simile ad una app nativa. Esistono vari framework per lo sviluppo multi-piattaforma, con caratteristiche diverse in termini di qualità del risultato e ambito di applicazione, per questo è necessario scegliere i giusti strumenti a seconda degli obiettivi desiderati.
Per lo sviluppo per esempio di app mobile cross-platform, i framework più utilizzati oggi sono:
a) React Native b) Flutter (di recente reso disponibile per la prima volta da Google)
c) Xamarin.
Per lo sviluppo di applicazioni ludiche e multimediali (videogames, AR/VR), esistono poi framework specifici come Unity e Unreal Engine (che spesso usiamo in Synesthesia, ma che tratteremo in un futuro articolo).
Sia le tecnologie web-based che i framework multi-piattaforma presentano il vantaggio di dover utilizzare un solo linguaggio per lo sviluppo dell’applicazione, tuttavia entrambe presentano limiti nella possibilità di integrazione con le singole specificità dei sistemi operativi dei device, nella manutenzione del codice e nei risultati in termini di esperienza utente. In questo articolo abbiamo deciso di concentrarci sui Framework multipiattaforma, che secondo la nostra esperienza garantiscono una maggiore qualità del risultato finale, risparmiando sui tempi e costi di sviluppo senza scendere troppo a compromessi con lo sfruttamento delle potenzialità dei dispositivi mobili.
Nei prossimi paragrafi andremo dunque ad approfondire quali sono i principali framework utilizzati nell’ambito dello sviluppo di mobile app.
a) React Native: i vantaggi e gli svantaggi del Framework di Facebook
Una delle novità su cui già da tempo la factory di Synesthesia sta lavorando con ottimi risultati di performance e di soddisfazione del cliente è lo sviluppo in React Native. React-Native è un framework che permette di creare app mobile multi-piattaforma rilasciato e promosso da Facebook Inc. Le applicazioni vengono sviluppate utilizzando il linguaggio JavaScript in combinazione con la libreria nativa React. Questo permette la creazione di applicazioni che utilizzano componenti di interfaccia grafica simili a quelli utilizzati dai processi di sviluppo nativi. Il punto di forza di React Native è la possibilità di scrivere il codice in JavaScript e di compilarlo in un progetto nativo, raggiungendo performance molto vicine a quelle raggiunte dalle applicazioni scritte direttamente in linguaggio nativo. Oltre ai componenti JavaScript che il framework offre, è possibile creare nuovi componenti e funzionalità utilizzando il codice nativo della piattaforma sulla quale si sta sviluppando e integrare quest’ultimo nella parte JavaScript del Framework. Questo approccio apre molte possibilità agli sviluppatori, anche se in alcuni casi presenta criticità date dalla natura mono-thread di JavaScript. Se in applicazioni tradizionali questa limitazione può risultare trascurabile, in contesti in cui è indispensabile avere alte prestazioni in tempo reale, React Native rischia di non essere la scelta migliore. Oltre alle buone performance (soprattutto per applicazioni che non richiedono funzionalità real time, come i giochi), i vantaggi dello sviluppo in React Native sono dati proprio dall’uso di Javascript come unico linguaggio alla base dello sviluppo sia su Android che iOS, che permette una ampia condivisione del codice. La rapidissima diffusione di React Native ha permesso inoltre il proliferare di letteratura e documentazione che semplifica e arricchisce il lavoro degli sviluppatori. Il Framework è stato creato da Facebook inc che ne gestisce processi di sviluppo e di implementazione secondo le sue policy, ma è rilasciato gratuitamente come open source. In Italia la popolarità di React Native è ancora limitata e non si trovano ancora molti sviluppatori, ma è sicuramente in crescita e destinata ad aumentare.
b) Flutter, il framework di Google: vantaggi e benefici
Flutter è un ambiente di sviluppo basato su Dart, un nuovo linguaggio di programmazione sviluppato da Google. Il linguaggio sfruttato da Flutter, Dart, può essere compilato in maniera nativa sulle piattaforme Android e iOS. Questa caratteristica permette agli sviluppatori che scelgono Flutter di creare applicazioni dalle performance molto simili a quelle scritte direttamente in nativo. Flutter mette a disposizione una serie di widget predefiniti che possono essere utilizzati per creare interfacce che mantengono il look nativo. Il fatto che Flutter sia promosso da Google consiste in un vantaggio grazie all’enorme supporto che Google dà agli sviluppatori che scelgono Flutter (anche per evidenti ragioni di marketing); inoltre la community di developer orbitante attorno a Flutter risulta essere già ricca e colma di letteratura di supporto. Una criticità è data proprio dal linguaggio di programmazione di riferimento, Dart, oggi ancora poco diffuso e poco conosciuto dagli sviluppatori. Flutter è, inoltre, un progetto ancora relativamente recente nel panorama dello sviluppo cross platform, questo lo rende non sempre adatto come scelta per applicazioni che richiedano molte integrazioni con sistemi di terze parti, componenti native o funzionalità complesse. In Synesthesia abbiamo iniziato a usare Flutter per alcuni progetti con una buona soddisfazione, specialmente per applicazioni non troppo complesse e per la creazione rapida di prototipi.
c) Xamarin, il framework di Microsoft
Si tratta di un IDE (Integrated Development Environment) e un framework promosso (e di proprietà) di Microsoft. Xamarin è utilizzato per lo sviluppo di applicazioni multi-piattaforma, utilizzando il linguaggio c# e poi compilate in codice nativo. Il processo di compilazione e traduzione fa si che il prodotto finale risulti a tutti gli effetti una applicazione nativa.
Nel tipico progetto Xamarin vi sono 3 principali parti dell’applicazione che vengono sviluppate:
- la business logic, sviluppata in stile .NET e riutilizzata al 100%
- l’interfaccia iOS, sviluppata con l’SDK specifico per Apple
- l’interfaccia Android, sviluppata con l’SDK specifico per Google.
La necessità di sviluppare separatamente le interfacce grafiche nasce dall’approccio indicato dallo stesso Xamarin per affrontare la programmazione multipiattaforma: le librerie grafiche sono montate direttamente al di sopra delle loro controparti native, funzionando a tutti gli effetti come semplici connettori. Questa decisione progettuale costringe gli sviluppatori a scrivere parti di codice ad-hoc per le singole piattaforme. Al fine di ovviare a questo limite, da qualche anno Xamarin ha messo a disposizione degli sviluppatori una libreria per la creazione di interfacce multi-piattaforma, Xamarin.Forms. La maggiore rapidità di sviluppo permessa da questo approccio si paga però con un contrappasso: una minore flessibilità dei componenti, aggravata dalla scarsità della documentazione di supporto.
3. La scelta della tecnologia e del team di sviluppo
In conclusione, la scelta della tecnologia spesso dipende da fattori molto specifici del prodotto che si intende realizzare. In Synesthesia abbiamo maturato una lunga esperienza in questi anni, e sappiamo guidare il cliente verso la scelta migliore, motivandola e condividendone i vantaggi che ne derivano.
Indipendentemente da quale sarà la scelta tecnologica, è altrettanto importante la composizione del team per lo sviluppo delle app mobile. Alcune organizzazioni optano per la costruzione di team a loro volta “multipiattaforma”, cioè task force di sviluppo che includano developer esperti di Framework che lavorano in sinergia con esperti dei singoli sistemi operativi.
La digital factory di Synesthesia, per esempio, gestisce sia progetti nativi sia di app multi-piattaforma, in quest’ultimo caso con un team che lavora in stretta sinergia con l’area nativa (iOS e Android), creando una squadra di esperti dedicata a rendere il prodotto digitale performante su ogni dispositivo e/o sistema operativo.
Sapete già come sviluppare il vostro prossimo progetto mobile? Parliamone assieme.
Se hai domande o feedback, scrivici. Saremo contenti di leggere le tue richieste o le tue opinioni.
Synesthesia entra a far parte di ACT – The App Association, rappresentando il mercato italiano all’interno della rete di software house che interloquiscono con le istituzioni europee e i governi nazionali circa la regolamentazione del mercato digitale e delle nuove tecnologie.
La vocazione internazionale di Synesthesia è sempre andata di pari passo con la volontà di portare valore tecnologico e umano all’interno del proprio territorio, attraverso le proprie attività e iniziative.
In occasione della discussione sulla nuova normativa europea su P2B – Platform to business Regulation, ci siamo resi conto che non vi erano associazioni o reti di aziende capaci di rappresentare le esigenze, i bisogni degli attori che ogni giorno lavorano per sviluppare prodotti e servizi innovativi, sporcandosi le mani con la tecnologia.
Abbiamo così aderito all’Associazione per la tecnologia competitiva, ACT – The App Association, partecipando alla raccolta feedback tecnici sulla regolamentazione delle Piattaforme in relazione agli utilizzatori business.
Attraverso gli incontri organizzati da ACT, siamo riusciti a comunicare alcune importanti informazioni agli stakeholder istituzionali di primo piano, raccontando quali potrebbero essere le criticità e i rischi causati dal regolare un mercato che già oggi impiega diverse migliaia di persone, e su cui sono state consolidate competenze di alto profilo ed efficaci metodi produttivi, senza tenere conto dell’intrinseco funzionamento delle piattaforme web e dei casi di utilizzo da parte degli business users.
Che cos’è ACT – The App Association
La sigla ACT, sta a significare Association for Competitive Technology.
L’Associazione per la Tecnologia Competitiva, nota come ACT | L’App Association è un’associazione di categoria che rappresenta oltre 5.000 sviluppatori di software e società tecnologiche di piccole e medie dimensioni negli Stati Uniti e in Europa.
ACT – The App Association fu fondata negli USA nell’anno 1998. A stimolare l’istituzione di un’associazione capace di rappresentare gli sviluppatori di software indipendenti fu il caso giudiziario United States Versus Microsoft Corporation, di cui la sentenza è stata pronunciata nel 2001. Microsoft Corporation veniva accusata di operare pratiche sleali, in grado di danneggiare fortemente la concorrenza, esercitando di fatto un ruolo di monopolio.L’organizzazione è portavoce in sedi istituzionali dei problemi e criticità di sistema che riguardano il mondo dello sviluppo software.
L’Associazione lavora per promuovere i seguenti principi:
- Sostenere un ecosistema competitivo nel mercato mobile al fine di offrire agli sviluppatori di app le migliori opportunità;
- Sostenere e promuovere i diritti di proprietà intellettuale;
- Limitare il coinvolgimento dei governi circa lo sviluppo di tecnologie;
- Vigilare sulla neutralità effettiva dell’infrastruttura internet globale, mantenendo un equilibrio tra interessi privati e governativi.
L’Associazione oggi conta migliaia di membri tra sviluppatori e software house indipendenti da tutto il mondo, mantenendo un principale focus su USA e UE.
In America, fanno parte di ACT | The App Association importanti aziende di sviluppo come BadVR, Dogtown Media, Airstrip, SpeakEasy e molte altre.
I membri europei di ACT
ACT | The App Association da qualche anno ha iniziato a muovere dei passi importanti nell’ambito della rappresentanza istituzionale in Europa.
In meno di due anni, l’Associazione ha collezionato membri in vari stati dell’Unione Europea, costruendo una solida e ricca rete di software house in grado di offrire spunti tecnici ed esperienze dirette agli stakeholder istituzionali, al fine di coinvolgere attivamente, con gli attori di un’eventuale regolamentazione del mondo del software.
Oltre Synesthesia, unico partner italiano, fra i membri europei di ACT troviamo Wyres (Grenoble, France), Brightec (Brighton, UK), Egylis (Paris, France), LW (Bruxelles, Belgio), Innovify (Londra, UK), u2u Consult (Bruxelles, Belgio), Accedia (Sofia, Bulgaria) e Andaman (Boncelles, Belgium).
In Europa l’Associazione per la Tecnologia Competitiva sta interloquendo con le istituzioni europee e con i governi nazionali circa due tematiche fondamentali per il mondo dell’innovazione: la regolamentazione delle Piattaforme Online rispetto alle modalità di utilizzo dei Business Users; la regolamentazione di Standards e Brevetti.
Krzysztof Zabłocki, capo degli sviluppatori dell’app del New York Times, Tim Condon, ingegnere della Bbc e Antoine Van Der Lee, creatore di WeTransfer, sono solo alcuni dei grandi nomi che lo scorso 9 novembre hanno partecipato a Swift Heroes, la conferenza organizzata da Synesthesia che ha riunito a Torino i migliori developers iOS provenienti da tutto il mondo.
Sono stati 350 i partecipanti, di cui la metà stranieri, età media sotto i 30 anni, accomunati dalla passione per un settore, quello dello sviluppo delle app, che sta crescendo in modo vertiginoso. Ad oggi si contano oltre 4 milioni di app sugli Store (Google Play e App Store) e, secondo le stime del Parlamento Europeo nel 2021 il mercato delle app raccoglierà ricavi per oltre 6.300 miliardi di dollari.
Un trend che spalanca le porte del mondo del lavoro agli sviluppatori, figure professionali sempre più richieste dalle aziende.
<<Il Politecnico e l’Università ne sfornano tanti, ma sono ancora troppo pochi>> afferma Francesco Ronchi, CEO di Synesthesia <<Molti sono autodidatti. Le aziende se li contendono ed eventi come Swift Heroes sono utili proprio a far incontrare domanda e offerta.>>
Swift Heroes chiude il cerchio dei grandi eventi internazionali dedicati al mondo dello sviluppo e iniziati con Droidcon, l’evento dedicato al sistema operativo Android che ogni anno riunisce in 22 città del mondo 25.000 sviluppatori e che quest’anno ha ospitato a Torino 900 partecipanti e oltre 1500 presenze nei due giorni di conferenza.
Swift Heroes e Droidcon sono entrambi organizzati da Synesthesia, azienda specializzata nell’ideazione, progettazione, creazione e distribuzione di soluzioni Mobile e Web che ha trovato nella capacità organizzativa di eventi “nati dagli sviluppatori, pensati per gli sviluppatori” un ulteriore riconoscimento della propria competenza e del proprio posizionamento. Non a caso il 13 novembre Synesthesia è stata inserita dal Sole 24 Ore in “Leader della crescita 2019”, la classifica delle delle 350 aziende italiane che hanno ottenuto la maggiore crescita di fatturato tra il 2014 e il 2017.
Un riconoscimento prestigioso che si aggiunge al grande traguardo raggiunto ad aprile 2018 quando Synesthesia è stata inserita dal Financial Times nella FT1000, la classifica delle aziende europee con il più alto tasso di crescita dal 2013 al 2016.
<<È un grande traguardo>> afferma Francesco Ronchi, <<una conferma del fatto che abbiamo gestito bene l’azienda dal punto di vista finanziario e, cosa di cui vado più fiero, che Synesthesia è stata in grado di evolversi e adattarsi al mercato. Swift Heroes ne è una conferma. Sono ormai 5 anni che organizziamo Droidcon ma ci siamo resi conto che c’era la necessità di dare spazio anche al mondo iOS con un evento che rappresentasse non solo un’occasione di aggiornamento sulle ultime novità ma soprattutto un momento di scambio e di condivisione di idee. A evento concluso, basandoci sui feedback ricevuti, credo di poter confermare che l’obiettivo sia stato raggiunto ed è per questo che guardiamo con entusiasmo al futuro pensando a Swift Heroes 2019.>>
Ad inizio di settembre 2014 Apple ha pubblicato un una nuova pagina dedicata ai motivi principali per cui le App per iOS vengono rifiutate per la pubblicazione sull’App Store.
Prima di sviluppare la vostra applicazione, è importante acquisire familiarità con i criteri tecnici, di contenuti e di design che usiamo per rivedere tutte le applicazioni. Abbiamo evidenziato alcuni dei problemi più comuni di respinta per aiutarvi a preparare meglio le applicazioni prima di inviarle per la revisione.
La fase di pubblicazione di una App su iOS è sempre stata fonte di “ansia” per molti sviluppatori e publisher, dato che si tratta di una “black box” a cui affidarsi senza avere molte possibilità di intervento. Se è pur vero che è possibile un certo livello di dialogo con i (re)censori Apple, non sempre le valutazioni sono apparse coerenti e costanti.
Con la pubblicazione di questi dati, Apple fa un passo verso una maggiore trasparenza, fornendo contemporaneamente delle indicazioni preziose, specialmente per chi muove i primi passi in questo mondo.
La nostra esperienza in Synesthesia ci insegna che le applicazioni per avere successo devono sicuramente essere tecnicamente impeccabili, ma anche fornire un servizio, dei contenuti informativi o intrattenere.
I criteri tecnici sono effetti importanti per Apple nelle valutazioni: molte applicazioni vengono rifiutate perchè contengono bugs, dimenticanze, link rotti o semplicemente una interfaccia utente fuori standard o non funzionale.
In alcuni casi vengono invece rifiutate app che non forniscono un contenuto sufficientemente interessante, di interesse generale, o con un valore aggiunto tale da giustificare la creazione di una app (che per sua natura ha caratteristiche di interattività).
Una fetta molto importante (14%, di fatto la più ampia) dei rifiuti deriva dalla mancanza di informazioni: per questo motivo è importante documentare l’applicazione in modo esaustivo prima di sottometterla per l’approvazione, evitando in questo modo lunghe reiterazioni di richieste di approvazione.
Per maggiori informazioni ed approfondimenti, vi invitiamo a visitare la pagina ufficiale sul sito Apple.
Se hai domande o feedback, scrivici. Saremo contenti di leggere le tue richieste o le tue opinioni.