• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Guida Sviluppare su android - 01

TBH

Utente Master
Autore del topic
24 Dicembre 2012
2.134
115
Miglior risposta
0
Sviluppare su android -02 : http://www.sciax2.it/forum/java/sviluppare-android-02-a-673868.html


Oggi parleremo di come iniziare a sviluppare su android. Vediamo gli strumenti che ci servono :

Sdk Android : Per le API di android e per creare l'avd.
Perfavore, Entra oppure Registrati per vedere i Link!

Android Studio: L'ide di google , ancora in versione beta ( ver attuale 0.8.14).
Perfavore, Entra oppure Registrati per vedere i Link!


Una volta scaricate le varie api di android (consiglio di scaricare le API 8,14,19,20) potremmo creare il nostro primo progetto usando l'ide di google.
Apriamo android studio contenuto nella cartella : /bin/studio o /bin/studio64 (per os a 64bit).
selezionando nuovo progetto vi troverete difronte a questa schermata:
2wntk0p.png


Application Name : indica il nome da assegnare alla vostra applicazione.
CompanyDomain : Nome della compagnia che produce l'app
Package : Per standard java e concetto ulteriormente rinforzato da google , il Package assume il nome della compagnia letto al contrario.
Esempio
Company name:: Sciax2.it
Package : it.Sciax2.NomeApp

Cliccando su next ci troveremo di fronte a questa schermata.
2m33891.png


Notiamo per quale dispositivo intendiamo sviluppare , infatti possiamo sviluppare sia per Smart Watch (Wear) Tv e applicazioni per i Google Glass, al momento la piattaforma d'interesse è Tablet e smartphone. Fattore importante è anche l'sdk che utilizziamo , la scelta non deve essere dettata dal caso infatti selezionando Api di livello estremamente basso come Android Eclair, siamo limitati a funzioni basilari e soprattutto limitati nell'uso dei servizi offerti da google , ma d'altra parte la nostra applicazione può girare su tutti i dispositivi android. Quindi orientativamente selezioniamo api comprese tra 12 a 18, dato che si compensano sia il numero di dispositivi e il numero di funzionalità. In questo caso selezioniamo la v. 4.0 ,inoltre lo stesso ide ci comunica (in % , il valore è estremamente approssimato) su quanti dispositivi sarà eseguibile la nostra applicazione.

Cliccando su next ci troveremo difronte a questa schermata
2h4ezxz.png


Bene , l'activity per ora la definiamo come una finestra con il quale l'user può interagire. Clicchiamo su next e proseguiamo.
2dhxzlh.png


Ci interessano principalmente i tre primi tre campi:

ActivityName: Nome della classe Java (che rappresenta la prima finestra)
LayoutName : File Xml che si occuperà della grafica e dell'aspetto della finestra
Title : Il titolo dell'applicazione che assumerà nel task android e sul menu.

Fatto ciò clicchiamo su Finish.

Analisi dei file creati


Notiamo che senza aver scritto nemmeno una riga di codice sono usciti fuori moltissimi file. Iniziamo da Grandle Script , quest'ultimi si occupano della compilazione e generazione del file .apk in genere non devono subire alcuna modifica dal programmatore.
Il file:

local.properties= contiene specificato esplicitamente il percorso del sdk.
Settings.gradle = contiene impostazioni riguardo al progetto
build.gradle = ci sono varie informazioni relative all'applicazione
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

all'interno di android vengono definite con quale sdk verrà compilato, in default config è definito l'id , importante se viene pubblicata sul play store in quanto tale valore deve essere univoco , viene anche specificata la versione minima per l'utilizzo di questa applicazione e per quali dispositivi è ottimizzata, sono presenti anche altre informazioni come versione e nome della versione.
Un altro fattore importante è BuildTypes dove viene specificato se usare Proguard di standard è false , quest'ultimo è un offuscatore del codice onde evitare decompilazioni da parte di mal'intenzionati. Per approfondire sull'argomento
Perfavore, Entra oppure Registrati per vedere i Link!
.
Infine ci sono le dipendenze , viene specificata la directory dove sono presenti e vengono inclusi tutti i file jar presenti in /lib, è presente anche un'altro Build.gradle ma è relativo esclusivamente a dettagli sul applicazione.

