Dive into Android - GDG Bari

  • Published on
    07-Dec-2014

  • View
    419

  • Download
    6

DESCRIPTION

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

Transcript

1. Dive into Android Francesco Saverio Giordano fs.giordano@gmail.com 2. About me Pescarese/Barlettano, 24 anni Programmatore da 12 anni (Android da 3 anni) Membro GDG Socio QIRIS e Senior developer Intact 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. Breve introduzione ad Android 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. 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. 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. 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. Nella prossima puntata... Android 4.4 KitKat Rilascio previsto: ottobre 2013 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. Android ADT UI designer di Android ADT 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. Design 14. Android User Interface L'interfaccia utilizzata in Android si chiama Holo 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. 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. Android User Interface Il navigation drawer simile al view control ma si apre lateralmente oppure trascinando lo schermo dal bordo sinistro verso destra 18. 1. Icona dell'app 2. View control 3. Pulsanti di azione 4. Altre azioni Android User Interface View control vs. Navigation drawer 19. Android User Interface Libero sfogo alla fantasia! 20. Android User Interface Risorse utili: http://developer.android.com/design/downloads/index.html 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. 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. 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. 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. Sviluppo 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 Tutti i componenti definiti , , , Le interazioni delle activities con altre app Tutti i permessi richiesti Tutti i requisiti dei dispositivi 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. 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. Le activities Non detto che in ogni applicazione ci sia sempre almeno un'activity... 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. 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. 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. 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. 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. Distribuzione 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. Nella Google Play Developer Console possibile configurare la promozione delle applicazioni, visualizzare statistiche, commenti e segnalazioni di arresti anomali Google Play Developer Console 38. Grazie per l'attenzione! Vi aspetto sulla pagina GDG Bari! http://goo.gl/PO5SO5