Articoli con tag sviluppo Android

Google: consigli e minor update per Android Studio

DoctorDroidV2

Probabilmente, chi ha tra le proprie cerchie Android Developers, si sarà accorto dei due post pubblicati ieri sera da questo account: il primo riguarda una bella lista di consigli che tutti gli sviluppatori dovrebbero seguire, mentre il secondo si occupa in particolar modo di Android Studio, per il quale è stato rilasciato un aggiornamento minore che lo porta alla versione 0.13. Nulla di eclatante, ma un update è sempre un update.

Tornando ai consigli dati agli sviluppatori, uno in particolare dei quali ci ha colpiti: nel primo paragrafo, Google indica di non usare il nostro account personale, ma crearne uno apposito. Tutto questo sarebbe anche giusto, se a Mountain View non chiedessero altri 25$ per cambiare questo parametro: infatti, se vogliamo trasferire tutte le nostre app su un altro account, ci sarà richiesto di iscriverci al Play Store anche con il secondo indirizzo e-mail, inviare un messaggio di posta al supporto da entrambi gli account e farci quindi trasferire tutti i nostri dati. Google: vuoi dire che non puoi cambiare un indirizzo a chi contribuisce a tenere in vita il tuo robottino senza un ulteriore pagamento?

Polemiche a parte, vi consigliamo di dare una lettura all’interessante articolopubblicato sul blog degli sviluppatori perché, come di consueto, contiene molte indicazioni utili che potrebbero farci guadagnare qualche download.

Le nuove API di Android: cosa ci ha sconvolto in mezz’ora

Dev_Google_IO_2013

 

Sono passati poco più di trenta minuti e Google è riuscita davvero a stupirci: le nuove API di MapsLocation a basso consumo e Geofencing, integrazione con Google+ e nuove funzioni per il Cloud Messaging. Senza contare il Game Center di cui si è tanto vociferato.

Guardando nello specifico, le nuovi API di Maps ci permetteranno di integrare nelle nostre applicazioni direttamente le mappe che ci interessano mentre con le funzioni di geolocalizzazione saremo in grado di far risparmiare ai nostri utenti parecchia batteria (ora consumeranno al massimo l’1% della nostra autonomia in un’ora) e grazie al geofencing potremo inserire fino a 100 aree di interesse per ogni app, con eventi scatenati all’ingresso o all’uscita da tali zone.

I cambiamenti  non si fermano qui e l’integrazione con il social network di Google, già annunciata e rilasciata qualche tempo fa, è davvero semplice e ci fa venire voglia di saltare all’ultimo argomento di questo articolo, il Google Cloud Messaging, già disponibile dall’evento dello scorso anno: in questa edizione, Google ha implementato la possibilità di avere anche connessioni persistentidalla nostra webapp ai server di Google, rendendo concretamente possibile la trasmissione di una quantità maggiore di dati ai nostri dispositivi tramite notifiche push. Inoltre, sarà disponibile anche il traffico inverso, dal nostro dispositivo verso i nostri server, ma non sono stati ancora rilasciati i dettagli di implementazione. La ciliegina sulla torta è data dalla nuova sincronizzazione delle notifiche che, una volta cancellate da un dispositivo, spariranno immediatamente anche dagli altri.

DevAppsDirect, l’app che tutti gli sviluppatori vorrebbero

Screenshot_2013-05-10-08-40-33

Quasi due mesi fa vi avevamo parlato di un curioso portale, chiamato Android Views, che raccoglie tutta una serie di librerie per migliorare graficamente o aggiungere nuove funzionalità alle nostre applicazioni e oggi abbiamo deciso di presentarvi la sua controparte Android: DevAppsDirect Beta.

Grazie a questo piccolo software, potremo infatti testare tutte le librerie senza doverci preoccupare di installarne il sample o crearcene uno, dovremo solamente scaricare il feed e provarlo nell’installer virtuale, senza andare a sporcare la memoria del nostro dispositivo.

L’app funziona come un vero e proprio lettore di feed RSS (il suo funzionamento è proprio quello) e ci dovrebbe segnalare di volta in volta le nuove librerie scoperte dal team di sviluppo.

Se siete in cerca di un metodo comodo per scoprire e provare nuovi pacchetti per le vostre creazioni,DevAppsDirect  la trovate gratuitamente sul Play Store.

 

DevCorner: le basi dello sviluppo, Activity ed Intent

DevCorner

Puntuale come un orologio sulla home (quelli svizzeri hanno fatto il loro tempo), torna DevCorner e, come promesso la settimana scorsa, questa volta è il momento di un po’ di sana teoria sulle basi della programmazione Android.

Partiamo quindi da uno dei concetti fondamentali, necessari da capire per comprendere come funziona un’applicazione: l’Activity (o Attività).

Cos’è un’Activity?

Ogni volta che usiamo un’applicazione, soprattutto su versioni di Android come Gingerbread e precedenti, possiamo notare facilmente dei cambiamenti dischermata: ad ognuna di queste “finestre” corrisponde verosimilmente un’Activity (un discorso a parte meriterebbero i Fragment, che non mancheremo di spiegarvi a tempo debito): ognuna di quelle interfacce rappresenta una porzione di applicazione ben precisa che può eseguire determinate operazioni e può interagire con l’utente tramite diverse componenti di input (ovviamente il touch, ma anche eventuali tasti hardware).
Solitamente le Activity utilizzano componenti grafiche già definite (campi di testo, bottoni, visualizzatori di immagini…), ma questa non è necessariamente la regola (gli sviluppatori di giochi, ad esempio, sono spesso costretti a rinunciare a questa comodità).

Il ciclo di vita delle Activity

Per sua natura, il sistema operativo Android può avere una ed una sola Activityin esecuzione (foreground): questo vuol dire, ad esempio, che quando la nostra app è attiva, persino il launcher è momentaneamente stoppato.
Se ci troviamo con un software che esegue delle operazioni in background (come un riproduttore musicale, ad esempio), sapremo quindi che per farlo non sta usando un’Activity ma altro che approfondiremo a tempo debito (un Service, un Broadcast Receiver…).

Tutte le Activity hanno un ciclo di vita, ossia una serie di status in cui possono trovarsi, che vanno dal lancio alla distruzione della stessa; la variazione di stato dipende da quello che facciamo (ad esempio, ritornare alla Home manderà l’applicazione in Stop) e, ogni volta che il software cambia di stato, richiama dei metodi che servono, generalmente, a ricostruire l’interfaccia grafica e a richiamare eventuali dati salvati.

Per capire meglio il ciclo di vita delle Activity, siamo sicuri che un’immagine vi chiarirà le idee:

activity_lifecycle

Il ciclo di vita di un’Activity

Particolarmente importanti, tra tutti, sono i metodi onCreate(), onResume() e onRestart(), che vengono spesso integrati per far eseguire all’applicazione determinate operazioni ogni volta che questa viene avviata o ripristinata, ma chepossono portare facilmente a crash se gestiti in maniera impropria.

Gli Intent

Come avrete capito, ogni “pagina” di un’applicazione è una diversa Activity: ma come si passa da un’attività ad un’altra? Per rispondere a questa domanda, prima di terminare questa spiegazione, dobbiamo quindi introdurre il concetto di Intent, che rappresenta, tra le altre cose, la disposizione  di un software di “cambiare schermata”.

Per comprendere meglio quanto detto finora, andiamo a creare una semplicissima app con due Activity, che andremo a commentare.

Hello (Android)World

Avviamo Eclipse (se non l’avete installato, qui abbiamo spiegato come scaricare la versione preconfezionata da Google per la programmazione Android) o qualsiasi altro IDE utilizzato e creiamo un nuvo progetto Android:  File, New, Android Application Project.

Inseriamo come nome HelloAndroidWorld e lasciamo tutto il resto come si trova: per la semplicità e lo scopo didattico dell’applicazione, non è necessario modificare nulla, proseguite solo Avanti per terminare la configurazione iniziale.

L’app avrà quindi la solita Activity di default, con del testo che recita “Hello world!”: apriamo il file activity_main.xml (presente nella cartella res/layout), che definisce l’interfaccia grafica e aggiungiamo un bottone per cambiare activity: possiamo farlo semplicemente trascinando l’elemento Button dalla finestra From Widgets, oppure inserirlo “a mano” dal codice xml: l’importante, alla fine, è avere un risultato del genere (visualizzabile cliccando in basso su activity_main.xml, affiancato da Graphical Layout):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

   xmlns:tools="http://schemas.android.com/tools"

   android:layout_width="match_parent"

   android:layout_height="match_parent"

   android:paddingBottom="@dimen/activity_vertical_margin"

   android:paddingLeft="@dimen/activity_horizontal_margin"

   android:paddingRight="@dimen/activity_horizontal_margin"

   android:paddingTop="@dimen/activity_vertical_margin"

   tools:context=".MainActivity" >

   <TextView

       android:id="@+id/textView1"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="@string/hello_world" />

   <Button

       android:id="@+id/bottone"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:layout_centerHorizontal="true"

       android:layout_centerVertical="true"

       android:text="Cambia Activity" />

</RelativeLayout>

Il rigo android:text vi darà un avvertimento: spiegheremo nel prossimo articolo come lavorare con le risorse per evitare warning simili.
Molto importante, invece, è inserire:

android:onClick="cambia"

che andrà a richiamare il metodo per cambiare l’activity.