Passiamo invece ad analizzare il contenuto della directory .idea ,ci sono due sottocartelle Copyright e scopes che per il momento non tratteremo concentriamo sui file xml.

.name = contiene il nome dell'applicazione
compiler.xml = Opzioni riguardo al compilatore e al tipo di risorse usate
encodings.xml= Parametri relativi alla codifica di testo usata. Standard Utf 8
misc.xml= File relativi al jdk usato e viene specificata anche la directory di output

sugli altri file non mi soffermo dato che sono specifiche dell'ide.

Ora concentriamoci sui file di maggiore interesse app/build/main ci sono due directory res e java.

Res : risorse relative al layout dell'applicazione qui ci sono tutti i file relativi all'aspetto grafico
java : Classi Java.

In questa prima parte ci dedicheremo "principalmente" alla struttura grafica iniziamo analizzando AndroidManifest.xml
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

iniziamo vedendo la sintassi xml

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

@tipo risorsa/nomefile

bene a questo punto uno si chiede ma le risorse di tipo drawable dove le posso vedere ? nella directory drawable.
Ci sono anche altri tipi di risorse ma le vedremo piano piano.
Vediamo le risorse di tipo drawable notiamo 4 directory.
drawable-hdpi
drawable-mdpi
drawable-xhdpi
drawable-xxhdpi

contiene tutte risorse di tipo grafiche di standard ci sta l'icona.
quel hdpi mdpi etc... indica un qualificatore, che non è altro un identificativo caratteristico del dispositivo, in questo caso si riferisce alla densità per pixel , sono un unità di misura per valutare un tipo di display, l'acronimo h indica high , m medium etc. Uno dei punti di forza dello sviluppo android è rappresentato sicuramente dal fatto che la risoluzione dei problemi relativi ai formati dell'immagini non vanno trattati da codice java ma si possono risolvere mediante dei qualificatori. Per esempio un schermo a bassa risoluzione creiamo risorse(di tipo drawable) a bassa risoluzione senza occupare la stessa memoria di un dispositivo ad alta o altissima risoluzione.


Occupiamoci delle altre risorse : string,dimen,style. Contenuti nei corrispettivi file xml strings,dimens,styles nella cartella values, quando siamo in assenza di qualificatori vuol dire che questi sono i valori predefiniti.
In questa guida ci soffermeremo esclusivamente sulle risorse di tipo string , in quanto creeremo un app che si occupa di visualizzare in italiano o inglese la scritta hello world in base alla lingua impostata e modificare l'icona dell'app sempre in base alla lingua, il tutto sfruttando i qualificatori.

Per vedere l'anteprima dello smatphone o tablet e vedere l'output grafico senza eseguire nulla basta andare in layout/Nome_file.xml (nel nostro caso abbiamo impostato activity_main.xml)
Questa sarà quello che vedremo
2ch3ou8.png


notiamo in alto a destra i componenti inseriti e in basso le proprietà che si possono settare sia da codice xml o dal menù delle proprietà.Sulla sinistra invece i vari Layout e i widget che possiamo aggiungere sulla nostra activity semplicemente trascinando. Nel nostro caso è presente una textview. che presenta le seguenti caratteristiche

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

