Diventare sviluppatore di app mobile

Lo sviluppo di app per dispositivi mobili può costituire un’interessante opportunità sia per gli aspiranti programmatori che per i professionisti e le aziende produttrici di software. Tuttavia, in un mercato così vasto – e già saturo in molte nicchie – è molto facile perdersi prima ancora di iniziare e i casi di app che si sono rivelate un flop oppure che hanno scarsissima visibilità negli store ufficiali, sono innumerevoli.

In questo articolo voglio mettere a tua disposizione la mia esperienza come sviluppatore Android, mostrandoti quale sarebbe il percorso ideale che io stesso seguirei se dovessi iniziare da zero a sviluppare app per cellulari e tablet. Che tu sia un principiante che vuole imparare a programmare partendo proprio dallo sviluppo di app o che tu sia già uno sviluppatore che guarda con curiosità a questo mercato ma non sa da dove partire, troverai molto utili i consigli che sto per darti. Ma anche se hai già sviluppato qualche applicazione per iOS o Android, rimani qui a leggere; potresti trovare anche tu degli spunti utili per proseguire nella tua carriera di app developer.

Se sei un principiante assoluto e non sai nulla di programmazione, prova a partire da qui

I sistemi operativi mobile e lo sviluppo crossplattform

È fatto ben noto che i sistemi operativi che si contendono il mercato attuale e hanno soppiantato la concorrenza (vedi il caso di Windows Phone) siano iOS e Android. Molto probabilmente stai leggendo questo articolo da uno smartphone o un tablet equipaggiato con uno di questi due sistemi, a cui magari se molto affezionati e molto probabilmente conosci molto bene per quanto riguarda la user experience.

Se stai pensando quindi che vorresti sviluppare app solo per uno tra iOS e Android, dedicandoti a conoscere tutto ciò che riguarda le api a disposizione dello sviluppatore, i permessi utente, le ultime feature dell’interfaccia grafica e dei servizi e tutti i dettagli di pubblicazione sullo store ufficiale, allora forse dovresti valutare di impegnarti a esplorare anche il sistema concorrente. Che tu voglia sviluppare un tuo videogioco o un’app divertente, o che tu ti rivolga agli utenti del tuo business in particolare, troverai sempre chi ti chiederà se la tua app è disponibile per entrambi i sistemi. Ciò a maggior ragione se svilupperai app mobile su commissione; difficilmente troverai qualcuno che non voglia vedere il proprio prodotto su entrambi gli store ufficiali. E anche se può succedere, l’idea è sempre quella: prima sviluppare per Android (o iOS) e poi, una volta avuti i riscontri necessari, sviluppare anche per l’altro sistema operativo. Ti ritroverai dunque a dover riscrivere il codice sviluppato in Java o Kotlin, in Objective-C o Swift. O peggio, dato che dovrai scalare la curva di apprendimento di nuovi linguaggi e api, perderai la commessa e dovrai affidare il lavoro a terzi.

Ti serve quindi una tecnologia che ti permetta di scrivere il codice una volta sola e di compilare la tua app per tutti i sistemi, obbedendo al motto “write once, run anywhere”.

La programmazione web

Ad oggi, parecchi tool permettono creare un’app Android o iOS scrivendo solo codice html, css e javascript, incapsulando le funzionalità native del sistema operativo target in appositi plugin, che gestiscono poi a livello più basso i dettagli specifici di ogni piattaforma. Nella maggior parte dei casi, il risultato sarà un’app installabile su entrambi i sistemi in maniera trasparente. Tuttavia potrebbe succedere che sia richiesto qualche aggiustamento specifico per uno o entrambi i sistemi, ma niente di così traumatico.

Quindi se sei già uno sviluppatore web front end, complimenti! Sei già a buon punto e potrai avere nuove opportunità di carriera e di business. Devi solo imparare a compilare la tua app con uno degli strumenti oggi a disposizione, come Capacitor o Cordova. Se sei già uno sviluppatore front end, potresti beneficiare di React Native se conosci bene React.js. Se invece conosci Vue.js (come me), o Angular o qualunque altro framework front-end, la tua app si incastrerà perfettamente in Capacitor o Cordova. Altrimenti Ionic Framework è integrato con tutti le tecnologie software che ho appena citato.

Per consigli su come diventare sviluppatore web, leggi questo articolo

Ecco ad esempio, lo schema architetturale del funzionamento di Apache Cordova:

Architettura di Apache Cordova

Se invece sei uno sviluppatore back end, molto probabilmente la tua app avrà bisogno di un set di api rest a corredo, quindi, oltre a partire già avvantaggiato da questo punto di vista, non sarai obbligato a scrivere l’interfaccia grafica con un framework Javascript front end che non conosci, ma potrai usare anche semplicemente Vanilla Javascript o il caro vecchio JQuery, oppure seguire pedissequamente i tutorial del tool che hai scelto.

Sviluppare videogiochi mobile

Se il tuo obiettivo è sviluppare un videogioco mobile, hai a disposizione due strade:

  • utilizzare un framework javascript e compilare la tua app con tool come Capacitor o Cordova
  • utilizzare un ide dedicato

Nel primo caso, hai una certa varietà di framework tra cui scegliere, ma io ti consiglio di dare uno sguardo a Phaser.io o a Melonjs. Per quanto riguarda Phaser, basta guardare le sezioni dei tutorial e degli esempi per rendersi conto di tutte le feature a disposizione e della quantità di codice, guide e documentazione a supporto del programmatore. Per quanto riguarda invece Melonjs, è più facile da apprendere e ha anche un boiler plate project e un tilemap editor a corredo. Per cui, fiondati nei tutorial ufficiali per capire se fa al caso tuo.

Per quanto riguarda gli ambienti di sviluppo dedicati alla creazione di videogiochi, ti consiglio di dare uno sguardo a Construct 3 e a GDevelop. Si tratta di due visual builder, di cui il primo a pagamento, l’altro gratuito e open source, grazie ai quali potrai concentrarti sulla grafica e la logica del gioco, scrivendo pochissimo codice e ottimizzando in tal modo, sia il tempo necessario all’apprendimento dell’ide, sia i tempi per lo sviluppo del videogioco stesso. Una volta portato a termine il tuo progetto potrai esportarlo per Android e per iOS (ma anche per il browser e i sistemi operativi desktop).

Altri tool di sviluppo app mobile crossplatform

Ci sono tantissimi altri tool per la compilazione di un’applicazione Android e iOS crossplatform, utili a chi sa già programmare in un altro linguaggio come C++, Java, C# ecc.

Dato però che l’idea fondamentale di questo articolo è che, almeno in base alla mia esperienza, iniziare dallo sviluppo web permette di coprire la quasi totalità dei tipi di progetto di sviluppo mobile, rimando al lettore l’onere della ricerca del tool che più si addice alle proprie competenze e ai propri gusti. Anche perché non è mia abitudine scrivere di qualcosa su cui non ho maturato una personale esperienza (anche a fronte di parecchi errori!) né particolari competenze e abilità, rischiando di fuorviare gli avventori di questo modesto spazio web.

Conclusione

Dato che ho un passato come sviluppatore (solo) Android e mi sono convertito mio malgrado tardi allo sviluppo per più sistemi operativi con i linguaggi e i framework del web, ho deciso di condensare in questa guida quelle che secondo me sono le indicazioni da seguire per iniziare a programmare un’app mobile, specie se si è dei principianti della programmazione in generale.

Spero che questo articolo ti sia stato utile; se hai dubbi, domande o richieste particolari scrivimi qui