SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
ì
Introduzione ad Android
/me
Ing. Francesco Florio
•  Mobile design and developer dal 2009
•  Founder and manager del GDG Cosenza
•  Formazione per aziende, corsi universitari e master
Contatti
•  floriofrancesco@gmail.com
•  www.francescoflorio.info (work in progress)
•  @fr4style
•  https://plus.google.com/u/0/+FrancescoFlorio
•  https://www.linkedin.com/pub/francesco-florio/21/62/a68
CodeWeek 2015 - Introduzione allo sviluppo Android 14/10/15
/start
•  Android è il sistema operativo mobile più diffuso al mondo
•  Sviluppo gratuito
•  Open-source
•  Accesso gratuito a documentazione, tutorial e guide 
•  SDK, IDE e tools sono disponibili gratuitamente per tutti i sistemi
operativi desktop (Windows, OSX, Linux)
•  Per distribuire le applicazioni su Play Store è richiesta una licenza
(costo di circa 35$ una tantum), ma è facoltativa.
•  Market alternativi
•  Sviluppo basato su linguaggi noti
•  Java & XML
•  C/C++ per lo sviluppo nativo (Android NDK)
•  Android è in costante evoluzione
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
/start
•  Limiti di Android e dello sviluppo mobile
•  Risorse limitate
•  CPU, batteria…
•  Display limitati
•  Una sola schermata visibile per volta
•  Lifecycle delle applicazioni differente dal mondo
desktop/server
•  Stand-by, eventi esterni, background…
•  Frammentazione
•  Hardware
•  Software
CodeWeek 2015 - Introduzione allo sviluppo Android 14/10/15
/start
•  Sito ufficiale dedicato agli sviluppatori
•  http://developer.android.com/
•  Documentazione divisa in tre sezioni
•  Design: imparare come progettare graficamente un’App Android -
Material Design
•  Develop: Raccoglie la definizione completa delle API disponibili,
guide, tutorial, le ultime novità della piattaforma, etc…
•  Distribute: Descrive come pubblicare la propria App su Play Store,
come ottenere nuovi utenti e mantenerli, come monetizzare, etc…
•  Libri ???
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
/start
•  Udacity: corsi online e NanoDegree
https://www.udacity.com/courses/android
•  Non solo tecnologie Android
•  Numerosi corsi online gratuiti
•  Certificazioni a pagamento
•  Esempio:
https://www.udacity.com/course/android-development-for-beginners--ud837


14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
/start
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
/start
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
/install
•  IDE and developing tools
https://developer.android.com/sdk/index.html
CodeWeek 2015 - Introduzione allo sviluppo Android 14/10/15
/install
Device fisico
•  Per sviluppare su Android è consigliato un device fisico
•  Testing, User Experience
•  Device Certificati da Google
Emulatore
•  Android offre i suoi emulatori
•  Smartphone, Tablet, Wear…
•  Performance non entusiasmanti
•  Genymotion
•  Emulatore Android realizzato da una startup francese
•  E’ presente una versione gratuita
•  20 device pre-configurati, con la possibilità di crearne di nuovi
•  https://www.genymotion.com/
•  Samsung Remote Test Lab
•  http://developer.samsung.com/remotetestlab/rtlAboutRTL.action
CodeWeek 2015 - Introduzione allo sviluppo Android 14/10/15
/develop
•  Studia costantemente e resta aderente il più possibile
alle guide-line Android
•  Codice scritto 6 mesi fa può avere codice obsoleto
•  Non aderire alle guide-line Android può causare comportamenti inattesi
•  Non reinventare la ruota
•  Molti dei problemi che si affrontano durante lo sviluppo sono comuni alla maggior
parte dei progetti 
•  Molto probabilmente qualcuno lo ha risolto prima di noi
•  Utilizzare librerie terze parti se:
•  Sono rilasciate con licenza compatibile con il progetto corrente
•  Sono state progettate e realizzate da fonti attendibili (Square, Facebook…)
•  Sono ben documentate
•  Sono largamente diffuse (saranno disponibili esempi e tutorial oltre alla documentazione
ufficiale)
•  Sono mantenute costantemente
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
/develop
•  Gestione immagini:
•  Picasso https://github.com/square/picasso
•  Glide https://github.com/bumptech/glide
•  Fresco http://frescolib.org/
•  Consumo API Rest
•  Retrofit https://github.com/square/retrofit
•  Robospice https://github.com/stephanenicolas/robospice
•  Parsing Json
•  Gson https://code.google.com/p/google-gson/
•  Gestione oggetti Parcelable
•  Parceler https://github.com/johncarl81/parceler
•  Gestione oggetti POJO (Plain Old Java Object)
•  Lombok https://projectlombok.org/
•  Gestione eventi asincroni
•  RxJava https://github.com/ReactiveX/RxJava
•  RxAndroid https://github.com/ReactiveX/RxAndroid
•  Uso delle lamba expression su Android
•  Retrolambda https://github.com/evant/gradle-retrolambda
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
/develop
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
Lanciare Android Studio

