ANDROID
PROGRAMMAZIONE AVANZATA
                Emanuele Di Saverio - Stefano Sanna




Presentazione
  dell’opera
SOMMARIO
• Activitye Service
• Grafica e Interfaccia Utente
• Honeycomb e Tablet
• Networking
• NFC
• Push Notification
• Bluetooth
• Qualità del software
• Ice Cream Sandwich: la riconciliazione
ACTIVITY E SERVICE
• Questo  capitolo analizza in dettaglio il ciclo di vita di Activity e
 Service, esponendo pratiche virtuose ed errori comuni che si
 possono commettere adoperando questi componenti nelle
 applicazioni Android

• Outline
 • Ciclo di vita
 • Interoperabilità
 • UI Thread e concorrenza
 • Applicazioni persistenti
 • Service
GRAFICA E INTERFACCIA UTENTE
• Inquesto capitolo verranno esposti consigli e best practice per lo
 sviluppo di interfacce utente efficaci, flessibili e ottimizzate,
 approfondendo il supporto che Android fornisce alla grafica 2D

• Outline
  •    Creare bottoni con gli stili
  •    Lavorare con le immagini
  •    Filtri e composizioni
  •    Animazioni avanzate
  •    Migliorare le prestazioni
  •    Strumenti
  •    Interfacce fluide
HONEYCOMB E TABLET
•   Questo capitolo è dedicato alla release di Android più importante dopo la seminale 1.0:
    Honeycomb, la versione 3. La lista di feature introdotte da questa release, capitanata dal
    supporto ai tablet, è estensiva sia per numerosità sia per profondità delle funzionalità introdotte


•   Outline
    •   Applicazione di esempio: RomaSki per Honeycomb         •   Animazioni in Honeycomb
    •   Un cambio di paradigma: i Fragment                     •   Animazioni senza catene: gli Animator
    •   Fragment: strategie di posizionamento                  •   Animazioni complesse in Honeycomb
    •   La Fragment API                                        •   Coordinate polari e Keyframe
    •   Un utile design pattern: ActionBar                     •   ActionMode
    •   Programmare l’ActionBar                                •   Nuovi selettori per risorse
    •   Navigare tra i fragment: Transizione d Back Stack      •   Rendering ad alte prestazioni
    •   Supportare l’asincronia con i Loader                   •   Renderscript: un invito alla
    •   Fragments per tutti: il compatibility package              programmazione 3D
                                                               •   ForuWayNavigation: un esempio
                                                                   “intermedio”
NETWORKING
• In questo capitolo saranno illustrate alcune tecniche per
 l’implementazione efficace di funzionalità di networking, dal
 semplice download di file alla gestione di complesse code di
 richieste concorrenti e decodifica di documenti XML e JSON

• Outline
  •    Sempre connessi
  •    Introduzione all’Apache HttpClient
  •    Il caso sporadico: l’AsyncTask
  •    Recupero di file: il DownloadManager
  •    Un approccio strutturato: il Task Pattern
NFC
• Inquesto capitolo sarà introdotta la tecnologia NFC, che consente
 la realizzazione di applicazioni in grado di interagire con il mondo
 fisico attraverso il riconoscimento di tag e la lettura di dati a essi
 associati

• Outline
  •    Near Field Communication
  •    NFC su Android
  •    Hello Tag!
  •    Leggere e scrivere i tag
  •    BookNote
  •    Android Beam
PUSH NOTIFICATION
• Inquesto capitolo saranno illustrate le tecniche di notifi- ca push
 via SMS e mediante il servizio Android Cloud to Device Messaging
 di Google

• Outline
  • In
     attesa di dati...
  • Notifiche via SMS
  • Notifiche via C2DM
BLUETOOTH
• Inquesto capitolo saranno illustrate le caratteristiche del
 protocollo Bluetooth, l’implementazione dell’API Android e alcune
 tecniche avanzate che permettono di superare le limitazioni della
 libreria standard

• Outline
  •    Una vecchia conoscenza
  •    Panoramica del protocollo Bluetooth
  •    Setup per sperimentazione
  •    L’API Bluetooth di Android
  •    Le novità introdotte in Honeycomb
  •    Le novità introdotte in Ice Cream Sandwich