Creiamo, quindi, una seconda Activity: è possibile farlo molto facilmente, cliccando su File, New, Other…, Android Activity. Lasciamo come impostazione Blank e come nome, alla voce Activity Name, inseriamo Second Activity: il wizard si occuperà di modificare gli altri parametri conformemente, non ci resta quindi che cliccare direttamente su Finish.

Nell’xml di questa Attività, modifichiamo il testo inserendo il nostro fascinoso Hello (Android)World!, avendo un risultato simile:

 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

   xmlns:tools="http://schemas.android.com/tools"

   android:layout_width="match_parent"

   android:layout_height="match_parent"

   android:paddingBottom="@dimen/activity_vertical_margin"

   android:paddingLeft="@dimen/activity_horizontal_margin"

   android:paddingRight="@dimen/activity_horizontal_margin"

   android:paddingTop="@dimen/activity_vertical_margin"

   tools:context=".SecondActivity" >

   <TextView

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="Hello (Android)World!" />

</RelativeLayout>

 

Ignoriamo anche questa volta il warning relativo alla penultima riga e, per completare il nostro piccolo tutorial, andiamo a modificare il codice java della prima activity, in modo da inserire un Intent che le consenta di passare a questa seconda appena creata.

Apriamo quindi il file SecondActivity.java, che si trova all’interno di src/nomedelpacchetto e, in fondo al file, prima della parentesi graffa finale, creiamo un nostro metodo per cambiare Attività tramite un Intent:

1
2
3
4
5
6
7
    public void cambia (View view){

        Intent cambioActivity;

        cambioActivity = new Intent (this, SecondActivity.class);

        startActivity(cambioActivity);

Spiegando brevemente tutto ciò che riguarda questo semplicissimo metodo:
public indica che questa operazione è richiamabile da tutti (essendo pubblica),void indica che non restituisce nulla di riutilizzabile (come del testo, un numero…) e cambia è il nome (che, come ricorderete, abbiamo inserito anche nell’xml della nostra MainActivity).

Per quanto riguarda il (View view), per adesso prendetelo per buono senza troppe pretese di capire: in generale, sappiate che quello che viene scritto tra parentesi è qualcosa che il metodo può utilizzare (un numero, un oggetto…): quando non c’è nulla da passare, si è soliti inserire una generica View di nome view.

Passiamo all’interno delle parentesi: il primo rigo, indica che stiamo dichiarando unnuovo oggetto di tipo Intent chiamato cambioActivity; proseguendo, andiamo a definire com’è composto questo Intent: è un nuovo Intent che prende come Activity di partenza quella in cui ci troviamo (this) e come Activity a cui puntare la nostra SecondActivity.class.
Infine, è necessario avviare questo processo, utilizzando il nostro Intent appena creato con il metodo nativo di Android startActivity, al quale passeremo tra parentesi il nome del nostro oggetto appena creato.
Prima di terminare, probabilmente noterete che ci saranno degli errori, segnalati da delle x rosse al lato di alcune parti di codice: sono dovuti al fatto che non abbiamo ancora importato alcune librerie: cliccando Ctrl+Shift+O, l’importazione dovrebbe avvenire automaticamente, in caso contrario accertiamoci di avere quanto segue all’inizio del codice:

1
2
3
4
5
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;

Il risultato finale di tutto quanto scritto, dovrebbe essere qualcosa di simile:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.example.helloandroidworld;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.Menu;

import android.view.View;

public class MainActivity extends Activity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.

        getMenuInflater().inflate(R.menu.main, menu);

        return true;

    }

    public void cambia (View view){

        Intent cambioActivity;

        cambioActivity = new Intent (this, SecondActivity.class);

        startActivity(cambioActivity);

    }

}

Se tutto è corretto, non dovreste ricevere errori: dopo aver abilitato il debug USBdallo smartphone, potete quindi inviare l’applicazione al telefono per testarla , tramite l’apposito tasto verde a forma di Play e scegliendo Android Application come  opzione: avrete una vostra applicazione composta da due schermate come queste di seguito.

MainActivity

SecondActivity

 

 

 

 

 

 

 

 

 

 

Prima di concludere questo primissimo tutorial sulle basi della programmazione, siamo costretti a specificare che potrebbero esserci centinaia di diversi  motivi che potrebbero causare errori: per questo motivo, nell’apposita sezione del forum saremo felici di rispondere a tutti i vostri dubbi e a tentare di risolvere eventuali problemi.

Sperando che questa guida sia stata esaustiva e di vostro gradimento, vi invitiamo a darci i vostri feedback e vi diamo appuntamento alla prossima settimana!

  • Categorie

  • Pubblicità

  • Top Categorie

    • Selezione categoria
Torna all'inizio