Dive into Android
Francesco Saverio Giordano
fs.giordano@gmail.com
About me
● Pescarese/Barlettano, 24 anni
● Programmatore da 12 anni
(Android da 3 anni)
● Membro GDG
● Socio QIRIS e Senio...
Overview
Breve introduzione ad Android
Un po' di storia e strumenti base (SDK e ADT)
Design
Android User Interface e app m...
Breve introduzione ad Android
Riassunto delle puntate precedenti
Android Inc. è stata fondata nell'ottobre 2003 da Andy Rubin, Rich
Miner, Nick Sears e ...
Riassunto delle puntate precedenti
Android 2.0 Eclair
Eclair viene rilasciato il 26 ottobre 2009. La fotocamera
diventa fu...
Riassunto delle puntate precedenti
Android 3.0 Honeycomb
Honeycomb, rilasciato il 19 ottobre 2011,
è il sistema pensato e ...
Riassunto delle puntate precedenti
Android 4.0 Ice Cream Sandwich
Il panino gelato di Google viene rilasciato il 19 ottobr...
Nella prossima puntata...
Android 4.4 KitKat
Rilascio previsto: ottobre 2013
Gli strumenti
● Eclipse standard (4.3)
http://www.eclipse.org/downloads/
● Java SE Development Kit ¹ (JDK, 7u40)
http://ww...
Android ADT
UI designer di Android ADT
Le risorse indispensabili
● Android resource website
http://developer.android.com oppure http://d.android.com
● Android de...
Design
Android User Interface
L'interfaccia utilizzata
in Android si chiama
Holo
Android User Interface
1. Status bar (notifiche e stato del telefono)
2. Navigation bar (tasti virtuali quando non ci sono...
Android User Interface
Elementi tipici di una schermata:
1. Action bar per interagire facilmente
con l'app
2. View control...
Android User Interface
Il navigation drawer è simile al view control ma si apre lateralmente
oppure trascinando lo schermo...
1. Icona dell'app
2. View control
3. Pulsanti di azione
4. Altre azioni
Android User Interface
View control vs. Navigation...
Android User Interface
Libero sfogo alla fantasia!
Android User Interface
Risorse utili:
http://developer.android.com/design/downloads/index.html
Un'applicazione, tanti dispositivi
Premessa: al 21 settembre
i dispositivi supportati nel
Play Store sono...
Obiettivo: re...
Un'applicazione, tanti dispositivi
Premessa: al 21 settembre i dispositivi supportati nel
Play Store sono 3.833.
Obiettivo...
Un'applicazione, tanti dispositivi
Density-independent pixel (dip): ogni pixel viene
scalato automaticamente in base alla ...
Un'applicazione, tante categorie
● small
● medium
● large
● xlarge
● mdpi
● xdpi
● xhdpi
● xxhdpi
● land
● port
● sw600dp
...
Sviluppo
Il "manifesto"
Ogni app ha almeno un file manifest.xml che definisce tutte le specifiche
e i requisiti dell'applicazione.
...
Le activities
Activity
Rappresenta una singola schermata con una precisa
interfaccia utente.
Nota tecnica: il Fragment
Rap...
Le activities
Un'activity principale
con 4 fragments:
ultime notizie,
foto,
mappa,
lista contatti
Una seconda activity
con...
Le activities
Non è detto che in ogni
applicazione ci sia sempre
almeno un'activity...
Per avviare un'activity si usa il seguente blocco:
Intent intent = new Intent(this, SignInActivity.class);
startActivity(i...
Il ciclo di vita di un'activity
Ogni activity esegue sequenzialmente
gli stati indicati dal diagramma.
Ad ogni stato è pos...
Altri componenti di un'applicazione
Service
È un componente eseguito in background che esegue operazioni
schedulate o lung...
Le preferences si usano per salvare nella memoria del dispositivo
coppie di variabili chiave-valore per poter essere
succe...
Per salvare una preferenza:
SharedPreferences sharedPref =
getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPrefe...
Distribuzione
Per pubblicare sul Play Store occorre innanzitutto una registrazione come
sviluppatore all'indirizzo https://play.google.c...
Nella Google Play Developer
Console è possibile configurare la
promozione delle applicazioni,
visualizzare statistiche, co...
Grazie per l'attenzione!
Vi aspetto sulla pagina GDG Bari!
http://goo.gl/PO5SO5
Upcoming SlideShare
Loading in …5
×

Dive into Android - GDG Bari

698 views

Published on

Durante il Makers start-up bootcamp in Fiera del Levante, una panoramica sulle potenzialità di Android

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
698
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
12
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Dive into Android - GDG Bari

  1. 1. Dive into Android Francesco Saverio Giordano fs.giordano@gmail.com
  2. 2. About me ● Pescarese/Barlettano, 24 anni ● Programmatore da 12 anni (Android da 3 anni) ● Membro GDG ● Socio QIRIS e Senior developer Intact
  3. 3. Overview Breve introduzione ad Android Un po' di storia e strumenti base (SDK e ADT) Design Android User Interface e app multidispositivo Sviluppo Le basi per creare un'applicazione Distribuzione Google Play Store e Developer Console
  4. 4. Breve introduzione ad Android
  5. 5. Riassunto delle puntate precedenti Android Inc. è stata fondata nell'ottobre 2003 da Andy Rubin, Rich Miner, Nick Sears e Chris White per lo sviluppo di quello che Rubin definì « [...] dispositivi cellulari più consapevoli della posizione e delle preferenze del loro proprietario». Nel 2005 l'azienda è stata acquisita da Google e inizia lo sviluppo del sistema operativo Android basato su Linux. Android 1.0 Viene rilasciato il 23 settembre 2008 con l'HTC Dream. Gmail, Google Maps, Search, Talk e Contacts. Android 1.5 Cupcake Il 30 aprile 2009 viene rilasciata Cupcake. Il robottino si fa "dolce". Android 1.6 Donut Rilasciato il 15 settembre 2009, Donut include aggiornamenti per sintesi e ricerca vocale.
  6. 6. Riassunto delle puntate precedenti Android 2.0 Eclair Eclair viene rilasciato il 26 ottobre 2009. La fotocamera diventa funzionale e fanno la loro comparsa multi touch e live wallpaper. Android 2.2 Froyo Google rilascia Froyo il 20 maggio 2010 migliorando drasticamente le prestazioni del sistema e aggiungendo il thethering Android 2.3 Gingerbread Gingerbread è stato rilasciato il 6 dicembre 2010. Viene migliorata la gestione energetica, aggiornata la UI e aggiunta la tecnologia NFC. Le API 10 sono supportate dal 96.1% dei dispositivi in circolazione ed è il miglior compromesso per sviluppare applicazioni fruibili da tutti.
  7. 7. Riassunto delle puntate precedenti Android 3.0 Honeycomb Honeycomb, rilasciato il 19 ottobre 2011, è il sistema pensato e ottimizzato per i tablet. Nascono "Holo", la UI attualmente in uso sui dispositivi di ultima generazione, ed il supporto ai processori multi-core. Fino all'uscita di Jelly Bean, Android 2.3 Gingerbread e 3.0 Honeycomb viaggiano parallelamente.
  8. 8. Riassunto delle puntate precedenti Android 4.0 Ice Cream Sandwich Il panino gelato di Google viene rilasciato il 19 ottobre 2011. Sebbene "Holo" sia sempre presente, la UI viene completamente riprogettata e introdotto Roboto, il nuovo font di sistema. Vengono introdotte un quintale di nuove funzioni e miglioramenti: pulsanti virtuali, launcher personalizzabile, app di sistema aggiornate, screenshots (prima occorreva il root), dettatura in tempo reale, face unlock, fotocamera migliorata, integrazione contatti con i social network. Le API 14 di Android 4.0 Ice Cream Sandwich sono supportate dal 63% dei dispositivi. Android 4.1 Jelly Bean Jelly Bean viene rilasciato il 9 luglio 2012 ed è la versione di Android più longeva e attualmente più utilizzata (34%). A colpire non sono le novità, ma la innumerevole quantità di miglioramenti: dalla CPU alle gestures, dalla condivisione al NFC, dal Play Store a Google Now. Viene definitivamente abbandonato Adobe Flash. Le versioni 4.2 e 4.3 avranno lo stesso nome.
  9. 9. Nella prossima puntata... Android 4.4 KitKat Rilascio previsto: ottobre 2013
  10. 10. Gli strumenti ● Eclipse standard (4.3) http://www.eclipse.org/downloads/ ● Java SE Development Kit ¹ (JDK, 7u40) http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html ● Java Runtime Environment (JRE, 7u40) http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html ● Android Software Development Kit (SDK, 22.2.1) http://developer.android.com/sdk/index.html > Download for other platforms ● Android Development Tools for Eclipse (ADT, 22.2.1) http://developer.android.com/sdk/installing/installing-adt.html ¹ utenti linux: disinstallare, se presente, OpenJDK e OpenJRE
  11. 11. Android ADT UI designer di Android ADT
  12. 12. Le risorse indispensabili ● Android resource website http://developer.android.com oppure http://d.android.com ● Android developers group http://groups.google.com/group/android-developers ● Stack overflow http://www.stackoverflow.com
  13. 13. Design
  14. 14. Android User Interface L'interfaccia utilizzata in Android si chiama Holo
  15. 15. Android User Interface 1. Status bar (notifiche e stato del telefono) 2. Navigation bar (tasti virtuali quando non ci sono i fisici) 3. Combined bar (status + navigation)
  16. 16. Android User Interface Elementi tipici di una schermata: 1. Action bar per interagire facilmente con l'app 2. View control* per navigare tra le schermate 3. Content area 4. Split action bar con azioni aggiuntive importanti * Nelle app più recenti è disponibile anche il Navigation drawer
  17. 17. Android User Interface Il navigation drawer è simile al view control ma si apre lateralmente oppure trascinando lo schermo dal bordo sinistro verso destra
  18. 18. 1. Icona dell'app 2. View control 3. Pulsanti di azione 4. Altre azioni Android User Interface View control vs. Navigation drawer
  19. 19. Android User Interface Libero sfogo alla fantasia!
  20. 20. Android User Interface Risorse utili: http://developer.android.com/design/downloads/index.html
  21. 21. Un'applicazione, tanti dispositivi Premessa: al 21 settembre i dispositivi supportati nel Play Store sono... Obiettivo: rendere disponibile la nostra app per tutti i dispositivi
  22. 22. Un'applicazione, tanti dispositivi Premessa: al 21 settembre i dispositivi supportati nel Play Store sono 3.833. Obiettivo: rendere disponibile la nostra app per tutti i dispositivi Problema: ogni dispositivo ha un display con una diversa risoluzione e densità (dpi)
  23. 23. Un'applicazione, tanti dispositivi Density-independent pixel (dip): ogni pixel viene scalato automaticamente in base alla densità del display. Android permette la definizione di più versioni di ogni immagine per adattarsi ai vari display
  24. 24. Un'applicazione, tante categorie ● small ● medium ● large ● xlarge ● mdpi ● xdpi ● xhdpi ● xxhdpi ● land ● port ● sw600dp Tutte queste categorie di display possono essere combinate nella cartella drawable (drawable-mdpi-large)
  25. 25. Sviluppo
  26. 26. Il "manifesto" Ogni app ha almeno un file manifest.xml che definisce tutte le specifiche e i requisiti dell'applicazione. Nel manifest vengono indicati: ● Dettagli generici dell'app <application android:icon="@drawable/app_icon"> ● Tutti i componenti definiti <activity>, <service>, <provider>, <receiver> ● Le interazioni delle activities con altre app <item-filter> <action android:name="android.intent.action.SEND" /> </item-filter> ● Tutti i permessi richiesti <uses-permission android:name="android.permission.INTERNET" /> ● Tutti i requisiti dei dispositivi <uses-sdk android:minSdkVersion="8" />
  27. 27. Le activities Activity Rappresenta una singola schermata con una precisa interfaccia utente. Nota tecnica: il Fragment Rappresenta una porzione di interfaccia utente di un'activity
  28. 28. Le activities Un'activity principale con 4 fragments: ultime notizie, foto, mappa, lista contatti Una seconda activity con il testo completo di una notizia o un modulo di contatto Una terza activity con una galleria fotografica
  29. 29. Le activities Non è detto che in ogni applicazione ci sia sempre almeno un'activity...
  30. 30. Per avviare un'activity si usa il seguente blocco: Intent intent = new Intent(this, SignInActivity.class); startActivity(intent); ... è possibile passare dei parametri (Extra): Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_EMAIL, recipientArray); startActivity(intent); ... oppure chiederne un risultato: Intent intent = new Intent(Intent.ACTION_PICK, Contacts. CONTENT_URI); startActivityForResult(intent, PICK_CONTACT_REQUEST); protected void onActivityResult() {...} per terminare un'activity, si usa finish(); Avviare un'activity
  31. 31. Il ciclo di vita di un'activity Ogni activity esegue sequenzialmente gli stati indicati dal diagramma. Ad ogni stato è possibile definire determinate azioni. Per esempio... onCreate: recupera dati salvati nel sistema e carica il layout onResume: in un cronometro fa partire il tempo o lo aggiorna quando l'app torna dal background onPause: salva dati temporanei nel sistema che possono essere recuperati onResume onDestroy e onRestart sono gli unici stati che potrebbero non essere chiamati.
  32. 32. Altri componenti di un'applicazione Service È un componente eseguito in background che esegue operazioni schedulate o lunghe oppure per sincronizzare un server remoto. Un servizio non ha interfaccia utente. Content provider Gestisce una serie condivisa di dati di un'applicazione. È possibile salvare dati nel sistema, in un db SQLite, sul web o in qualunque posizione dove l'applicazione ha i permessi di accesso. Broadcast receiver È un componente che risponde a chiamate broadcast del sistema (esempio: caricabatteria collegato, wi-fi acceso, batteria al 10%, ecc.).
  33. 33. Le preferences si usano per salvare nella memoria del dispositivo coppie di variabili chiave-valore per poter essere successivamente riutilizzate (preferenze, variabili condivise, preferiti, ecc.). Si dividono in: ● Preferences che sono salvate in un unico file ● SharedPreferences sono salvate in un file il cui nome è definito dall'utente (utili per salvare più file di preferenze) Le preferences
  34. 34. Per salvare una preferenza: SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); editor.putInt("HighScore", newHighScore); editor.commit(); Per leggere una preferenza: SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); int defaultValue = 0; long highScore = sharedPref.getInt("HighScore", defaultValue); Le preferences
  35. 35. Distribuzione
  36. 36. Per pubblicare sul Play Store occorre innanzitutto una registrazione come sviluppatore all'indirizzo https://play.google.com/apps/publish/ e pagare una fee di 25 $ una volta sola. Dopo una breve verifica si potrà accedere alla Google Play Developer Console Google Play Developer Console
  37. 37. Nella Google Play Developer Console è possibile configurare la promozione delle applicazioni, visualizzare statistiche, commenti e segnalazioni di arresti anomali Google Play Developer Console
  38. 38. Grazie per l'attenzione! Vi aspetto sulla pagina GDG Bari! http://goo.gl/PO5SO5

×