38
Dive into Android Francesco Saverio Giordano [email protected]

Dive into Android - GDG Bari

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Dive into Android - GDG Bari

Dive into AndroidFrancesco Saverio Giordano

[email protected]

Page 2: Dive into Android - GDG Bari

About me

● Pescarese/Barlettano, 24 anni

● Programmatore da 12 anni

(Android da 3 anni)

● Membro GDG

● Socio QIRIS e Senior developer Intact

Page 3: Dive into Android - GDG Bari

Overview

Breve introduzione ad AndroidUn po' di storia e strumenti base (SDK e ADT)

DesignAndroid User Interface e app multidispositivo

SviluppoLe basi per creare un'applicazione

DistribuzioneGoogle Play Store e Developer Console

Page 4: Dive into Android - GDG Bari

Breve introduzione ad Android

Page 5: Dive into Android - GDG Bari

Riassunto delle puntate precedentiAndroid 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.0Viene rilasciato il 23 settembre 2008 con l'HTC Dream.Gmail, Google Maps, Search, Talk e Contacts.

Android 1.5 CupcakeIl 30 aprile 2009 viene rilasciata Cupcake.Il robottino si fa "dolce".

Android 1.6 DonutRilasciato il 15 settembre 2009, Donut include aggiornamenti per sintesi e ricerca vocale.

Page 6: Dive into Android - GDG Bari

Riassunto delle puntate precedentiAndroid 2.0 EclairEclair viene rilasciato il 26 ottobre 2009. La fotocamera diventa funzionale e fanno la loro comparsa multi touch e live wallpaper.

Android 2.2 FroyoGoogle rilascia Froyo il 20 maggio 2010 migliorando drasticamente le prestazioni del sistema e aggiungendo il thethering

Android 2.3 GingerbreadGingerbread è 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.

Page 7: Dive into Android - GDG Bari

Riassunto delle puntate precedenti

Android 3.0 HoneycombHoneycomb, 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.

Page 8: Dive into Android - GDG Bari

Riassunto delle puntate precedentiAndroid 4.0 Ice Cream SandwichIl 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 BeanJelly 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.

Page 9: Dive into Android - GDG Bari

Nella prossima puntata...

Android 4.4 KitKatRilascio previsto: ottobre 2013

Page 10: Dive into Android - GDG Bari

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

Page 11: Dive into Android - GDG Bari

Android ADT

UI designer di Android ADT

Page 12: Dive into Android - GDG Bari

Le risorse indispensabili

● Android resource websitehttp://developer.android.com oppure http://d.android.com

● Android developers grouphttp://groups.google.com/group/android-developers

● Stack overflowhttp://www.stackoverflow.com

Page 13: Dive into Android - GDG Bari

Design

Page 14: Dive into Android - GDG Bari

Android User Interface

L'interfaccia utilizzata in Android si chiama

Holo

Page 15: Dive into Android - GDG Bari

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)

Page 16: Dive into Android - GDG Bari

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 è disponibileanche il Navigation drawer

Page 17: Dive into Android - GDG Bari

Android User InterfaceIl navigation drawer è simile al view control ma si apre lateralmente

oppure trascinando lo schermo dal bordo sinistro verso destra

Page 18: Dive into Android - GDG Bari

1. Icona dell'app2. View control3. Pulsanti di azione4. Altre azioni

Android User Interface

View control vs. Navigation drawer

Page 19: Dive into Android - GDG Bari

Android User InterfaceLibero sfogo alla fantasia!

Page 20: Dive into Android - GDG Bari

Android User InterfaceRisorse utili:http://developer.android.com/design/downloads/index.html

Page 21: Dive into Android - GDG Bari

Un'applicazione, tanti dispositivi

Premessa: al 21 settembrei dispositivi supportati nelPlay Store sono...

Obiettivo: rendere disponibile la nostra app per tutti i dispositivi

Page 22: Dive into Android - GDG Bari

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 dispositivoha un display con unadiversa risoluzionee densità (dpi)

Page 23: Dive into Android - GDG Bari

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

Page 24: Dive into Android - GDG Bari

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)

Page 25: Dive into Android - GDG Bari

Sviluppo

Page 26: Dive into Android - GDG Bari

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" />

Page 27: Dive into Android - GDG Bari

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

Page 28: Dive into Android - GDG Bari

Le activities

Un'activity principalecon 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

Page 29: Dive into Android - GDG Bari

Le activities

Non è detto che in ogni applicazione ci sia sempre almeno un'activity...

Page 30: Dive into Android - GDG Bari

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

Page 31: Dive into Android - GDG Bari

Il ciclo di vita di un'activityOgni 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 layoutonResume: in un cronometro fa partire il tempo o lo aggiorna quando l'app torna dal backgroundonPause: salva dati temporanei nel sistema che possono essere recuperati onResume

onDestroy e onRestart sono gli unici stati che potrebbero non essere chiamati.

Page 32: Dive into Android - GDG Bari

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.).

Page 33: Dive into Android - GDG Bari

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

Page 34: Dive into Android - GDG Bari

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

Page 35: Dive into Android - GDG Bari

Distribuzione

Page 36: Dive into Android - GDG Bari

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

Page 37: Dive into Android - GDG Bari

Nella Google Play Developer Console è possibile configurare la promozione delle applicazioni, visualizzare statistiche, commenti e segnalazioni di arresti anomali

Google Play Developer Console

Page 38: Dive into Android - GDG Bari

Grazie per l'attenzione!Vi aspetto sulla pagina GDG Bari!

http://goo.gl/PO5SO5