Come cominciare a sviluppare su Android
Scritto da katrina bertacci il
Un'analisi di Mobile Statistics afferma che sono stati venduti circa 156 milioni di dispositivi Android già nel primo quadrimestre del 2013, ad oggi le app disponibili su Google Play Store sono più di 1,3 milioni (fonte: Statista )
Mesi fa abbiamo parlato dello sviluppo su iOS e abbiamo pensato che vi potesse interessare scoprire un po' di più anche sul mondo Android. Per questo motivo ho fatto un paio di domande a due dei miei sviluppatori Android preferiti! Signore e Signori, vi presento Sérgio e Guido !
Mesi fa abbiamo parlato dello sviluppo su iOS e abbiamo pensato che vi potesse interessare scoprire un po' di più anche sul mondo Android. Per questo motivo ho fatto un paio di domande a due dei miei sviluppatori Android preferiti! Signore e Signori, vi presento Sérgio e Guido !
1. Come e perché avete iniziato a sviluppare app per Android?
Guido - Un amico mi consigliò di guardare un video tutorial sullo sviluppo su mobile perché sapeva del mio interesse per questi argomenti, ed è così iniziai a creare la mia prima semplice app. È iniziato tutto per gioco ma più imparavo e più scoprivo quanto mi piaceva programmare! Avrò guardato circa 50 tutorial in una sola notte e senza nemmeno rendermene conto, decisi di diventare programmatore.
Sérgio - Per me invece non è andata così, mi è sempre piaciuta l'idea di diventare uno sviluppatore iOS ma poi, crescendo, mi sono interessato sempre di più ai sistemi embed. Avevo sentito che Android era un OS promettente per i sistemi embed, quindi ho iniziato a specializzarmi nella sua programmazione. Quando si presentò l'opportunità di lavorare qui da GoodBarber la colsi al volo ed ora eccomi qua!
Sérgio - Per me invece non è andata così, mi è sempre piaciuta l'idea di diventare uno sviluppatore iOS ma poi, crescendo, mi sono interessato sempre di più ai sistemi embed. Avevo sentito che Android era un OS promettente per i sistemi embed, quindi ho iniziato a specializzarmi nella sua programmazione. Quando si presentò l'opportunità di lavorare qui da GoodBarber la colsi al volo ed ora eccomi qua!
2. Cosa serve a vostro avviso, per diventare uno sviluppatore Android?
Innanzitutto dovete avere una passione per la programmazione, poi chiaramente anche delle conoscenze base. Non è poi così difficile iniziare a sviluppare se avete delle conoscenze di Java, la lingua principale di questo OS.
Poi vi serviranno anche altri strumenti base come Eclipse o Android Studio inside (IDE), vorrei consigliarvi un libro sullo sviluppo secondo me validissimo: Android 4 Application Development, di Reto Meier. È un ottima guida per chi vuole incominciare a sviluppare e anche per chi vuole approfondire le proprie conoscenze in materia.
Poi vi serviranno anche altri strumenti base come Eclipse o Android Studio inside (IDE), vorrei consigliarvi un libro sullo sviluppo secondo me validissimo: Android 4 Application Development, di Reto Meier. È un ottima guida per chi vuole incominciare a sviluppare e anche per chi vuole approfondire le proprie conoscenze in materia.
3. Esistono diversi linguaggi di programmazione, hanno scopi diversi? Per esempio, Android si basa su Java. Ci sono delle differenze tra il linguaggio Java classico e l'Android Java?
Si, ci sono molti linguaggi diversi, Java è quello prinicipale ma per creare il layout dell'app serve l'XML, talvolta su GoodBarber usiamo anche un po' di Javascript e HTML.
SI può dire che lo sviluppo su Android si basa su Java ma molte delle sue librerie che non sono supportate vengono rimpiazzate da alternative migliori (altre librerie simili) oppure non sono necessarie. Per esempio, i programmatori Java usano System.out quando devono stampare dati per debuggare, per Android invece, è consigliabile l'utilizzo Log class.
Anche la macchina virtuale che trasforma i codici in istruzioni comprensibili da una macchina è diverso. Il codice Java compila in Java bytecode mentre Android compila in Davik opcode (oppure in ART da quando esiste Kitkat).
SI può dire che lo sviluppo su Android si basa su Java ma molte delle sue librerie che non sono supportate vengono rimpiazzate da alternative migliori (altre librerie simili) oppure non sono necessarie. Per esempio, i programmatori Java usano System.out quando devono stampare dati per debuggare, per Android invece, è consigliabile l'utilizzo Log class.
Anche la macchina virtuale che trasforma i codici in istruzioni comprensibili da una macchina è diverso. Il codice Java compila in Java bytecode mentre Android compila in Davik opcode (oppure in ART da quando esiste Kitkat).
4. Quali sono le differenze principali tra la programmazione di software per computer e per mobile app?
La differenza principale è che sul mobile le risorse a disposizione sono più limitate, lo schermo è più piccolo, il processore è più debole e c'è meno memoria, questi sono tutti fattori da tenere in considerazione. Il vostro codice deve essere ottimizzato al massimo per avere alti livelli di performance (navigazione fluida e user experience), dovete gestire la memoria con attenzione per evitare possibili crash. Anche se adesso gli ultimi modelli di smartphone sono potenti quasi quanto i computer, non bisogna dimenticare che ci sono ancora modelli più vecchi in circolazione. È nostro compito offrire la miglior user experience su tutti i dispositivi.
Avete qualche ultimo consiglio per chi sta iniziando a sviluppare su Android?
Come abbiamo detto prima, bisogna avere una passione per la programmazione e delle conoscenze base di java, è importante anche essere un po' "geek" ;P
Cominciando a programmare, potreste essere tentati di utilizzare l'opzione schematica, con il quale potete definire il layout dell'app e il codice verrà generato in automatico. Non vi consiglio questa opzione. Sarebbe meglio che iniziaste da subito a scrivere in XML perché dopo riuscirete a creare interfacce più complesse con maggiore facilità.
Come abbiamo detto all'inizio, ci sono milioni di app su Google Play, quindi la probabilità che esista un'app sullo stesso argomento della vostra è alta. Quello che farà la differenza sarà dunque il design e la user experience. Mettete il design sempre al primo posto quando programmate, se volete creare una app di qualità che si distingua dalle altre.
Cominciando a programmare, potreste essere tentati di utilizzare l'opzione schematica, con il quale potete definire il layout dell'app e il codice verrà generato in automatico. Non vi consiglio questa opzione. Sarebbe meglio che iniziaste da subito a scrivere in XML perché dopo riuscirete a creare interfacce più complesse con maggiore facilità.
Come abbiamo detto all'inizio, ci sono milioni di app su Google Play, quindi la probabilità che esista un'app sullo stesso argomento della vostra è alta. Quello che farà la differenza sarà dunque il design e la user experience. Mettete il design sempre al primo posto quando programmate, se volete creare una app di qualità che si distingua dalle altre.