Dal menu Quick Start
scegliere:
•  Start a new Android
Studio project
/develop
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
Riempi i campi e cliccare su Next
/develop
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
Scegli il target dell’applicazione e la min SDK
/develop
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
Scegli il template di partenza, ad esempio Scrolling Activity
/develop
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
Inserisci gli ultimi dati e clicca sul pulsante Finish
/develop
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
Esegui
l’applicazione,
cliccando sul
pulsante Play
nella toolbar
/develop
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
/develop
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
Dal menu Quick Start
selezionare
•  Import an Android code
sample
This task required internet
connection!
/develop
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
Scegli un esempio e
clicca sul pulsante
Next
/develop
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
Segli dove salvare il progetto e clicca su Finish. Il codice sarà scaricato
automaticamente dal repository remoto al file system locale e caricato
automaticamente in Android Studio.
/develop
CodeWeek 2015 - Introduzione allo sviluppo Android 14/10/15
Crea un repository remoto per i tuoi progetti
•  Version control system (esempio git, svn, mercurial)
•  Aiutano lo sviluppo in team (i.e. merge di codice)
•  Il codice è protetto da danni accidentali
•  Aiuta gli sviluppatori a controllare l’incremento del codice,
consentendo di tornare alle versioni precedenti (se necessario)
•  Android Studio contiente al suo interno un client GIT
•  GitHub offre repository pubblici gratuiti
https://github.com/
•  Bitbucket offre repository pubblici e privati gratuiti
https://www.bitbucket.org
/develop
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
/gradle
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
Android Build System (adb)
•  Toolkit usato per compilare, testare, eseguire ed impacchettare l’App
•  Precedentemente basato su ANT, oggi consiste in un estensione
Gradle per Android
•  I file di build sono chiamati build.gradle
•  Uno per l’applicazione e uno per ogni modulo
•  File di testo scritto in sintassi Groovy
•  Si occupa di definire le caratteristiche dell’App e le dipendenze, con
la possibilità di inserire logica di build customizzata
Referenze
http://developer.android.com/tools/building/plugin-for-gradle.html
http://www.gradle.org/
http://groovy.codehaus.org/
/gradle
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
/androidmanifest
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
/gdgcosenza
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
Cos’è un GDG
•  I GDG sono newtork di sviluppatori interessati alle
tecnologie di Google
•  Rete mondiale presente in 114 nazioni, 682 gruppi e
conta 2.968 eventi negli ultimi sei mesi
•  Senza fini di lucro e in partnership con Google
/gdgcosenza
Il GDG Cosenza
•  Aperto a tutti ma orientato agli sviluppatori
•  Concentrato sullo sviluppo Android nativo
•  Connesso al network internazionale dei GDG ma
indipendente nelle scelte organizzative
•  Orientato alla condivisione della conoscenza
•  Online e “offline”
•  Gratuito
•  Divertente ;)
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
/gdgcosenza
Segui il GDG Cosenza
•  Online:
•  Sito web ufficiale: 
•  http://www.gdgcosenza.it/
•  Pagina ufficiale di Facebook: 
•  https://www.facebook.com/gdgcosenza
•  Account ufficiale Twitter: 
•  https://twitter.com/gdgcosenza
•  Pagina ufficiale G+: 

•  https://plus.google.com/+GdgcosenzaIt
•  Community G+:
•  https://plus.google.com/communities/114602432029504710573
•  Directory Google Developers Group 
•  https://developers.google.com/groups/directory
•  Eventi:
•  TAG Cosenza
•  Pub & pizzerie
•  Unical
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
/gdgcosenza
Progetti attivi
•  Incontri mensili 
•  Blog GDG Cosenza con articoli tecnici dei nostri membri
•  Utilizzo delle pagine Facebook e Google+ per
condividere contenuti interessanti e utili alla community
•  Elenco aggiornato degli sviluppatori Android
•  Community di beta tester
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
/help
Q&A
14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android

