23810 Letture

Programmare Android, sviluppare un'applicazione che risponde all'input dell'utente

C'è sempre maggiore richiesta di sviluppatori Android. A sostenerlo è anche Freelancer.com, sito web che offre un quadro dettagliato sulle professioni emergenti nel mondo dell'IT.
I professionisti in possesso delle competenze necessarie per programmare su Android sono sempre più ricercati. Nel corso del 2013 Android ha superato Apple iOS per ciò che riguarda la richiesta di sviluppatori ed il trend sembra confermarsi in aumento anche quest'anno.

Lo strumento migliore per iniziare a sviluppare applicazioni professionali per Android è senza dubbio il pacchetto Android SDK, distribuito e costantemente aggiornato da Google.

Per iniziare a programmare applicazioni Android due sono i requisiti software indispensabili:

1) Il pacchetto Java Development Kit (JDK), prelevabile da questa pagina (sito web di Oracle).
Attenzione a non scaricare ed installare il pacchetto JRE: ciò che serve è il Java Development Kit (abbreviato JDK).
Al momento, con le attuali versioni dell'Android SDK, il nostro consiglio è quello di scaricare ed installare sul sistema l'ultima versione del pacchetto JDK 7.0 cliccando sul pulsante DOWNLOAD in corrispondenza della voce JDK, al paragrafo Java SE 7uXX, in questa pagina.


Dopo l'installazione del pacchetto Java JDK

Quando si installa Java è bene tenere presenti alcuni punti fondamentali. In primo luogo, la piattaforma Java deve essere mantenuta sempre aggiornata per evitare che eventuali vulnerabilità possano essere sfruttate, da parte di aggressori, per causare danni. In seconda battuta, se non si fosse interessati ad eseguire le applet Java dal browser web, sarebbe opportuno disattivare questa possibilità.
A tal proposito, suggeriamo di documentarvi facendo riferimento all'articolo Java è sicuro? Come difendersi dalle minacce più recenti.

2) L'Android SDK, il prodotto che consente di realizzare applicazioni per il sistema operativo mobile targato Google contenente il debugger, le librerie, un emulatore, il codice d'esempio e la documentazione. Il pacchetto SDK è scaricabile gratuitamente da questa pagina.

L'Android SDK è un pacchetto che non necessita d'installazione: è sufficiente estrarre il contenuto dell'archivio compresso in una cartella su disco (ad esempio C:\Android SDK) e fare doppio clic sul file SDK Manager.exe.
L'importante è eseguire Android SDK solamente dopo aver completato l'installazione del pacchetto Java JDK; in caso contrario, l'applicazione SDK Manager.exe non si avvierà.

IMPORTANTE - Le nozioni di base per programmare su Android usando l'Android SDK

In questo articolo daremo per scontati i concetti e le procedure già illustrati nei seguenti articoli:
- Programmare Android: creare applicazioni partendo da zero con Android SDK ed Eclipse
- Creare applicazioni Android: anatomia di una app, le attività, creazione di finestre di dialogo

Il primo articolo, che vi invitiamo a rileggere, contiene tutti i suggerimenti per utilizzare l'ambiente di sviluppo Eclipse nonché per configurare ed avviare il dispositivo virtuale Android che servirà per provare le app in fase di sviluppo.