android:text ha specificato una risorsa di tipo string di nome hello world ... quindi deduciamo che si trova in values/strings.xml
Contenuto di strings.xml
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Notiamo che c'è una risorsa identificata dal nome hello_world che contiene il testo Hello world!. Quindi eseguendo l'activity nell'attuale stato uscirebbe scritto Hello world!
Quindi per ottenere la scritta ciao mondo ,nel caso fosse stata selezionata la lingua italiana basta creare una cartella di risorse di tipo values-it contenente strings.xml. Quel trattino -it è un qualificatore che android riconosce e quindi fa automaticamente riferimento alle risorse di strings.xml della cartella values-it.
30hu0rn.png


notiamo che android studio aggiunge automaticamente alla risorsa un identificativo visivo(la bandiera italiana).
Il contenuto di strings è il seguente:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Ora non ci rimane che lavorare con l'icona, risorsa di tipo drawable.Dato che l'applicazione è solo a puro scopo dimostrativo non teniamo conto delle qualità dei display e usiamo solo il qualificatore per identificare la lingua.
2mw9nk5.jpg

Nell' AndroidManifest , modifichiamo android:icon=@drawable/flag
Ultimo passo è testare l'applicazione con un emulatore android
Ed ecco i risultati:

Lingua Inglese - Menù
11h6u7c.png


Esecuzione applicazione
2who6rd.png


Lingua Italiana Menù
sz7u3n.png


Esecuzione applicazione
nfsbwh.png




I qualificatori sono molti , per approfondire su di essi :
Perfavore, Entra oppure Registrati per vedere i Link!
 
Ultima modifica:
  • Like
Reactions: 2 people
Avevo già visto in giro una cosa del genere, devo dire che è molto utile per chi vuole imparare a sviluppare app, ovviamente devono essere a conoscenza di Java, l'unica pecca di questa guida sono gli screen, alcuni si vedono troppo piccoli che non si possono leggere.
 
Bella guida, fossi in te consiglierei anche una guida per spiegare i concetti fondamentali su Java, che se non sono presenti nel lettore della guida, questa risulterebbe pressochè senza utilità :coniglio:
 
@ilMaffin nella guida non è presente nessuna riga di codice java , dato che mi limitavo a spiegare risorse e qualificatori. Ovviamente questa è solo la prima guida che introduce al mondo android. Quando sarà necessario parlerò anche del java e delle differenze con JSE.
 
Oggi parleremo di come iniziare a sviluppare su android. Vediamo gli strumenti che ci servono :

Sdk Android : Per le API di android e per creare l'avd.
Perfavore, Entra oppure Registrati per vedere i Link!

Android Studio: L'ide di google , ancora in versione beta ( ver attuale 0.8.14).
Perfavore, Entra oppure Registrati per vedere i Link!


Una volta scaricate le varie api di android (consiglio di scaricare le API 8,14,19,20) potremmo creare il nostro primo progetto usando l'ide di google.
Apriamo android studio contenuto nella cartella : /bin/studio o /bin/studio64 (per os a 64bit).
selezionando nuovo progetto vi troverete difronte a questa schermata:
2wntk0p.png


Application Name : indica il nome da assegnare alla vostra applicazione.
CompanyDomain : Nome della compagnia che produce l'app
Package : Per standard java e concetto ulteriormente rinforzato da google , il Package assume il nome della compagnia letto al contrario.
Esempio
Company name:: Sciax2.it
Package : it.Sciax2.NomeApp

Cliccando su next ci troveremo di fronte a questa schermata.
2m33891.png


Notiamo per quale dispositivo intendiamo sviluppare , infatti possiamo sviluppare sia per Smart Watch (Wear) Tv e applicazioni per i Google Glass, al momento la piattaforma d'interesse è Tablet e smartphone. Fattore importante è anche l'sdk che utilizziamo , la scelta non deve essere dettata dal caso infatti selezionando Api di livello estremamente basso come Android Eclair, siamo limitati a funzioni basilari e soprattutto limitati nell'uso dei servizi offerti da google , ma d'altra parte la nostra applicazione può girare su tutti i dispositivi android. Quindi orientativamente selezioniamo api comprese tra 12 a 18, dato che si compensano sia il numero di dispositivi e il numero di funzionalità. In questo caso selezioniamo la v. 4.0 ,inoltre lo stesso ide ci comunica (in % , il valore è estremamente approssimato) su quanti dispositivi sarà eseguibile la nostra applicazione.

