Guida allo sviluppo di applicazioni Android : Lezione 3

Nell’ambito dello sviluppo di applicazioni Android affrontiamo oggi l’analisi dei componenti prncipali di cui il framework dispone. Abbiamo già visto come preparare l’ambiante di sviluppo e come creare un nuovo progetto descrivendone gli aspetti essenziali. In questo articolo ci soffermeremo su altri aspetti teorici che ci serviranno per comprendere meglio il funzionamento del framework.

Android-Developers

Questo articolo non è una guida per lo sviluppatore, non è questo lo scopo, si cercherà solo di dare un’infarinatura generale per capire il funzionamento dei componenti. Si raccomanda quindi al termine della lettura di integrare le proprie conoscenze tramite la documentazione di Google o degli strumenti di lavoro ( vedi link presenti nella prima lezione ). Cominciamo quindi ad analizzare i componenti principali di una applicazione Android.

Broadcast receivers

Come dice il termine stesso, il compito di questo componente è quello di rimanere in ricezione di un evento ed attivarsi al suo segnale. L’evento è generalmente inviato dal sistema operativo che notifica alle applicazioni la conclusione di un’operazione o un messaggio ma che può anche essere creato e inviato dalla nostra app. Un esempio tipico di evento di sistema può essere il termine di un download, l’arrivo di un sms, ecc… Ecco quindi che un broadcast receiver potrebbe essere necessario nella nostra applicazione per far si che al termine di un download possiamo dare una notifica all’utente e chiedere se aprirlo.


Services

Il service rappresenta un componente di “background”.  In questo caso infatti non esiste nessuna interfaccia grafica ma il componente deve solo occuparsi di eseguere in background il suo lavoro senza una iterazione diretta con l’utente. Il service durante il suo processo può generare eventi che potranno essere catturati da un broadcast receiver. Per rendere meglio l’idea possiamo fare riferimento all’esempio precedente. Il processo di download di un file può essere effettuato interamente da un service dedicato che al momento del termine lancia un evento di notifica per attivare un broadcast reveiver che lo notifica all’utente.


Content providers

Il content provider si assume il compito di rendere disponibili determinati dati di una applicazioni verso tutte le altre. Un esempio per capire di cosa stiamo parlando possiamo farlo con qualcosa di cui tutti abbiamo usufruito ovvero il contact provider di Google stesso. Questo provider ci permettere di ottenere tutti i dati dei nostri contatti di Google e utilizzarli nelle nostre applicazioni Android e viceversa di crearne nuovi e salvarli online.



Activity

La differenza principale che contraddistingue questo componente da quelli visti precedentemente è la presenza di un’interfaccia grafica. Nelle nostre applicazioni Android potremo avere una o più activity e risulteranno indipendenti l’una dalle altre. Se vogliamo utilizzare un paragone molto grossolano potremo paragonare le activity di una applicazione android alle varie finestre di una normale applicazione per PC.

Come azione predefinita l’activity occupa tutta la window a disposizione ma potremo sempre restringere a piacimento l’area in cui verrà visualizzata. Gli elemnti presenti nelle activity sono componenti con cui l’utente è solito interagire come pulsanti, check e radio button, text area, progress bar, ecc…

Activity  lifecycle
Ciclo di vita

Il ciclo di vita di una activity è un concetto molto importante e di cui dovremo tener conto durante lo sviluppo di una applicazione. Nell’immagine possiamo vedere graficamente quali sono gli stati che può assumere un’activity e quali sono le transazioni che possono portare da uno stato all’altro.

Quando un’activity esiste, gli stati fondamentali che può assumere sono 3:

  • Resumed ( Running ) : l’activity è visualizzata sullo schermo e ha il focus dell’utente.
  • Paused: in questo caso è possibile che l’activity sia visualizzata ma un’altra assume il focus e il controllo dell’utente. Esempio: cliccando sul pulsante dell’activity A, viene visualizzata l’activity B per una scelta obbligatoria prima di proseguire con A.
  • Stopped: in questo caso l’activity non è più visualizzabile dall’utente e nel caso in cui la memoria stia per esaurirsi il sistema potrà decidere di distruggerla (kill).


I metodi che permettono il passaggio fra questi stati sono:

[java]
void onCreate()
void onStart()
void onRestart()
void onResume()
void onPause()
void onStop()
void onDestroy()[/java]





Widget

I widget sono delle View che possono essere inglobate in altre applicazione e che possono ricevere eventi di aggiornamento. Un esempio pratico che tutti credo conosciamo è il widget delle previsioni del tempo o del lettore musicale che solitamente abbiamo nella nostra home screen. Siccome i widget sono delle “mini applicazioni” che devono convivere con altre hanno alcune limitazioni come ad esempio nelle gesture dove solo il Touch e il Vertical Swipe è permesso. Per farci un’idea di come funzionano e che tipo di widget possiamo realizzare possiamo fare riferimento a questa ottima pagina di Google.

Voglio di nuovo ricordare che quanto scritto in questo articolo non può bastare per permetterci di sviluppare applicazioni Android ma vuole solo essere un’introduzione semplice per capire il funzionamento generale del framework e porci nell’ottica di quello che ci aspetta. Vi consiglio nuovamente per quello che riguarda soltanto la struttura e la comprensione delle applicazioni Android la documentazione di Google che offre un’esauriente fonte di apprendimento e a quella di Java.

2 commenti

RSS Feed
  1. Pingback: La Prima App Android: Guida allo sviluppo di applicazioni Android : Lezione 4 »

  2. Pingback: MobileOS.it Cambiare Activity: Guida allo sviluppo di applicazioni Android

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *