Come creare un'app per Android e iPhone (iOS)
Oggi parliamo di sviluppo mobile, lo sviluppo di applicazioni per smartphone. La prima cosa che devi sapere è che all’interno di questa dicitura esistono una marea di varianti diverse (app native, ibride, linguaggi, tecnologie, ecc), in questo articolo cercherò di riassumere tutti i metodi e di darti anche dei consigli in base alla strada che vuoi percorrere per sviluppare app a livello professionale.
Iniziamo proprio dalle basi. La prima cosa che devi sapere e che magari non tutti sanno è che quando parliamo di "sviluppo di applicazioni mobile" significa scrivere effettivamente il codice.
Il codice, quindi il linguaggio di programmazione che bisogna utilizzare, deriva in maniera praticamente diretta dalla piattaforma o comunque dal sistema operativo per cui vuoi rilasciare l’applicazione. Questo vuol dire che la tecnologia o il linguaggio che vai ad utilizzare è direttamente influenzato dal sistema operativo. Ad esempio iOS e Android hanno dei loro linguaggi di programmazione chiamati “nativi”. Vuol dire che quel sistema operativo è in grado di capire quel linguaggio lì, quindi le applicazioni vanno scritte in quei singoli linguaggi.
Non puoi utilizzare il linguaggio che preferisci. Ad esempio se vuoi sviluppare un’applicazione per Android la puoi scrivere in Java oppure in Kotlin. Ora la vogliamo mettere anche su iOS. Peccato che iOS non capisce il codice Java quindi non possiamo prendere lo stesso codice e portarlo qui dentro. Quindi che cosa si fa? Di solito si deve riscrivere l’applicazione in quelli che sono in linguaggi che iOS è in grado di capire. Essenzialmente i linguaggi sono due:
- Swift, che è un linguaggio appositamente creato per creare applicazioni su iOS
- Objective-C, un altro linguaggio che veniva utilizzato in passato e oggi è utilizzato soltanto in rarissimi casi.
Se proprio ti devi ricordare un linguaggio ovviamente ricordati Swift, che il linguaggio che viene utilizzato principalmente per lo sviluppo di applicazione.
Quindi da una parte abbiamo Swift su iOS e dall’altra parte abbiamo Java su Android. Quindi come puoi vedere sono due linguaggi di programmazione diversi. Questo vuol dire che se vuoi sviluppare un singolo applicazione per entrambe le piattaforme la devi scrivere in due linguaggi diversi. Questo ovviamente si traduce anche nell’ambito lavorativo, perché stiamo parlando di esattamente due professionisti diversi. Ci sarà il professionista specializzato solamente su Android e uno specializzato solamente su iOS.
Lo sviluppo di applicazioni “native” ovviamente ha dei pro ma anche dei contro. Tendenzialmente i contro per le aziende li traduciamo in termini di denaro, in termini di costi e di tempo. Questo perché tendenzialmente bisogna avere o due figure diverse che mantengono quindi due diversi codici.
Per fare fronte a ciò si è creata una nuova strada ovvero una nuova metodologia di sviluppo di applicazioni chiamata sviluppo ibrido. Lo sviluppo ibrido è molto particolare, perché essenzialmente ti consente di scrivere il codice della tua applicazione in un linguaggio non nativo. Il linguaggio ibrido o meglio lo sviluppo ibrido in qualche modo riesce a farti scrivere un singolo codice. Quindi scrivi la tua applicazione con un solo linguaggio di programmazione e poi quella applicazione può essere capita da tutti i sistemi operativi, che sia Android o iOs.
Ma come è possibile? Innanzitutto per fare lo sviluppo ibrido esistono tantissime tecnologie diverse, cerchiamo di citarne giusto alcune. La principale si chiama Cordova. Questa tecnologia qua consente di andare a scrivere delle applicazioni con dei linguaggi molto immediati. Questi linguaggi sono 3 e non sono neanche dei linguaggi di programmazione ma linguaggi di programmazione. Ad esempio abbiamo:
- Linguaggio HTML. Con questo linguaggio devi semplicemente dire le cose che ci sono nella pagina.
- Linguaggio C. Un linguaggio non di programmazione che viene utilizzato all’interno dei siti internet per renderli più belli graficamente.
- Linguaggio JavaScript di cui abbiamo ampiamente parlato.
Utilizzando questi linguaggi andiamo a creare una applicazione come fosse “nativa”. L’utente finale tendenzialmente non si accorge di niente.
Lo strumento che ti ho appena citato è appunto Cordova. Questo strumento consente quindi ai tuoi codici JavaScript di interagire con quello che è il sistema operativo del device. Tuttavia questi strumenti si sono evoluti con il tempo e ovviamente in ambito mobile anche grandissime aziende hanno dato il loro contributo. Ad esempio Google ha creato uno strumento che si chiama Flutter, che ti consente praticamente di fare esattamente la stessa cosa in modo migliore, quindi con delle prestazioni più elevate andando a utilizzare un linguaggio di programmazione. Che cosa va a fare questo strumento? Nello specifico essenzialmente si occuperà di convertire e creare una sorta di codice nativo per la piattaforma di riferimento.
Quindi riassumendo abbiamo:
- Cordova è molto semplice da utilizzare. Infatti ti basta avere delle competenze di front-end per poter utilizzarlo, non è nulla di complicato.
- Flutter di Google è molto più avanzato, molto più specifico.
In realtà ne esistono tantissimi altri, come ad esempio NativeScript o jQuery.
Innanzitutto cerca di capire nella tua zona in generale, ma anche tu effettivamente che cosa vuoi fare. Qual è il tuo obiettivo? Che cosa vorresti diventare? In che ruolo vorresti essere assunto? Vorresti realizzare soltanto applicazioni per iOS? Soltanto per dispositivi Apple?
Un’altra cosa molto importante che ti voglio dire è che se non hai mai fatto niente di programmazione, non sai programmare stai molto attento. Non partire direttamente con Swift, non partire direttamente con Kotlin o con Java. Ti assicuro che non basta saper scrivere un po’ di codici per farsi assumere. Quello che devi aver valutato anche nei colloqui di lavoro è un metodo di ragionamento. Infatti devi cercare di acquisire un metodo di ragionamento da programmatore. Di fatto conoscere un linguaggio va bene, ma in ogni caso non ti rende un programmatore.
Quindi riassumendo:
- Acquisisci un determinato metodo di ragionamento
- Studia quelli che sono i concetti teorici della programmazione oggetti che viene utilizzata in ogni caso in entrambi i metodi di sviluppo.
- Scegli uno strumento solo di sviluppo, a meno che tu non voglia scegliere lo sviluppo ibrido. Non cercare di specializzarsi un po’ in tutti, è meglio essere focalizzati solo su una di queste aree di sviluppo.
Nel nostro corso Java cerchiamo di impegnarci veramente tanto nell’insegnare ai nostri studenti proprio questi tre passi. Considera che abbiamo realizzato un corso il cui obiettivo è quello di far assumere lo studente il più velocemente possibile nel mercato del lavoro per arrivare a questo obiettivo. Cosa siamo andati a fare? Siamo andati ad insegnare proprio il linguaggio di programmazione Java, questo perché semplicemente Java è il linguaggio più richiesto nel mercato del lavoro. Una volta approfondito questi tre passi, aiutiamo lo studente nella stesura del curriculum e nell’affrontare il colloquio. Di base comunque è già praticamente predisposto per essere assunto.
Tra l’altro queste tre fasi ti vengono richieste in fase di colloquio, ti faranno domande per capire se tu sai pensare come un programmatore e negli annunci di lavoro troverai sempre che ti viene richiesto se tu hai delle competenze nella programmazione ad oggetti.
Per questo io ti do questo consiglio, poi ovviamente puoi fare come preferisci. Abbiamo notato che seguendo i nostri corsi i nostri studenti hanno ottenuto enormi risultati.