Cliccando su next ci troveremo difronte a questa schermata
2h4ezxz.png


Bene , l'activity per ora la definiamo come una finestra con il quale l'user può interagire. Clicchiamo su next e proseguiamo.
2dhxzlh.png


Ci interessano principalmente i tre primi tre campi:

ActivityName: Nome della classe Java (che rappresenta la prima finestra)
LayoutName : File Xml che si occuperà della grafica e dell'aspetto della finestra
Title : Il titolo dell'applicazione che assumerà nel task android e sul menu.

Fatto ciò clicchiamo su Finish.

Analisi dei file creati


Notiamo che senza aver scritto nemmeno una riga di codice sono usciti fuori moltissimi file. Iniziamo da Grandle Script , quest'ultimi si occupano della compilazione e generazione del file .apk in genere non devono subire alcuna modifica dal programmatore.
Il file:

local.properties= contiene specificato esplicitamente il percorso del sdk.
Settings.gradle = contiene impostazioni riguardo al progetto
build.gradle = ci sono varie informazioni relative all'applicazione
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

all'interno di android vengono definite con quale sdk verrà compilato, in default config è definito l'id , importante se viene pubblicata sul play store in quanto tale valore deve essere univoco , viene anche specificata la versione minima per l'utilizzo di questa applicazione e per quali dispositivi è ottimizzata, sono presenti anche altre informazioni come versione e nome della versione.
Un altro fattore importante è BuildTypes dove viene specificato se usare Proguard di standard è false , quest'ultimo è un offuscatore del codice onde evitare decompilazioni da parte di mal'intenzionati. Per approfondire sull'argomento
Perfavore, Entra oppure Registrati per vedere i Link!
.
Infine ci sono le dipendenze , viene specificata la directory dove sono presenti e vengono inclusi tutti i file jar presenti in /lib, è presente anche un'altro Build.gradle ma è relativo esclusivamente a dettagli sul applicazione.

Passiamo invece ad analizzare il contenuto della directory .idea ,ci sono due sottocartelle Copyright e scopes che per il momento non tratteremo concentriamo sui file xml.

.name = contiene il nome dell'applicazione
compiler.xml = Opzioni riguardo al compilatore e al tipo di risorse usate
encodings.xml= Parametri relativi alla codifica di testo usata. Standard Utf 8
misc.xml= File relativi al jdk usato e viene specificata anche la directory di output

sugli altri file non mi soffermo dato che sono specifiche dell'ide.

Ora concentriamoci sui file di maggiore interesse app/build/main ci sono due directory res e java.

Res : risorse relative al layout dell'applicazione qui ci sono tutti i file relativi all'aspetto grafico
java : Classi Java.

In questa prima parte ci dedicheremo "principalmente" alla struttura grafica iniziamo analizzando AndroidManifest.xml
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

iniziamo vedendo la sintassi xml

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

@tipo risorsa/nomefile

bene a questo punto uno si chiede ma le risorse di tipo drawable dove le posso vedere ? nella directory drawable.
Ci sono anche altri tipi di risorse ma le vedremo piano piano.
Vediamo le risorse di tipo drawable notiamo 4 directory.
drawable-hdpi
drawable-mdpi
drawable-xhdpi
drawable-xxhdpi

