Understanding Android: Scrivere la prima applicazione [Parte 3]

Diego Stamigni
Diego Stamigni
Understanding Android: Scrivere la prima applicazione [Parte 3]

Bene cari lettori,

eccoci alla 3° parte dell'Understanding Android; innanzitutto desidererei scusarmi con tutti voi per portare ritardo nei miei articoli ma è periodo di Esami all'Università e non ho molto tempo libero, purtroppo.

Oggi vedremo come testare le applicazioni sul nostro smartphone, cioè senza utilizzare alcun ADT (emulatore), modificare il layout del nostro HelloWorld aggiustando diversi parametri e trasformarlo in un piccolo addizionatore di due numeri presi da input, un pulsante per l'inserimento, un Label per il risultato e come aggiungere un'icona alla nostra applicazione.

Cominciamo con il settare Eclipse per caricare le applicazioni sul nostro Smartphone: apriamo Eclipse -> Apriamo il nostro progetto HelloWorld creato precendetemente -> Run -> Run Configurations -> Clickiamo sul tab Target e settiamo la scelta del Devices su Manual. In questo modo ogni volta che avvierete il vostro progetto, vi verrà chiesto cosa utilizzare, naturalmente se volete utilizzate il vostro devices, dovete averlo collegato con USB Debug attivo e Applicazioni di Origini Sconosciute abilitato, solite cose insomma.

Fatto ciò, ringrazio tutti i lettori che mi rilasciano splenditi commenti e si congratulano con la semplicità con la quale riesco a presentare argomenti anche molto complessi; ora vi stupirò: stiamo per creare una piccola calcolatrice (fa solo somme, il resto lo implementerete da soli come compito a casa, e, credetemi, ci riuscirete).

Apriamo il file dedito al layout, quindi res -> layout -> main.xml; ora domandiamoci: come fare a rendere il tutto più carino, facile, ultra configurabile e User Friendly ? Facile, con DroidDraw :)

