SlideShare a Scribd company logo
1 of 12
Download to read offline
Sfruttare	il	codice	della	vs	app
Androidper	creare	applicazioni	
cross-platformcon	Xamarin
Gaetano	Paternò
tanopaterno@gmail.com
facebook.com/tanopaterno
Conosciamo	Xamarin
Xamarin è	una	piattaforma	per	lo	sviluppo	di	app per	dispositivi	 mobili	iOS,	Android e	
Windows	native	da	una	codebase C#/.NET	comune,	che	consente	di	ottenere	un	riutilizzo	del	
codice	tra	le	piattaforme	dal	75%	a	quasi	il	100%.
Le	app scritte	con	Xamarin e	C#	hanno	accesso	completo	alle	API	della	piattaforma	
sottostante,	oltre	alla	possibilità	di	creare	interfacce	utente	native	ed	eseguire	la	
compilazione	in	codice	nativo,	rendendo	 minimo	l'impatto	sulle	prestazioni	in	fase	di	runtime.
https://msdn.microsoft.com/it-IT/library/mt299001.aspx tanopaterno@gmail.com
facebook.com/tanopaterno
IDE	di	sviluppo	per	Xamarin
Xamarin Studio	è	un	IDE	moderno,	con	
numerose	funzioni	per	la	creazione	di	
Xamarin.iOS,	Xamarin.Mac,	Xamarin.Android
e	applicazioni	Xamarin.Forms. Esso	
comprende	un	editor,	il	debugging,	
l'integrazione	della	piattaforma	nativa	con	
iOS,	Mac	e	Android,	e	il	controllo	del	codice	
sorgente	integrato	per	citarne	solo	di	alcune	
delle	sue	molte	caratteristiche.
https://developer.xamarin.com/guides/cross-
platform/getting_started/visual_studio_with_xamarin/
https://developer.xamarin.com/guides/cross-platform/xamarin-studio/
Visual	Studio	è	l’IDE	di	casa	Microsoft	che	
non	ha	bisogno	di	presentazioni.
Possono	essere	sfruttate	tutte	le	sue	
potenzialità	per	la	creazione	di	applicazioni	
iOS,	Android e	Windows	sfruttando	
l’integrazione con	la	piattaforma nativa.
tanopaterno@gmail.com
facebook.com/tanopaterno
Nativo	vs	Forms
https://developer.xamarin.com/
• Le	applicazioni	che	richiedono	poca	
funzionalità	specifiche	della	
piattaforma.
• Applicazioni	dove	la	condivisione	del	
codice	è	più	importante	interfaccia	
utente	personalizzata.
• Gli	sviluppatori	che	hanno	esperienza	
con	XAML.
Xamarin.Forms è	meglio	per:
• Applicazioni	con	interazioni	che	
richiedono	un	comportamento	nativo.
• Le	applicazioni	che	utilizzano	molte	
API	specifiche	della	piattaforma.
• Applicazioni	in	cui	interfaccia	utente	
personalizzata	è	più	importante	di	
code	sharing.
Xamarin.Android è	meglio	per:
tanopaterno@gmail.com
facebook.com/tanopaterno
Requisiti	di	sistema
https://developer.xamarin.com/guides/cross-platform/getting_started/requirements/ tanopaterno@gmail.com
facebook.com/tanopaterno
Scaricare	Xamarin
https://www.xamarin.com/download tanopaterno@gmail.com
facebook.com/tanopaterno
Xamarin Android Player
https://www.xamarin.com/android-player
Xamarin Android Player	ha	una	
profonda	integrazione	con	Visual	
Studio	e	Studio	Xamarin e	una	
interfaccia	utente	nativa	sia	su	Mac	e	
di	Windows.
Android in	esecuzione	su	una	
macchina	virtuale	x86,	utilizzando	
l’accelerazione	e	la	virtualizzazione	
dell'hardware	e	OpenGL,	è	
significativamente	più	veloce	lo	stock	
Android Emulator.
tanopaterno@gmail.com
facebook.com/tanopaterno
Visual	Studio	Dev Essential
https://www.visualstudio.com/products/free-developer-offers-vs.aspx tanopaterno@gmail.com
facebook.com/tanopaterno
Costruire	applicazioni	cross	platform
https://developer.xamarin.com/guides/cross-
platform/application_fundamentals/building_cross_platform_applications/
Ecco	una	sintesi	dei	punti	chiave	per	la	creazione	di	Xamarin applicazioni	cross-platform:
•Utilizzare	C	# - Scrivi	le	tue	applicazioni	in	C#.
•Utilizzare	il	modello	di	progettazione	MVC - Sviluppare	l'interfaccia	utente	dell'applicazione	
utilizzando	il	pattern	Model	/	View /	Controller.
•Costruire	interfacce	utente	native - Ogni	applicazione	specifica	per	OS	fornisce	un	livello	di	
interfaccia	utente	diverso	(implementato	in	C	#	con	l'aiuto	di	strumenti	di	progettazione	UI	nativi.
Per	aumentare	la	quantità	di	riutilizzo	del	codice,	si	può	adottare	componenti	cross-platform
che	forniscono	servizi	comuni	in	tutti	questi	sistemi,	quali:
• SQLite-NET per	l'archiviazione	SQL	locale.	
• Xamarin	Plugin per	l'accesso	a	funzionalità	specifiche	del	dispositivo	tra	cui	la	macchina	
fotografica,	contatti	e	geolocalizzazione.
tanopaterno@gmail.com
facebook.com/tanopaterno
Shared Projects
https://developer.xamarin.com/guides/cross-
platform/application_fundamentals/shared_projects/
A	differenza	di	molti	altri	tipi	di	progetto	di	un	progetto	condiviso	non	ha	alcuna	uscita	(in	forma	
di	DLL),	perché	il	codice	viene	compilato	in	ogni	progetto	che	fa	riferimento	a	esso.
Concettualmente	l'intero	contenuto	del	progetto	condiviso	è	"copiato	in"	ogni	progetto	di	
riferimento	e	compilati	come	se	fosse	una	parte	di	loro.
tanopaterno@gmail.com
facebook.com/tanopaterno
Portable Class	Libraries
https://developer.xamarin.com/guides/cross-
platform/application_fundamentals/pcl/introduction_to_portable_
class_libraries/
Benefici:
• la	condivisione	di	codice	in	un	unico	progetto	che	può	
essere	consumato	da	altre	librerie	o	applicazioni.
• operazioni	di	refactoring interesserà	tutto	il	codice	caricato	
nella	soluzione.
• il	progetto	PCL	può	essere	facilmente	referenziato	da	altri	
progetti	in	una	soluzione.
Svantaggi:
• Poiché	la	stessa	libreria	di	classi	Portable è	condivisa	tra	più	
applicazioni,	non	è	possibile	fare	riferimento	a	librerie	
specifiche	della	piattaforma	(ad	es.	
Community.CsharpSqlite.WP7).
tanopaterno@gmail.com
facebook.com/tanopaterno

More Related Content

Viewers also liked

Microsoft Azure for DreamSpark Academic Tour - 22/01/2016
Microsoft Azure for DreamSpark Academic Tour - 22/01/2016Microsoft Azure for DreamSpark Academic Tour - 22/01/2016
Microsoft Azure for DreamSpark Academic Tour - 22/01/2016Gaetano Paternò
 
Italian C++ MeetUp - 24/10/2015
Italian C++ MeetUp - 24/10/2015Italian C++ MeetUp - 24/10/2015
Italian C++ MeetUp - 24/10/2015Gaetano Paternò
 
OpenDay 3 TIM WCap - 05/05/2016
OpenDay 3 TIM WCap - 05/05/2016OpenDay 3 TIM WCap - 05/05/2016
OpenDay 3 TIM WCap - 05/05/2016Gaetano Paternò
 
GdG DevFestMed 2016 - 06/11/2016
GdG DevFestMed 2016 - 06/11/2016GdG DevFestMed 2016 - 06/11/2016
GdG DevFestMed 2016 - 06/11/2016Gaetano Paternò
 
DevOpsHerous 2016 - 29/10/2016
DevOpsHerous 2016 - 29/10/2016DevOpsHerous 2016 - 29/10/2016
DevOpsHerous 2016 - 29/10/2016Gaetano Paternò
 
ancaman dibidang sosial budaya
ancaman dibidang sosial budayaancaman dibidang sosial budaya
ancaman dibidang sosial budayanoviasaharani
 
Laporan praktikum biologi Pertumbuhan dan Perkembangan
Laporan  praktikum biologi Pertumbuhan dan PerkembanganLaporan  praktikum biologi Pertumbuhan dan Perkembangan
Laporan praktikum biologi Pertumbuhan dan PerkembanganWafiqhah Abbas
 

Viewers also liked (9)

Microsoft Azure for DreamSpark Academic Tour - 22/01/2016
Microsoft Azure for DreamSpark Academic Tour - 22/01/2016Microsoft Azure for DreamSpark Academic Tour - 22/01/2016
Microsoft Azure for DreamSpark Academic Tour - 22/01/2016
 
Italian C++ MeetUp - 24/10/2015
Italian C++ MeetUp - 24/10/2015Italian C++ MeetUp - 24/10/2015
Italian C++ MeetUp - 24/10/2015
 
OpenDay 3 TIM WCap - 05/05/2016
OpenDay 3 TIM WCap - 05/05/2016OpenDay 3 TIM WCap - 05/05/2016
OpenDay 3 TIM WCap - 05/05/2016
 
Hour of Code - 13/01/2016
Hour of Code - 13/01/2016Hour of Code - 13/01/2016
Hour of Code - 13/01/2016
 
You that i missed
You that i missedYou that i missed
You that i missed
 
GdG DevFestMed 2016 - 06/11/2016
GdG DevFestMed 2016 - 06/11/2016GdG DevFestMed 2016 - 06/11/2016
GdG DevFestMed 2016 - 06/11/2016
 
DevOpsHerous 2016 - 29/10/2016
DevOpsHerous 2016 - 29/10/2016DevOpsHerous 2016 - 29/10/2016
DevOpsHerous 2016 - 29/10/2016
 
ancaman dibidang sosial budaya
ancaman dibidang sosial budayaancaman dibidang sosial budaya
ancaman dibidang sosial budaya
 
Laporan praktikum biologi Pertumbuhan dan Perkembangan
Laporan  praktikum biologi Pertumbuhan dan PerkembanganLaporan  praktikum biologi Pertumbuhan dan Perkembangan
Laporan praktikum biologi Pertumbuhan dan Perkembangan
 

Similar to Google IO Catania - 20/05/2016

Nativo vs Xamarin pro e contro
Nativo vs Xamarin pro e controNativo vs Xamarin pro e contro
Nativo vs Xamarin pro e controCarmelo Ruota
 
Nativo vs Xamarin: pro e contro
Nativo vs Xamarin: pro e controNativo vs Xamarin: pro e contro
Nativo vs Xamarin: pro e controMarco Rinaldi
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to XamarinGuido Magrin
 
Improve mobile development with Visual Studio 2017 for Mac & Visual Studio Te...
Improve mobile development with Visual Studio 2017 for Mac & Visual Studio Te...Improve mobile development with Visual Studio 2017 for Mac & Visual Studio Te...
Improve mobile development with Visual Studio 2017 for Mac & Visual Studio Te...Gaetano Paternò
 
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...Codemotion
 
Introduction to iOS development with Xamarin
Introduction to iOS development with XamarinIntroduction to iOS development with Xamarin
Introduction to iOS development with XamarinRaffaele Fanizzi
 
Xamarin & Cognitive Services Slides
Xamarin & Cognitive Services SlidesXamarin & Cognitive Services Slides
Xamarin & Cognitive Services SlidesFrancesco Bonacci
 
Federico Massi.it - Intro alle app mobile Cordova
Federico Massi.it - Intro alle app mobile CordovaFederico Massi.it - Intro alle app mobile Cordova
Federico Massi.it - Intro alle app mobile CordovaFederico Massi
 
Introduzione alle app Windows Universal
Introduzione alle app Windows UniversalIntroduzione alle app Windows Universal
Introduzione alle app Windows UniversalAlessandro Scardova
 
Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5Gabriele Gaggi
 
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaMulti-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaAndrea Dottor
 
Smau Napoli 2016 - Michele Aponte, Microsoft
Smau Napoli 2016 - Michele Aponte, MicrosoftSmau Napoli 2016 - Michele Aponte, Microsoft
Smau Napoli 2016 - Michele Aponte, MicrosoftSMAU
 
Flash Platform su dispositivi mobili
Flash Platform su dispositivi mobiliFlash Platform su dispositivi mobili
Flash Platform su dispositivi mobililuca mezzalira
 
EtnaDev 2015 - Windows Bridge
EtnaDev 2015 - Windows BridgeEtnaDev 2015 - Windows Bridge
EtnaDev 2015 - Windows BridgeGaetano Paternò
 
Lucidi relativi al DVD di Programmazione in C
Lucidi relativi al DVD di Programmazione in CLucidi relativi al DVD di Programmazione in C
Lucidi relativi al DVD di Programmazione in CFulvio Corno
 
Sviluppare una app mobile net oriented
Sviluppare una app mobile net orientedSviluppare una app mobile net oriented
Sviluppare una app mobile net orientedAlessandro Morvillo
 

Similar to Google IO Catania - 20/05/2016 (20)

Nativo vs Xamarin pro e contro
Nativo vs Xamarin pro e controNativo vs Xamarin pro e contro
Nativo vs Xamarin pro e contro
 
Nativo vs Xamarin: pro e contro
Nativo vs Xamarin: pro e controNativo vs Xamarin: pro e contro
Nativo vs Xamarin: pro e contro
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
 
Improve mobile development with Visual Studio 2017 for Mac & Visual Studio Te...
Improve mobile development with Visual Studio 2017 for Mac & Visual Studio Te...Improve mobile development with Visual Studio 2017 for Mac & Visual Studio Te...
Improve mobile development with Visual Studio 2017 for Mac & Visual Studio Te...
 
INTRO TO XAMARIN
INTRO TO XAMARININTRO TO XAMARIN
INTRO TO XAMARIN
 
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
 
Introduction to iOS development with Xamarin
Introduction to iOS development with XamarinIntroduction to iOS development with Xamarin
Introduction to iOS development with Xamarin
 
Xamarin & Cognitive Services Slides
Xamarin & Cognitive Services SlidesXamarin & Cognitive Services Slides
Xamarin & Cognitive Services Slides
 
Federico Massi.it - Intro alle app mobile Cordova
Federico Massi.it - Intro alle app mobile CordovaFederico Massi.it - Intro alle app mobile Cordova
Federico Massi.it - Intro alle app mobile Cordova
 
Intro xamarin forms
Intro xamarin formsIntro xamarin forms
Intro xamarin forms
 
Introduzione alle app Windows Universal
Introduzione alle app Windows UniversalIntroduzione alle app Windows Universal
Introduzione alle app Windows Universal
 
Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5
 
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaMulti-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
 
App World War
App World WarApp World War
App World War
 
Smau Napoli 2016 - Michele Aponte, Microsoft
Smau Napoli 2016 - Michele Aponte, MicrosoftSmau Napoli 2016 - Michele Aponte, Microsoft
Smau Napoli 2016 - Michele Aponte, Microsoft
 
Flash Platform su dispositivi mobili
Flash Platform su dispositivi mobiliFlash Platform su dispositivi mobili
Flash Platform su dispositivi mobili
 
platforms
platformsplatforms
platforms
 
EtnaDev 2015 - Windows Bridge
EtnaDev 2015 - Windows BridgeEtnaDev 2015 - Windows Bridge
EtnaDev 2015 - Windows Bridge
 
Lucidi relativi al DVD di Programmazione in C
Lucidi relativi al DVD di Programmazione in CLucidi relativi al DVD di Programmazione in C
Lucidi relativi al DVD di Programmazione in C
 
Sviluppare una app mobile net oriented
Sviluppare una app mobile net orientedSviluppare una app mobile net oriented
Sviluppare una app mobile net oriented
 

Google IO Catania - 20/05/2016