presenta
www.wpc2015.it – [email protected] - +39 02 365738.11 - #wpc15it 1
VS002 -Da Windows ad Android e iOS in 60 minuti con Xamarin
blog.corradocavalli.com
@corcav
Corrado Cavalli – "Bug innovator" @ Gaia
Reinventare la ruota?
• A quanti di voi piace reinventare la ruota?
• DRY: don’t repeat yourself
• Quando sviluppiamo un app nativa per Android, iOS e Windows facciamo esattamente questo…
• Ok, ma è la tecnologia che ce lo impone…
iOS: XCode / Objective-C o Swift / MAC platform
Android: Java/Android Studio
Windows: Visual Studio / C#
www.wpc2015.it – [email protected] - +39 02 365738.11 - #wpc15it 2
…e se…
• Potessi ottenere lo stesso risultato usando:
• Visual Studio
• C# (o F#)
• Condividendo le "parti comuni" tra iOS, Android e Windows?
• Totale accessibilità delle API di ogni singola piattaforma
• Ottenendo un app 100% nativa
• Nessun compromesso
• Risparmiando sullo sviluppo e relativa manutenzione?
www.wpc2015.it – [email protected] - +39 02 365738.11 - #wpc15it 3
www.wpc2015.it – [email protected] - +39 02 365738.11 - #wpc15it 4
• Xamarin è una società indipendente partner di Microsoft e non solo
• Fondata nel 2009 ma vecchia conoscenza dal 2001… Mono vi ricorda qualcosa?
250+ dipendenti, 15K clienti, 1.200.000 sviluppatori
La versione ‘starter ’ è inclusa nell’installazione di Visual Studio 2015
Tutte le versioni di Visual Studio sono supportate (incluse 2012 e 2013)
Benvenuti nel magico mondo di Xamarin
Supporto di Xamarin
alle nuove API di
Google e Apple
Oltre 20K pacchetti
NuGet e component
Xamarin
Xamarin Studio
Visual Studio
Designer iOS e Android
integrati
www.wpc2015.it – [email protected] - +39 02 365738.11 - #wpc15it 5
• "Anything you can do in Objective-C and Java can be done in C# with Xamarin.”
• Le API di Android e iOS vengono ‘mappate’ (bindings) verso il mondo .NET
• Tutto il mondo .NET (C# 6.0, async/await, etc…) sono disponibili
• https://xamarin.com/faq
Come funziona?
www.wpc2015.it – [email protected] - +39 02 365738.11 - #wpc15it 6
• Windows per Visual Studio, Android e Windows.
• Mac per sviluppo iOS
• I tool di compilazione sono quelli di Xcode In alcuni casi bisogna usare Interface Builder
• Sviluppare app iOS con Visual Studio su Windows?
Cosa mi serve?
http://www.cazzulino.com/how-vs-builds-on-mac-with-xamarin.html
www.wpc2015.it – [email protected] - +39 02 365738.11 7
• I progetti platform-specific referenziano librerie cross-platform che contengo il codice che è possibile condividere.
• E’ possibile usare code sharing, compilazione condizionale, partial classes…
• IOC
• E’ possibile condividere anche la UI: Xamarin Forms
Ok, ma come condivido il codice?
"Classic" Xamarin
www.wpc2015.it – [email protected] - +39 02 365738.11 8
To-Do List
Soluzione unica per Windows, iOS e Android
www.wpc2015.it – [email protected] - +39 02 365738.11 9
Architettura• Azure, Web API, EF e SQL Azure
• MVVM
• Visual Studio e Xamarin
• PCL
Web
APISQLAzure
Data
Service
PCL
MVVM
PCL
www.wpc2015.it – [email protected] - +39 02 365738.11 10
MVVM: Model View ViewModel
Android iOSWindows
Markup
C#
VIEW
Markup
C#
VIEW
Markup
C#
MODEL
C# (Data, Services…)
VIEWMODEL
C# (Data, Services…)
Databinding Databinding Databinding
www.wpc2015.it – [email protected] - +39 02 365738.11 - #wpc15it 11
Librerie di supporto per MVVM cross-platform
www.wpc2015.it – [email protected] - +39 02 365738.11 - #wpc15it 12
Basta slides! Fammi vedere il codice!!!
www.wpc2015.it – [email protected] - +39 02 365738.11 - #wpc15it 13
Organizzazione MVVM
LoginViewModel HomeViewModel DetailViewModel
ViewModelLocator
Init (INavigationService, IDialogService, ISettings)
www.wpc2015.it – [email protected] - +39 02 365738.11 - #wpc15it 14
iOS/Android Adapters
Adapter LayoutInflater XML
ToDoItem
View
UITableViewSource
ToDoItemCell
GetCell(index)
RowsInSection)
RowSelected
www.wpc2015.it – [email protected] - +39 02 365738.11 - #wpc15it 15
• Verissimo! Ma dipende dal tipo di app che dovete sviluppare.
• Forms = Applicazioni Business
• Più complicati per applicazioni consumer o con UI complesse
• Valutate bene la scelta.
Ok, ma con Xamarin Forms è molto più facile…
www.wpc2015.it – [email protected] - +39 02 365738.11 - #wpc15it 16
Il futuro è cross-platform
Corsi consigliati
MOCxxx - Titolo
MOCxxx - Titolo
www.wpc2015.it – [email protected] - +39 02 365738.11 - #wpc15it 18
Contatti OverNetEducation
OverNet [email protected]
www.overneteducation.it
Tel. 02 365738
@overnete
www.facebook.com/OverNetEducation
www.linkedin.com/company/overnet-solutionswww.wpc2015.it
www.wpc2015.it – [email protected] - +39 02 365738.11 - #wpc15it 19