Qui possiamo disegnare la nostra interfaccia: alla fine vi verrà rilasciato tutto il codice XML da poter sostituire nel main.xml (tral'altro, se l'anteprima del sito non vi piace c'è l'applicazione AnDroidDraw che vi permette di avere l'anteprima del layout direttamente sul vostro cellulare così da correggere le varie altezze e larghezze; altra cosa interessante è il poter scaricare DroidDraw sul proprio computer e fare tutto direttamente da lì, senza andare nel web).

Occorrente:

  • 4 Label (o TextView, sono la stessa cosa)
  • 2 EditText
  • 1 Button

Aggiungeteli doppioclickando sugli oggetti in questione e modificate le proprietà settando FontSize(grandezza testo), Text (testo che volete) e id (mettete il nome senza spazi per ogni oggetto in modo che lo identifichi univocamente, del tipo "title", "firstnumber", "secondnumber" e via dicendo).

L'obiettivo è di sistemare tutto fino ad ottenere qualcosa del genere:

Carina ? la Label "Total" dovrà essere sostituita dalla somma di Primo Numbero + Secondo Numero.

Vi pasto il mio main.xml ottimizzato per Nexus One, cioè schermo 3,7":

Una volta finito il layout, clickate su Generate e verrà generato il codice XML da poter copiare e sovrascrivere interamente al vostro main.xml. Se invece vorreste provarlo prima sul vostro Devices, scaricate dal sito AnDroidDraw e il programma DroidDraw sul vostro PC; installate entrambi, date questo comando in un terminale sul vostro PC nella cartella dov'è locato adb:

adb forward tcp:6100 tcp:7100

Ora:

  1. aprite DroidDraw sul vostro PC, incollate il codice XML che avete generato, da quello nel Web, nello spazio adeguato in basso a destra
  2. clickate in alto a sinistra su Load; verrà dunque caricato
  3. aprite AnDroidDraw sul vostro cellulare; clickate in DroidDraw nel PC su Project -> Send GUI to device.
  4. potete fare ora tutte le sistemazioni atte a migliorare il layout per il vostro screen.

Fatto questo, come già accennato, dovete sostituire il codice generato dal programma al main.xml, e salvare.

Pausa relax -> cioccolata/thé/dormita/[altro]

Barzelletta: Un carabiniere ad un altro: - Cos'è più lontano...la Luna o Londra? - Londra ovviamente, mica la vedi da qui!

Dopo la pausa Relax, dobbiamo riconcentrarci per gli ultimi sforzi: non dobbiamo fare nient'altro che implementare la funzione di somma e abilitare il Button in modo che ci restituisca la somma al posto del testo "Total". Per fare questo dobbiamo mettere mano ai codici, anzi, "AL" codice: apriamo il file in src -> com.firstapp.helloworld -> HelloAndroidWorld.java; quello che farò è scrivere un po di codice per poter utilizzare i controller, voi potete copiarlo e sostituire interamente il contenuto del file.

Prima di fare ciò domandiamoci: cosa dobbiamo fare ?

  • Leggere le string dalle due EditText e convertirle in numeri Interi
  • Sommarle
  • Sostituire l'ultima Label "Total" con il risultato

Ecco il codice:

Provate a leggerlo, a parte quello che già c'era, non abbiamo fatto niente di ultra difficile; certo, per chi non conosce Java è un po difficile la comprensione, e soprattutto per chi non è a conoscenza di linguaggi Object Oriented, ma a senso di logica e con intuito si può capire che la funzione calculate() ci sostituisce il contenuto della TextView (o label, come volete chiamarla voi) con il risultato tot; la funzione initControls() prende i valori inseriti e inizializza il pulsante "clickme" al lanciare, appunto, calculate().

Ora non ci resta che un'ultima cosa: l'icona. Come fare ? Semplice! Apriamo la cartella del progetto (scritta in alto, nella barra estrema di Eclipse), andiamo nella cartella atte alla grafica, res; ne troviamo diverse, ma quale usare? Tutte le drawable! drawable-hdpi, drawable-ldpi, drawable-mdpi sono le cartelle che contengono le 3 risoluzioni in pixel per le icone: 72x72, 36x36 e 48x48; queste cartelle possono anche essere utilizzate per inserire altre immagini e soprattutto nessuno ci vieta di creare/usare un'altra cartella nel progetto a nostro piacimento, per fare altro, ma a noi per adesso sta bene così.

Ho creato delle immagini attraverso la concessione del logo di AndroidWorld.it nelle dimensioni corrette, potete scaricare l'archivio da qui e procedere alla sostituzione nelle rispettive cartelle.

Fatto ciò, facciamo le ultime prove e se tutto è apposto, esportiamo il nostro primo file apk installabile: sempre in Eclipse, clickamo con il tasto destro del mouse in Package Explorer sulla sinistra, su HelloWorld -> Android Tools -> Export Unsigned Application Package in questo modo:

Scegliamo dove salvare l'APK e fine, abbiamo terminato; il vostro pacchetto installabile sarà proprio dove avete scelto. Una nota da fare: abbiamo esportato in modo Unsigned, per cui ricordate di avere abilitato l'installazione di Applicazioni non firmate, sconosciute, e proprio queste, non possono essere pubbliate nel market.

Per signarle, dobbiamo creare una key adatta, perciò rifacciamo la stessa di prima ma questa volta dobbiamo clickare su Export Signed Application Package; nella finestra che si apre, clickiamo su Create new keystore -> scegliamo una locazione in cui salvare la key che potrete usare per firmare le altre applicazioni e scegliamo una password -> Next; ora dobbiamo completare il form, ecco un'esempio:

Clickiamo su Next e ci verrà chiesto dove salvare il nuovo APK, ma questa volta sarà firmato; potrà essere facilmente installato sul nostro device e pubblicato nel Market di google:

adb -r install HelloWorldSigned.apk

Ed ecco la nostra applicazione direttamente sul mio Nexus One:

Tutto chiaro ? Ci vediamo nella prossima puntata per conoscere meglio il nostro Android con.. l'Understanding Android!!!