contiene tutte risorse di tipo grafiche di standard ci sta l'icona.
quel hdpi mdpi etc... indica un qualificatore, che non è altro un identificativo caratteristico del dispositivo, in questo caso si riferisce alla densità per pixel , sono un unità di misura per valutare un tipo di display, l'acronimo h indica high , m medium etc. Uno dei punti di forza dello sviluppo android è rappresentato sicuramente dal fatto che la risoluzione dei problemi relativi ai formati dell'immagini non vanno trattati da codice java ma si possono risolvere mediante dei qualificatori. Per esempio un schermo a bassa risoluzione creiamo risorse(di tipo drawable) a bassa risoluzione senza occupare la stessa memoria di un dispositivo ad alta o altissima risoluzione.


Occupiamoci delle altre risorse : string,dimen,style. Contenuti nei corrispettivi file xml strings,dimens,styles nella cartella values, quando siamo in assenza di qualificatori vuol dire che questi sono i valori predefiniti.
In questa guida ci soffermeremo esclusivamente sulle risorse di tipo string , in quanto creeremo un app che si occupa di visualizzare in italiano o inglese la scritta hello world in base alla lingua impostata e modificare l'icona dell'app sempre in base alla lingua, il tutto sfruttando i qualificatori.

Per vedere l'anteprima dello smatphone o tablet e vedere l'output grafico senza eseguire nulla basta andare in layout/Nome_file.xml (nel nostro caso abbiamo impostato activity_main.xml)
Questa sarà quello che vedremo
2ch3ou8.png


notiamo in alto a destra i componenti inseriti e in basso le proprietà che si possono settare sia da codice xml o dal menù delle proprietà.Sulla sinistra invece i vari Layout e i widget che possiamo aggiungere sulla nostra activity semplicemente trascinando. Nel nostro caso è presente una textview. che presenta le seguenti caratteristiche

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

android:text ha specificato una risorsa di tipo string di nome hello world ... quindi deduciamo che si trova in values/strings.xml
Contenuto di strings.xml
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Notiamo che c'è una risorsa identificata dal nome hello_world che contiene il testo Hello world!. Quindi eseguendo l'activity nell'attuale stato uscirebbe scritto Hello world!
Quindi per ottenere la scritta ciao mondo ,nel caso fosse stata selezionata la lingua italiana basta creare una cartella di risorse di tipo values-it contenente strings.xml. Quel trattino -it è un qualificatore che android riconosce e quindi fa automaticamente riferimento alle risorse di strings.xml della cartella values-it.
30hu0rn.png


notiamo che android studio aggiunge automaticamente alla risorsa un identificativo visivo(la bandiera italiana).
Il contenuto di strings è il seguente:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Ora non ci rimane che lavorare con l'icona, risorsa di tipo drawable.Dato che l'applicazione è solo a puro scopo dimostrativo non teniamo conto delle qualità dei display e usiamo solo il qualificatore per identificare la lingua.
2mw9nk5.jpg

Nell' AndroidManifest , modifichiamo android:icon=@drawable/flag
Ultimo passo è testare l'applicazione con un emulatore android
Ed ecco i risultati:

Lingua Inglese - Menù
11h6u7c.png


Esecuzione applicazione
2who6rd.png


Lingua Italiana Menù
sz7u3n.png


Esecuzione applicazione
nfsbwh.png




I qualificatori sono molti , per approfondire su di essi :
Perfavore, Entra oppure Registrati per vedere i Link!
Bravissimo è un guida spiegata benissimo ^^ adesso provo su linux
ps:consigli di installare il plugin per eclipse o tutte l'ambiente di svilippo?
 
Che dire, ottima guida per creare un applicazione iniziale e banale, se puoi, sarei interessato a qualche tutorial avanzato, magari su come implementare la grafica vera e propria, con animazione etc.

Grazie.
 
Che dire, ottima guida per creare un applicazione iniziale e banale, se puoi, sarei interessato a qualche tutorial avanzato, magari su come implementare la grafica vera e propria, con animazione etc.

Grazie.
Grazie ^^.
cercherò di scrivere almeno una guida ogni due settimane ,dalla prossima parto dall'analisi di android fino ad arrivare la creazione di un qualcosa con il quale l'utente può interagire