Dopo aver creato da zero un nuovo progetto “CiaoMondo” in Eclipse (fare riferimento all'articolo Programmare Android: creare applicazioni partendo da zero con Android SDK ed Eclipse per le istruzioni), cliccando con il tasto destro del mouse sul nome del progetto (nel nostro caso, CiaoMondo) nella scheda Package explorer quindi scegliendo Run As, Android application, l'app Android di prova, appena creata, dovrebbe essere immediatamente eseguita nel dispositivo virtuale.

Programmare Android, sviluppare un'applicazione che risponde all'input dell'utente

Dopo alcuni secondi di attesa, l'app di test verrà eseguita nel dispositivo virtuale Android creato in precedenza ed esporrà solamente il messaggio "Hello world":

Programmare Android, sviluppare un'applicazione che risponde all'input dell'utente

A questo punto, senza chiudere la finestra dell'emulatore Android, si potrà tornare sulla finestra di lavoro di Eclipse.

Dal Package explorer, cliccando su res\layout quindi facendo doppio clic sul file fragment_ciao_mondo.xml, verrà visualizzata un'anteprima dell'aspetto grafico dell'interfaccia dell'applicazione.

Programmare Android, sviluppare un'applicazione che risponde all'input dell'utente

In Eclipse, infatti, per impostazione predefinita si accede sempre all'editor visuale (Graphical layout). Si tratta di uno strumento che permette di sviluppare app Android utilizzando un editor WYSIWYG (What you see is what you get).


Nel nostro caso, tuttavia, ci serviremo della scheda contenente il codice XML: anziché utilizzare l'editor grafico, insomma, lavoreremo direttamente sul codice.
Per accedere al codice XML, quindi, è necessario cliccare sulla scheda fragment_ciao_mondo.xml, a destra di Graphical layout.

Qui, eliminando il codice XML che inizia con <TextView e finisce con />, si rimuoverà la stringa "Hello world" vista in precedenza nella schermata principale dell'applicazione Android.

Programmare Android, sviluppare un'applicazione che risponde all'input dell'utente

Se si proverà infatti a rieseguire l'app Android nel dispositivo virtuale (tasto destro sul nome del progetto, Run As, Android application), questa volta si otterrà una schermata completamente bianca.

Programmare Android, sviluppare un'applicazione che risponde all'input dell'utente

Proviamo a questo punto ad inserire una casella di testo nell'app Android in fase di sviluppo.

<EditText android:id="@+id/edit_message"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="@string/edit_message" />


Il codice sopra riportato dev'essere inserito all'interno della scheda fragment_ciao_mondo.xml:

Programmare Android, sviluppare un'applicazione che risponde all'input dell'utente

La casella di testo viene creata utilizzando alcuni attributi (android:id, android:layout_width, android:layout_height e android:hint) che sono usati per definire alcune caratteristiche dell'oggetto appena inserito.


L'attributo android:id, ad esempio, permette di assegnare un identificativo univoco alla casella di testa appena creata che servirà poi per leggere e modificarne il contenuto.
Il segno "+" viene utilizzato solo per definire un identificativo di risorsa per la prima volta. Il nome della risorsa è quello che segue la barra ed in questo caso è edit_message.

I successivi due attributi (android:layout_width, android:layout_height) consentono di stabilire le dimensioni della casella di testo. Il valore wrap_content fa sì che l'oggetto sia largo ed alto a sufficenza per ospitare i contenuti.

L'attributo android:hint, invece, consente di impostare il testo da visualizzare quando la casella è vuota. La sintassi @string/ permette di riferirsi, come abbiamo già visto nell'articolo Creare applicazioni Android: anatomia di una app, le attività, creazione di finestre di dialogo, al contenuto della stringa edit_message definita nel file values\strings.xml.

Nonostante si sia utilizzato lo stesso nome edit_message come ID e come riferimento ad una stringa, non si creerà alcun conflitto perché nei due casi è chiaramente specificato un tipo di risorsa differente (id e string).

Cliccando due volte su values\strings.xml, si potranno aggiungere i riferimenti alle stringhe utilizzate nell'app Android in corso di sviluppo:


<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">CiaoMondo</string>
    <string name="action_settings">Impostazioni</string>
    <string name="edit_message">Inserisci messaggio</string>
    <string name="button_send">Invia</string>
    <string name="title_activity_main">MainActivity</string>
</resources>

Programmare Android, sviluppare un'applicazione che risponde all'input dell'utente

Come si vede, il codice XML appena inserito nel file values\strings.xml consente di definire il valore della stringa edit_message ma anche di una serie di stringhe aggiuntive, alcune delle quali verranno impiegate più avanti.

Ad esempio, tornando nel codice XML di fragment_ciao_mondo.xml, dopo la casella di testo EditText, si può aggiungere un pulsante (Button):

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_send" />


Come si vede, il testo del pulsante viene impostato facendo riferimento alla stringa button_send, già precedentemente definita nel file values\strings.xml.


Programmare Android, sviluppare un'applicazione che risponde all'input dell'utente - IlSoftware.it