-
Requisiti obbligatori per cominciare
-
Creiamo il nostro primo progetto
-
La programmazione
-
La parte grafica
-
Il Risultato finale
-
Commenta la lezione
Requisiti obbligatori per cominciare
PRIMA di cominciare a programmare e mettere gli occhi sulle prime righe di codice è necessario INSTALLARE Java e Android Studio.
GUIDA COMPLETA clicca QUI
GUIDA COMPLETA clicca QUI
Creiamo il nostro primo progetto
Apriamo Android Studio e clicchiamo in alto a sinistra su “File” —> “New” —> “New Project”
Si aprirà una finestra in cui bisognerà inserire dei dati importanti per l’app che andremo a sviluppare, vediamo:
Ora dobbiamo riempire i campi nel seguente modo:
Application name: in questo campo inseriamo il nome della nostra app (in questo caso “HelloWorld”)
Company Domain: in questo campo inseriamo il nome del package del nostro progetto (N.B. si inserisce in ordine rovesciato, partendo dal dominio + suffisso .it)
Package name: in automatico verrà interpretato il campo sopra in “it.esempio.helloworld”
Premere su “Next” per proseguire.
Lasciare la spunta blu su “Phone and Tablet” e come Minimim SDK impostare Api 14, in questo modo avrete la compatibilità da android 4 e superiori.
Premere su “Next” per proseguire.
Selezionare “Empty Activity” per avere una activity vuota fin da subito. Clicca su “Next” per andare avanti.
In Activity Name: lasciare il nome scritto di default “MainActivity” oppure mettete un nome personalizzato per la attività principale del vostro progetto (il nome DEVE sempre iniziare con lettera maiuscola).
In Layout Name: lasciare il nome scritto di default “activity_main” oppure mettete un nome personalizzato per il layout dell’app.
Cliccate su “Next” per andare alla prossima slide.
Mettetevi comodi ci vorrà qualche minuto prima che Android Studio abbia completato tutte le sue procedure di creazione del nostro progetto.
Una volta che il caricamento si è concluso possiamo osservare la seguente schermata:
Sono stati creati per l’appunto due file MainActivity.java e activity_main.xml che costituiscono i due pilastri fondamentali della nostra app.
MainActivity.java è l’attività principale che costituisce la programmazione (l’implementazione del nostro algoritmo) che elabora i dati.
activity_main.xml è la struttura grafica ordinata in linguaggio XML, ovvero ogni componente grafico (widget) è formalizzato e inizializzato con dei tag e delle proprietà propri di questo linguaggio.
La programmazione
Il cuore della programmazione della app è MainActivity.java
import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
Elenco in questa tabella un piccolo glossario per spiegare la funzione di ogni singolo comando java
Comando java | Spiegazione |
---|---|
import PACKAGE.CLASSE | Serve per utilizzare una classe all’interno del nostro codice. Di default, in ogni file Java viene importato automaticamente il package java.lang con tutte le sue classi con il quale possiamo utilizzare le classi principali quali System e String. |
public class MainActivity | ci informa che l’accesso alla classe è pubblico da fuori |
extends AppCompatActivity | la classe MainActivity eredita metodi e attributi della classe AppCompatActivity |
@Override | sovrascrive il metodo ereditato(in questo caso OnCreate) con questo nuovo metodo sempre con stesso nome |
Bundle savedInstanceState | Se si salva lo stato dell’applicazione in un Bundle (in genere non persistente, per ulteriori info clicca QUI) il parametro savedInstanceState può essere passato al onCreate se l’attività deve essere ricreata (ad esempio, quando ruotiamo il verso del nostro tablet) in modo da non perdere delle informazioni prima di tale operazione; può essere usata anche quando si mette in pausa l’app e poi la si riprende. Se nessun dato è stato fornito, savedInstanceState è NULL. |
super.onCreate(savedInstanceState) | richiama il metodo onCreate della classe padre AppCompatActivity e gli passa come parametro il parametro(savedInstanceState) all’avvio della nostra applicazione. |
MainActivity.java sostanzialmente si occupa delle operazioni che vengono eseguite all’atto del lancio in esecuzione del programma.
Il metodo protected onCreate viene lanciato ed è qui che dobbiamo focalizzare la nostra attenzione:
setContentView(R.layout.activity_main); il cuore dell’intero programma che dobbiamo comprendere è questo comando: la funzione setContentView semplicemente VISUALIZZA come pagina principale della nostra app la schematizzazione che è stata scritta dentro il file activity_main.xml
dettagli tecnici clicca qui
R.layout.activity_main:
Il nostro progetto android ogni qualvolta che aggiungiamo dei dati in activity_main.xml (e in altri file) GENERA AUTOMATICAMENTE una classe R.java (per vederne il contenuto bisogna aprire l’esplora risorse di windows e andare al seguente indirizzo CARTELLA_PROGETTI\NOME_PROGETTO\app\build\
generated\source\r\debug\PACKAGE\R.java), da qui si puo’ comprendere che da R si puo’ accedere agli attributi della classe layout (saranno spiegati nel paragrafo successivo); uno di questi attributi è activity_main che corrisponde a un numero esadecimale a 8 cifre (esempio: 7F040019).
La parte grafica
Qui analizziamo activity_main.xml il punto di partenza per occuparsi della parte grafica della nostra app
<?xml version="1.0" encoding="utf-8"?> <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="it.esempio.helloworld.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> </RelativeLayout>
Tag XML | Spiegazione |
---|---|
Con questo tag si informa che si sta scrivendo un file xml e si indica sia la versione di xml in uso che la codifica testo utilizzata nel codice. E’ un tag obbligatorio per tutti i file xml. | |
RelativeLayout è un tipo di layout che consente di posizionare gli elementi in maniera relativa, ovvero l’area del layout stesso specifica allineamenti del tipo sinistra, in basso oppure in relazione ad elementi già visualizzati sullo schermo. (vedremo poi nelle successive lezioni altri tipi di layout e le relative differenze). Inoltre Android possiede un proprio namespace XML (vedi cos’è un namespace QUI) che permette di registrare informazioni nei file xml e così avrà informazioni smontate singolarmente quando l’applicazione sarà pacchettizata così da non dover ricorrere ad alcun file extra prelevato da internet per la standardizzazione dei dati. | |
android:layout_width, android:layout_height, android:paddingBottom, android:paddingLeft, android:paddingRight, android:paddingTop | Si vanno a configurare parametri importanti quali la larghezza,altezza e il padding della nostra app |
Questo attributo configura l’elemento radice del file a cui è associato questo layout xml. |
Le righe di codice che rappresentano l’essenza della prima pagina della nostra app sono le seguenti:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" />
Ottimo lavoro!!! Spiegazione davvero fatta per bene.
Ho un problema che non visualizzo l’anteprima “Hello World” già da quando apro per la prima volta Android Studio. Non capisco il motivo all’inizio mi dava errori del tipo: this view is not constraint.it has designtime positions,so it will jump to (0,0) at runtime unless you add the constraints
Ora invece non mi esce nessun’altro errore. Il codice rispetto alla guida per com’è settato è diverso perchè c’è la parte Constraint che non ho capito perchè è presente e non so se derivi da quello il problema. Ho provato anche reinstallare il programma più volte e sto scaricando anche le patch che mi chiede il programma…
buona spiegazione , meno chiara quella per il collegamento cell to pc , però si trovano istruzioni ,continuo a seguire grazie