QUALITÀ DEL SOFTWARE
• Controllare il livello di qualità del software prodotto è un problema
 intrinseco alla professione, che ci accompa- gna anche nello
 sviluppo Android. In questo capitolo ver- ranno esposti paradigmi,
 tools, procedure e semplici tips mirati a risolverlo, nel contesto
 dello sviluppo profes- sionale di applicazioni Android

• Outline
  •   Build professionali
  •   Test Driven Development
  •   Test automatico
  •   Eseguire i test
  •   Continuous Integration
  •   La cassetta degli attrezzi
  •   Strategia di test
ICE CREAM SANDWICH
•   La versione 4.0 è l’ultima e più recente incarnazione della piattaforma Android,
    nome in codice: Ice Cream Sandwich. Questo capitolo fornisce al lettore una visione
    d’insieme della piattaforma dal punto di vista tecnico. Successivamente si
    approfondiranno le nuove tematiche e caratteristiche di Android che possono
    essere, nel parere di chi scrive, più interessanti per lo sviluppo di applicazioni
    innovative su questa piattaforma


• Outline
    • Android   4.0: Ice Cream Sandwich
    • Riconoscimento facciale
    • La Calendar API
    • Easters: un calendario per la Pasqua
    • Wi-Fi Direct
RISORSE
• Sito ufficiale di Edizioni FAG (dove è possibile ordinare il libro)
  • http://www.fag.it/scheda.aspx?ID=38913
• Website di supporto al libro:
  • http://www.androidavanzato.it
• Codice d’esempio
  • http://code.google.com/p/androidavanzato
• e-mail
  • androidavanzato@gmail.com
• Twitter
  • @androidavanzato
AUTORI
• Emanuele            Di Saverio
 •   è Ingegnere Informatico classe ‘82. È stato coinvolto in progetti Android per il mercato
     mondiale sin dal lancio della piattaforma e ha portato la sua passione per il mondo
     mobile e i metodi agili a industrie del settore finanziario, medicale e telco. È Senior
     Design Technologist presso lo studio di Milano della agenzia di innovazione globale frog.


• Stefano         Sanna
 •   si occupa di programmazione su dispositivi mobili da circa 10 anni, ha maturato
     esperienza in progetti industriali e di ricerca. Ha partecipato alla realizzazione di
     importanti prodotti su piattaforme Android e Java Micro Edition per i principali operatori
     di telefonia mobile europei. Ha scritto numerose pubblicazioni sul mobile computing.
     Attualmente è responsabile dell’Android Lab di Open Reply.