Contenu connexe

Tendances

Android, panoramica e sviluppo
Android, panoramica e sviluppoAndroid, panoramica e sviluppo
Android, panoramica e sviluppoLorenzo Braghetto
 
Presentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoPresentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoDiego La Monica
 
App di successo quali strumenti? e le performance?
App di successo quali strumenti? e le performance?App di successo quali strumenti? e le performance?
App di successo quali strumenti? e le performance?Diego La Monica
 
Competenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del webCompetenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del webDiego La Monica
 
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...Antonio Gallo
 
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouchProgrammiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouchStefano Ottaviani
 
Cv davide rota_ita
Cv davide rota_itaCv davide rota_ita
Cv davide rota_itaDavide Rota
 
Introduction to iOS development with Xamarin
Introduction to iOS development with XamarinIntroduction to iOS development with Xamarin
Introduction to iOS development with XamarinRaffaele Fanizzi
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione AvanzataStefano Sanna
 
Android programming (ita)
Android programming (ita)Android programming (ita)
Android programming (ita)Vinu Iaconissi
 

Tendances (14)

Android, panoramica e sviluppo
Android, panoramica e sviluppoAndroid, panoramica e sviluppo
Android, panoramica e sviluppo
 
Presentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoPresentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successo
 
App di successo quali strumenti? e le performance?
App di successo quali strumenti? e le performance?App di successo quali strumenti? e le performance?
App di successo quali strumenti? e le performance?
 
Competenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del webCompetenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del web
 
Android
AndroidAndroid
Android
 
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
Le novità di Ionic 4- Il framework basato su Angular per sviluppare applicazi...
 
WPD plumi
WPD   plumiWPD   plumi
WPD plumi
 
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouchProgrammiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
 
Cv davide rota_ita
Cv davide rota_itaCv davide rota_ita
Cv davide rota_ita
 
Mobile development .net
Mobile development .netMobile development .net
Mobile development .net
 
Introduction to iOS development with Xamarin
Introduction to iOS development with XamarinIntroduction to iOS development with Xamarin
Introduction to iOS development with Xamarin
 
MonoTouch, un anno dopo
MonoTouch, un anno dopoMonoTouch, un anno dopo
MonoTouch, un anno dopo
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione Avanzata
 
Android programming (ita)
Android programming (ita)Android programming (ita)
Android programming (ita)
 

Similaire à Introduzione ad Android

Sviluppo di applicazioni mobile con PhoneGap
Sviluppo di applicazioni mobile con PhoneGapSviluppo di applicazioni mobile con PhoneGap
Sviluppo di applicazioni mobile con PhoneGapDotNetMarche
 
Ecco gli strumenti necessari per sviluppare la tua App Android
Ecco gli strumenti necessari per sviluppare la tua App AndroidEcco gli strumenti necessari per sviluppare la tua App Android
Ecco gli strumenti necessari per sviluppare la tua App AndroidFlavius-Florin Harabor
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileRoberto Cappelletti
 
Horizontal and vertical integration
Horizontal and vertical integrationHorizontal and vertical integration
Horizontal and vertical integrationT3basilicata
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatoreSMAU
 
Slide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfSlide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfFlorence Consulting
 
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developerssparkfabrik
 
Programmazione mobile: ANDROID
Programmazione mobile: ANDROIDProgrammazione mobile: ANDROID
Programmazione mobile: ANDROIDPaolo Tosato
 
Festivalmente: Getting Things done
Festivalmente: Getting Things doneFestivalmente: Getting Things done
Festivalmente: Getting Things doneVincenzo Garambone
 
Creare un’APP di successo, pubblicizzarla, monetizzare. Speaker: Luciano Blan...
Creare un’APP di successo, pubblicizzarla, monetizzare. Speaker: Luciano Blan...Creare un’APP di successo, pubblicizzarla, monetizzare. Speaker: Luciano Blan...
Creare un’APP di successo, pubblicizzarla, monetizzare. Speaker: Luciano Blan...Luciano Blancato
 
