Come cominciare a sviluppare su Android

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?
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?
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 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?
Avete qualche ultimo consiglio per chi sta iniziando a sviluppare su Android?
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.
Design