Android - Programmazione Avanzata

  • 1.
    ANDROID PROGRAMMAZIONE AVANZATA Emanuele Di Saverio - Stefano Sanna Presentazione dell’opera
  • 2.
    SOMMARIO • Activitye Service •Grafica e Interfaccia Utente • Honeycomb e Tablet • Networking • NFC • Push Notification • Bluetooth • Qualità del software • Ice Cream Sandwich: la riconciliazione
  • 3.
    ACTIVITY E SERVICE •Questo capitolo analizza in dettaglio il ciclo di vita di Activity e Service, esponendo pratiche virtuose ed errori comuni che si possono commettere adoperando questi componenti nelle applicazioni Android • Outline • Ciclo di vita • Interoperabilità • UI Thread e concorrenza • Applicazioni persistenti • Service
  • 4.
    GRAFICA E INTERFACCIAUTENTE • Inquesto capitolo verranno esposti consigli e best practice per lo sviluppo di interfacce utente efficaci, flessibili e ottimizzate, approfondendo il supporto che Android fornisce alla grafica 2D • Outline • Creare bottoni con gli stili • Lavorare con le immagini • Filtri e composizioni • Animazioni avanzate • Migliorare le prestazioni • Strumenti • Interfacce fluide
  • 5.
    HONEYCOMB E TABLET • Questo capitolo è dedicato alla release di Android più importante dopo la seminale 1.0: Honeycomb, la versione 3. La lista di feature introdotte da questa release, capitanata dal supporto ai tablet, è estensiva sia per numerosità sia per profondità delle funzionalità introdotte • Outline • Applicazione di esempio: RomaSki per Honeycomb • Animazioni in Honeycomb • Un cambio di paradigma: i Fragment • Animazioni senza catene: gli Animator • Fragment: strategie di posizionamento • Animazioni complesse in Honeycomb • La Fragment API • Coordinate polari e Keyframe • Un utile design pattern: ActionBar • ActionMode • Programmare l’ActionBar • Nuovi selettori per risorse • Navigare tra i fragment: Transizione d Back Stack • Rendering ad alte prestazioni • Supportare l’asincronia con i Loader • Renderscript: un invito alla • Fragments per tutti: il compatibility package programmazione 3D • ForuWayNavigation: un esempio “intermedio”
  • 6.
    NETWORKING • In questocapitolo saranno illustrate alcune tecniche per l’implementazione efficace di funzionalità di networking, dal semplice download di file alla gestione di complesse code di richieste concorrenti e decodifica di documenti XML e JSON • Outline • Sempre connessi • Introduzione all’Apache HttpClient • Il caso sporadico: l’AsyncTask • Recupero di file: il DownloadManager • Un approccio strutturato: il Task Pattern
  • 7.
    NFC • Inquesto capitolosarà introdotta la tecnologia NFC, che consente la realizzazione di applicazioni in grado di interagire con il mondo fisico attraverso il riconoscimento di tag e la lettura di dati a essi associati • Outline • Near Field Communication • NFC su Android • Hello Tag! • Leggere e scrivere i tag • BookNote • Android Beam
  • 8.
    PUSH NOTIFICATION • Inquestocapitolo saranno illustrate le tecniche di notifi- ca push via SMS e mediante il servizio Android Cloud to Device Messaging di Google • Outline • In attesa di dati... • Notifiche via SMS • Notifiche via C2DM
  • 9.
    BLUETOOTH • Inquesto capitolosaranno illustrate le caratteristiche del protocollo Bluetooth, l’implementazione dell’API Android e alcune tecniche avanzate che permettono di superare le limitazioni della libreria standard • Outline • Una vecchia conoscenza • Panoramica del protocollo Bluetooth • Setup per sperimentazione • L’API Bluetooth di Android • Le novità introdotte in Honeycomb • Le novità introdotte in Ice Cream Sandwich
  • 10.
    QUALITÀ DEL SOFTWARE •Controllare il livello di qualità del software prodotto è un problema intrinseco alla professione, che ci accompa- gna anche nello sviluppo Android. In questo capitolo ver- ranno esposti paradigmi, tools, procedure e semplici tips mirati a risolverlo, nel contesto dello sviluppo profes- sionale di applicazioni Android • Outline • Build professionali • Test Driven Development • Test automatico • Eseguire i test • Continuous Integration • La cassetta degli attrezzi • Strategia di test
  • 11.
    ICE CREAM SANDWICH • La versione 4.0 è l’ultima e più recente incarnazione della piattaforma Android, nome in codice: Ice Cream Sandwich. Questo capitolo fornisce al lettore una visione d’insieme della piattaforma dal punto di vista tecnico. Successivamente si approfondiranno le nuove tematiche e caratteristiche di Android che possono essere, nel parere di chi scrive, più interessanti per lo sviluppo di applicazioni innovative su questa piattaforma • Outline • Android 4.0: Ice Cream Sandwich • Riconoscimento facciale • La Calendar API • Easters: un calendario per la Pasqua • Wi-Fi Direct
  • 12.
    RISORSE • Sito ufficialedi Edizioni FAG (dove è possibile ordinare il libro) • http://www.fag.it/scheda.aspx?ID=38913 • Website di supporto al libro: • http://www.androidavanzato.it • Codice d’esempio • http://code.google.com/p/androidavanzato • e-mail • androidavanzato@gmail.com • Twitter • @androidavanzato
  • 13.
    AUTORI • Emanuele Di Saverio • è Ingegnere Informatico classe ‘82. È stato coinvolto in progetti Android per il mercato mondiale sin dal lancio della piattaforma e ha portato la sua passione per il mondo mobile e i metodi agili a industrie del settore finanziario, medicale e telco. È Senior Design Technologist presso lo studio di Milano della agenzia di innovazione globale frog. • Stefano Sanna • si occupa di programmazione su dispositivi mobili da circa 10 anni, ha maturato esperienza in progetti industriali e di ricerca. Ha partecipato alla realizzazione di importanti prodotti su piattaforme Android e Java Micro Edition per i principali operatori di telefonia mobile europei. Ha scritto numerose pubblicazioni sul mobile computing. Attualmente è responsabile dell’Android Lab di Open Reply.