Sviluppare una app mobile net oriented
Sviluppare una app mobile net orientedSviluppare una app mobile net oriented
Sviluppare una app mobile net orientedAlessandro Morvillo
 
Meet no Neet: presentazione del progetto App per organizzare eventi
Meet no Neet: presentazione del progetto App per organizzare eventiMeet no Neet: presentazione del progetto App per organizzare eventi
Meet no Neet: presentazione del progetto App per organizzare eventiFondazione Mondo Digitale
 
Code metrics
Code metricsCode metrics
Code metricsKlab
 
Sviluppo di applicazioni mobile cross platform
Sviluppo di applicazioni mobile cross platformSviluppo di applicazioni mobile cross platform
Sviluppo di applicazioni mobile cross platformDan Ardelean
 
Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
 Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progettoMicrosoft Mobile Developer
 
Real Solutions Day - Cross-Platform con Xamarin
Real Solutions Day - Cross-Platform con XamarinReal Solutions Day - Cross-Platform con Xamarin
Real Solutions Day - Cross-Platform con XamarinRiccardo Cappello
 
Conoscere Android per poterlo Programmare
Conoscere Android per poterlo Programmare Conoscere Android per poterlo Programmare
Conoscere Android per poterlo Programmare Flavius-Florin Harabor
 

Similaire à Introduzione ad Android (20)

Sviluppo di applicazioni mobile con PhoneGap
Sviluppo di applicazioni mobile con PhoneGapSviluppo di applicazioni mobile con PhoneGap
Sviluppo di applicazioni mobile con PhoneGap
 
Ecco gli strumenti necessari per sviluppare la tua App Android
Ecco gli strumenti necessari per sviluppare la tua App AndroidEcco gli strumenti necessari per sviluppare la tua App Android
Ecco gli strumenti necessari per sviluppare la tua App Android
 
platforms
platformsplatforms
platforms
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobile
 
Horizontal and vertical integration
Horizontal and vertical integrationHorizontal and vertical integration
Horizontal and vertical integration
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatore
 
Slide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfSlide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdf
 
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developers
 
Programmazione mobile: ANDROID
Programmazione mobile: ANDROIDProgrammazione mobile: ANDROID
Programmazione mobile: ANDROID
 
Festivalmente: Getting Things done
Festivalmente: Getting Things doneFestivalmente: Getting Things done
Festivalmente: Getting Things done
 
Creare un’APP di successo, pubblicizzarla, monetizzare. Speaker: Luciano Blan...
Creare un’APP di successo, pubblicizzarla, monetizzare. Speaker: Luciano Blan...Creare un’APP di successo, pubblicizzarla, monetizzare. Speaker: Luciano Blan...
Creare un’APP di successo, pubblicizzarla, monetizzare. Speaker: Luciano Blan...
 
Sviluppare una app mobile net oriented
Sviluppare una app mobile net orientedSviluppare una app mobile net oriented
Sviluppare una app mobile net oriented
 
Meet no Neet: presentazione del progetto App per organizzare eventi
Meet no Neet: presentazione del progetto App per organizzare eventiMeet no Neet: presentazione del progetto App per organizzare eventi
Meet no Neet: presentazione del progetto App per organizzare eventi
 
LucianoZu_CV
LucianoZu_CVLucianoZu_CV
LucianoZu_CV
 
Code metrics
Code metricsCode metrics
Code metrics
 
Introduzione ad Android
Introduzione ad AndroidIntroduzione ad Android
Introduzione ad Android
 
Sviluppo di applicazioni mobile cross platform
Sviluppo di applicazioni mobile cross platformSviluppo di applicazioni mobile cross platform
Sviluppo di applicazioni mobile cross platform
 
Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
 Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
 
Real Solutions Day - Cross-Platform con Xamarin
Real Solutions Day - Cross-Platform con XamarinReal Solutions Day - Cross-Platform con Xamarin
Real Solutions Day - Cross-Platform con Xamarin
 
Conoscere Android per poterlo Programmare
Conoscere Android per poterlo Programmare Conoscere Android per poterlo Programmare
Conoscere Android per poterlo Programmare
 

Introduzione ad Android

  • 2. /me Ing. Francesco Florio •  Mobile design and developer dal 2009 •  Founder and manager del GDG Cosenza •  Formazione per aziende, corsi universitari e master Contatti •  floriofrancesco@gmail.com •  www.francescoflorio.info (work in progress) •  @fr4style •  https://plus.google.com/u/0/+FrancescoFlorio •  https://www.linkedin.com/pub/francesco-florio/21/62/a68 CodeWeek 2015 - Introduzione allo sviluppo Android 14/10/15
  • 3. /start •  Android è il sistema operativo mobile più diffuso al mondo •  Sviluppo gratuito •  Open-source •  Accesso gratuito a documentazione, tutorial e guide •  SDK, IDE e tools sono disponibili gratuitamente per tutti i sistemi operativi desktop (Windows, OSX, Linux) •  Per distribuire le applicazioni su Play Store è richiesta una licenza (costo di circa 35$ una tantum), ma è facoltativa. •  Market alternativi •  Sviluppo basato su linguaggi noti •  Java & XML •  C/C++ per lo sviluppo nativo (Android NDK) •  Android è in costante evoluzione 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
  • 4. /start •  Limiti di Android e dello sviluppo mobile •  Risorse limitate •  CPU, batteria… •  Display limitati •  Una sola schermata visibile per volta •  Lifecycle delle applicazioni differente dal mondo desktop/server •  Stand-by, eventi esterni, background… •  Frammentazione •  Hardware •  Software CodeWeek 2015 - Introduzione allo sviluppo Android 14/10/15
  • 5. /start •  Sito ufficiale dedicato agli sviluppatori •  http://developer.android.com/ •  Documentazione divisa in tre sezioni •  Design: imparare come progettare graficamente un’App Android - Material Design •  Develop: Raccoglie la definizione completa delle API disponibili, guide, tutorial, le ultime novità della piattaforma, etc… •  Distribute: Descrive come pubblicare la propria App su Play Store, come ottenere nuovi utenti e mantenerli, come monetizzare, etc… •  Libri ??? 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
  • 6. /start •  Udacity: corsi online e NanoDegree https://www.udacity.com/courses/android •  Non solo tecnologie Android •  Numerosi corsi online gratuiti •  Certificazioni a pagamento •  Esempio: https://www.udacity.com/course/android-development-for-beginners--ud837 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
  • 7. /start 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
  • 8. /start 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
  • 9. /install •  IDE and developing tools https://developer.android.com/sdk/index.html CodeWeek 2015 - Introduzione allo sviluppo Android 14/10/15
  • 10. /install Device fisico •  Per sviluppare su Android è consigliato un device fisico •  Testing, User Experience •  Device Certificati da Google Emulatore •  Android offre i suoi emulatori •  Smartphone, Tablet, Wear… •  Performance non entusiasmanti •  Genymotion •  Emulatore Android realizzato da una startup francese •  E’ presente una versione gratuita •  20 device pre-configurati, con la possibilità di crearne di nuovi •  https://www.genymotion.com/ •  Samsung Remote Test Lab •  http://developer.samsung.com/remotetestlab/rtlAboutRTL.action CodeWeek 2015 - Introduzione allo sviluppo Android 14/10/15
  • 11. /develop •  Studia costantemente e resta aderente il più possibile alle guide-line Android •  Codice scritto 6 mesi fa può avere codice obsoleto •  Non aderire alle guide-line Android può causare comportamenti inattesi •  Non reinventare la ruota •  Molti dei problemi che si affrontano durante lo sviluppo sono comuni alla maggior parte dei progetti •  Molto probabilmente qualcuno lo ha risolto prima di noi •  Utilizzare librerie terze parti se: •  Sono rilasciate con licenza compatibile con il progetto corrente •  Sono state progettate e realizzate da fonti attendibili (Square, Facebook…) •  Sono ben documentate •  Sono largamente diffuse (saranno disponibili esempi e tutorial oltre alla documentazione ufficiale) •  Sono mantenute costantemente 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
  • 12. /develop •  Gestione immagini: •  Picasso https://github.com/square/picasso •  Glide https://github.com/bumptech/glide •  Fresco http://frescolib.org/ •  Consumo API Rest •  Retrofit https://github.com/square/retrofit •  Robospice https://github.com/stephanenicolas/robospice •  Parsing Json •  Gson https://code.google.com/p/google-gson/ •  Gestione oggetti Parcelable •  Parceler https://github.com/johncarl81/parceler •  Gestione oggetti POJO (Plain Old Java Object) •  Lombok https://projectlombok.org/ •  Gestione eventi asincroni •  RxJava https://github.com/ReactiveX/RxJava •  RxAndroid https://github.com/ReactiveX/RxAndroid •  Uso delle lamba expression su Android •  Retrolambda https://github.com/evant/gradle-retrolambda 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
  • 13. /develop 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android Lanciare Android Studio Dal menu Quick Start scegliere: •  Start a new Android Studio project
  • 14. /develop 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android Riempi i campi e cliccare su Next
  • 15. /develop 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android Scegli il target dell’applicazione e la min SDK
  • 16. /develop 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android Scegli il template di partenza, ad esempio Scrolling Activity
  • 17. /develop 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android Inserisci gli ultimi dati e clicca sul pulsante Finish
  • 18. /develop 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android Esegui l’applicazione, cliccando sul pulsante Play nella toolbar
  • 19. /develop 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
  • 20. /develop 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android Dal menu Quick Start selezionare •  Import an Android code sample This task required internet connection!
  • 21. /develop 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android Scegli un esempio e clicca sul pulsante Next
  • 22. /develop 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android Segli dove salvare il progetto e clicca su Finish. Il codice sarà scaricato automaticamente dal repository remoto al file system locale e caricato automaticamente in Android Studio.
  • 23. /develop CodeWeek 2015 - Introduzione allo sviluppo Android 14/10/15 Crea un repository remoto per i tuoi progetti •  Version control system (esempio git, svn, mercurial) •  Aiutano lo sviluppo in team (i.e. merge di codice) •  Il codice è protetto da danni accidentali •  Aiuta gli sviluppatori a controllare l’incremento del codice, consentendo di tornare alle versioni precedenti (se necessario) •  Android Studio contiente al suo interno un client GIT •  GitHub offre repository pubblici gratuiti https://github.com/ •  Bitbucket offre repository pubblici e privati gratuiti https://www.bitbucket.org
  • 24. /develop 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
  • 25. /gradle 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android Android Build System (adb) •  Toolkit usato per compilare, testare, eseguire ed impacchettare l’App •  Precedentemente basato su ANT, oggi consiste in un estensione Gradle per Android •  I file di build sono chiamati build.gradle •  Uno per l’applicazione e uno per ogni modulo •  File di testo scritto in sintassi Groovy •  Si occupa di definire le caratteristiche dell’App e le dipendenze, con la possibilità di inserire logica di build customizzata Referenze http://developer.android.com/tools/building/plugin-for-gradle.html http://www.gradle.org/ http://groovy.codehaus.org/
  • 26. /gradle 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
  • 27. /androidmanifest 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
  • 28. /gdgcosenza 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android Cos’è un GDG •  I GDG sono newtork di sviluppatori interessati alle tecnologie di Google •  Rete mondiale presente in 114 nazioni, 682 gruppi e conta 2.968 eventi negli ultimi sei mesi •  Senza fini di lucro e in partnership con Google
  • 29. /gdgcosenza Il GDG Cosenza •  Aperto a tutti ma orientato agli sviluppatori •  Concentrato sullo sviluppo Android nativo •  Connesso al network internazionale dei GDG ma indipendente nelle scelte organizzative •  Orientato alla condivisione della conoscenza •  Online e “offline” •  Gratuito •  Divertente ;) 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
  • 30. /gdgcosenza Segui il GDG Cosenza •  Online: •  Sito web ufficiale: •  http://www.gdgcosenza.it/ •  Pagina ufficiale di Facebook: •  https://www.facebook.com/gdgcosenza •  Account ufficiale Twitter: •  https://twitter.com/gdgcosenza •  Pagina ufficiale G+: •  https://plus.google.com/+GdgcosenzaIt •  Community G+: •  https://plus.google.com/communities/114602432029504710573 •  Directory Google Developers Group •  https://developers.google.com/groups/directory •  Eventi: •  TAG Cosenza •  Pub & pizzerie •  Unical 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
  • 31. /gdgcosenza Progetti attivi •  Incontri mensili •  Blog GDG Cosenza con articoli tecnici dei nostri membri •  Utilizzo delle pagine Facebook e Google+ per condividere contenuti interessanti e utili alla community •  Elenco aggiornato degli sviluppatori Android •  Community di beta tester 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android
  • 32. /help Q&A 14/10/15CodeWeek 2015 - Introduzione allo sviluppo Android