SlideShare une entreprise Scribd logo
1  sur  25
Costruire app per WinPhone,
iOS e Android con C# e Xamarin
Fabio Cozzolino
• Sviluppare un’app cross-platform
– Target: iOS, Android e Windows Phone
• Condividere quanto più codice possibile tra le
diverse piattaforme
• Ottimizzare i tempi di sviluppo e centralizzare la
code base
obiettivi
native apps vs web apps
cross-platform development
Write once, run
everywhere AND be
native?
Anatomia di una app nativa
Il look-and-feel delle app Xamarin sembra nativo, perchè è nativo!
Native User Interfaces Native API Access Native Performance
• evoluzione di mono (ximian, novell...)
• framework sempre aggiornato e tools di sviluppo
– binding e accesso alle API native di iOS e Android
– aggiornamento entro le 24 ore successive ad ogni
rilascio ufficiale
– ambiente di sviluppo (Xamarin Studio e/o Visual
Studio)
• C# everywhere
– permette il riutilizzo delle nostre conoscenze in
.NET
• riutilizzo del codice
Xamarin?
HELLO XAMARIN WORLD!
DEMO
come funziona xamarin?
• compilazione nativa
– devono essere incluse le librerie
Xamarin/Mono utilizzate
– minimizzazione del pacchetto con il
Linker (30% più piccolo)
• iOS: AOT (ahead-of-time)
– precompilazione per ARM con mtouch
• Android: JIT (just-in-time)
– compilato in bytecode ed eseguito
nella MonoVM (inclusa)
– esecuzione side-by-side con la DalvikVM
– è possibile utilizzare anche le
funzionalità Java esposte dalla Dalvik
come condivido il codice?
File Linking
... e uso le costanti di compilazione condizionale
Shared Project
Stesso del file linking, ma più semplice
Portable Class Library (PCL)
1 assembly + piattaforme
supporto completo in Visual Studio 2013
e in Xamarin Studio
portable class library
• codebase centralizzata
• compatibilità attraverso limitazione
(esempio: supporto al MVVM limitato)
• non disponibile con versioni del .NET Framework antecedenti
alla 4.5 (manca la ObservableCollection, per esempio)
• reference alla System.Window necessaria
• richiedono un approccio architetturale più
avanzato
Xamarin 3.0
• Semplificazione del Code Sharing
– Shared Project
• Xamarin.Form
– Cross-platform UI
• Aggiunto il designer (storyboard) Xamarin per iOS
– Su Xamarin Studio e Visual Studio
• Potenziamento del plugin per Visual Studio e di
Xamarin Studio
• Supporto a F#, NuGet e documentazione della BCL
Cosa serve per lo sviluppo
• Xamarin Studio
• Un account Apple Developer o Google Developer
• Android SDK
• Un Mac con Xcode
• Ma anche Windows 
– Xamarin Plugin per
Visual Studio
– Un mac che agisce da
server di compilazione
VISUAL STUDIO? YES WE CAN!
DEMO
Architecting mobile apps
cosa possiamo condividere
Business Logic
View Models
Navigation
Entities
Web Services Client
Data Access
…ma anche la UI 
Traditional Xamarin approach
Shared App Logic
Native UI
C#
Native UI
C#
Native UI
C#
Shared C# App Logic
Shared C# App Logic
Shared App Logic
Shared UI
Code
Android
UI Code
Windows
UI Code
in C#
Shared App Logic
Shared App Logic
iOS
UI
Android
UI
Windows
UI
Shared UI Code
iOS UI Android UI Windows UI
Shared App Logic
Sharing UI Logic
Shared App Logic
Native UI
C#
Native UI
C#
Native UI
C#
Shared C# App Logic
Shared C# App Logic
Shared App Logic
Shared UI
Code
Android
UI Code
Windows
UI Code
in C#
Shared App Logic
Shared App Logic
iOS
UI
Android
UI
Windows
UI
Shared UI Code
iOS UI Android UI Windows UI
Shared App Logic
Shared UI Logic
MVVM
Shared App Logic
Native UI
C#
Native UI
C#
Native UI
C#
Shared C# App Logic
Shared C# App Logic
Shared App Logic
Shared UI
Code
Android
UI Code
Windows
UI Code
in C#
Shared App Logic
Shared App Logic
iOS
UI
Android
UI
Windows
UI
Shared UI Code
iOS View Android View
Windows
View
Model
ViewModel
MVVM with Xamarin.Forms
Shared App Logic
Native UI
C#
Native UI
C#
Native UI
C#
Shared C# App Logic
Shared C# App Logic
Shared App Logic
Shared UI
Code
Android
UI Code
Windows
UI Code
in C#
Shared App Logic
Shared App Logic
iOS
UI
Android
UI
Windows
UI
Shared UI Code
Model
View and ViewModel
(UI and controller)
Xamarin.Forms
• Sviluppo di UI con Xaml 2009 (o anche
programmaticamente)
– Data Binding
– Converters
– Commands
– …manca il designer
• Gestione delle specificità delle piattaforme
– Dependency Service
– Rendering personalizzato dei controlli
• Astrazione delle animazioni
• E’ possibile combinare l’utilizzo sia di Xamarin.Form
che delle UI classiche
MAXIMIZING CODE SHARING
Domande?
riferimenti
• @fabiocozzolino
• Il mio blog: http://dotnetside.org/blogs/fabio
• Xamarin blog: http://blogs.xamarin.com

Contenu connexe

Tendances

Xamarin Forms: one technology to rule them all - Matteo Pagani - Codemotion R...
Xamarin Forms: one technology to rule them all - Matteo Pagani - Codemotion R...Xamarin Forms: one technology to rule them all - Matteo Pagani - Codemotion R...
Xamarin Forms: one technology to rule them all - Matteo Pagani - Codemotion R...Codemotion
 
Xamarin.Forms Introduction
Xamarin.Forms IntroductionXamarin.Forms Introduction
Xamarin.Forms IntroductionGuido Magrin
 
Introduzione Xamarin
Introduzione XamarinIntroduzione Xamarin
Introduzione XamarinAndrea Tosato
 
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ò
 
Nativo vs Xamarin pro e contro
Nativo vs Xamarin pro e controNativo vs Xamarin pro e contro
Nativo vs Xamarin pro e controCarmelo Ruota
 
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
 
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
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoGabriele Gaggi
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformGabriele Gaggi
 
C# Mobile application architecture
C# Mobile application architectureC# Mobile application architecture
C# Mobile application architectureLeonardo Alario
 
Introduction to C#
Introduction to C#Introduction to C#
Introduction to C#Guido Magrin
 
Google IO Catania - 20/05/2016
Google IO Catania - 20/05/2016Google IO Catania - 20/05/2016
Google IO Catania - 20/05/2016Gaetano Paternò
 
Flash Platform su dispositivi mobili
Flash Platform su dispositivi mobiliFlash Platform su dispositivi mobili
Flash Platform su dispositivi mobililuca mezzalira
 
What's new in Visual Studio 2019
What's new in Visual Studio 2019What's new in Visual Studio 2019
What's new in Visual Studio 2019Alessio Iafrate
 

Tendances (20)

Xamarin Forms: one technology to rule them all - Matteo Pagani - Codemotion R...
Xamarin Forms: one technology to rule them all - Matteo Pagani - Codemotion R...Xamarin Forms: one technology to rule them all - Matteo Pagani - Codemotion R...
Xamarin Forms: one technology to rule them all - Matteo Pagani - Codemotion R...
 
Xamarin.Forms Introduction
Xamarin.Forms IntroductionXamarin.Forms Introduction
Xamarin.Forms Introduction
 
Introduzione Xamarin
Introduzione XamarinIntroduzione Xamarin
Introduzione Xamarin
 
Xamarin Robotics
Xamarin RoboticsXamarin Robotics
Xamarin Robotics
 
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...
 
Nativo vs Xamarin pro e contro
Nativo vs Xamarin pro e controNativo vs Xamarin pro e contro
Nativo vs Xamarin pro e contro
 
Introduzione a Xamarin
Introduzione a XamarinIntroduzione a Xamarin
Introduzione a Xamarin
 
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
 
Mobile development .net
Mobile development .netMobile development .net
Mobile development .net
 
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
 
Spa with Blazor
Spa with BlazorSpa with Blazor
Spa with Blazor
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
 
Intro xamarin forms
Intro xamarin formsIntro xamarin forms
Intro xamarin forms
 
C# Mobile application architecture
C# Mobile application architectureC# Mobile application architecture
C# Mobile application architecture
 
Introduction to C#
Introduction to C#Introduction to C#
Introduction to C#
 
Google IO Catania - 20/05/2016
Google IO Catania - 20/05/2016Google IO Catania - 20/05/2016
Google IO Catania - 20/05/2016
 
Flash Platform su dispositivi mobili
Flash Platform su dispositivi mobiliFlash Platform su dispositivi mobili
Flash Platform su dispositivi mobili
 
What's new in Visual Studio 2019
What's new in Visual Studio 2019What's new in Visual Studio 2019
What's new in Visual Studio 2019
 

En vedette

En vedette (8)

Guida C# By Megahao
Guida C# By MegahaoGuida C# By Megahao
Guida C# By Megahao
 
Deep diving C# 4 (Raffaele Rialdi)
Deep diving C# 4 (Raffaele Rialdi)Deep diving C# 4 (Raffaele Rialdi)
Deep diving C# 4 (Raffaele Rialdi)
 
Inversion of Control @ CD2008
Inversion of Control @ CD2008Inversion of Control @ CD2008
Inversion of Control @ CD2008
 
Linq ed oltre
Linq ed oltreLinq ed oltre
Linq ed oltre
 
Reflection in C#
Reflection in C#Reflection in C#
Reflection in C#
 
C# Collection classes
C# Collection classesC# Collection classes
C# Collection classes
 
Advanced c#
Advanced c#Advanced c#
Advanced c#
 
MS c# - programming with.net framework - Scheda corso LEN
MS c# - programming with.net framework - Scheda corso LENMS c# - programming with.net framework - Scheda corso LEN
MS c# - programming with.net framework - Scheda corso LEN
 

Similaire à Costruire app per WinPhone, iOS e Android con C# e Xamarin

Nativo vs Xamarin: pro e contro
Nativo vs Xamarin: pro e controNativo vs Xamarin: pro e contro
Nativo vs Xamarin: pro e controMarco Rinaldi
 
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
 
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
 
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
 
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
 
Italian C++ MeetUp - 24/10/2015
Italian C++ MeetUp - 24/10/2015Italian C++ MeetUp - 24/10/2015
Italian C++ MeetUp - 24/10/2015Gaetano Paternò
 
Future Decoded Roma - Visual Studio, Cordova e Ionic Framework to create X-...
Future Decoded Roma  - Visual Studio, Cordova e Ionic Framework  to create X-...Future Decoded Roma  - Visual Studio, Cordova e Ionic Framework  to create X-...
Future Decoded Roma - Visual Studio, Cordova e Ionic Framework to create X-...Michele Aponte
 
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
 
Azure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloudAzure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloudDavide Benvegnù
 
Sviluppare una app mobile net oriented
Sviluppare una app mobile net orientedSviluppare una app mobile net oriented
Sviluppare una app mobile net orientedAlessandro Morvillo
 
Smau Napoli 2016 - Michele Aponte, Microsoft
Smau Napoli 2016 - Michele Aponte, MicrosoftSmau Napoli 2016 - Michele Aponte, Microsoft
Smau Napoli 2016 - Michele Aponte, MicrosoftSMAU
 
Visual COBOL - Conoscere Visual COBOL- Micro Focus
Visual COBOL - Conoscere Visual COBOL- Micro FocusVisual COBOL - Conoscere Visual COBOL- Micro Focus
Visual COBOL - Conoscere Visual COBOL- Micro FocusMicrofocusitalia
 
Dal cloud al mobile con tecnologie Google
Dal cloud al mobile con tecnologie GoogleDal cloud al mobile con tecnologie Google
Dal cloud al mobile con tecnologie GoogleDiego Giorgini
 
AppleTV: insight e progettazione per l'Home Entertainment
AppleTV: insight e progettazione per l'Home EntertainmentAppleTV: insight e progettazione per l'Home Entertainment
AppleTV: insight e progettazione per l'Home EntertainmentPaolo Musolino
 
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
 

Similaire à Costruire app per WinPhone, iOS e Android con C# e Xamarin (20)

Nativo vs Xamarin: pro e contro
Nativo vs Xamarin: pro e controNativo vs Xamarin: pro e contro
Nativo vs Xamarin: pro e contro
 
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
 
Beacon & Xamarin
Beacon & XamarinBeacon & Xamarin
Beacon & Xamarin
 
platforms
platformsplatforms
platforms
 
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
 
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 - ...
 
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
 
Italian C++ MeetUp - 24/10/2015
Italian C++ MeetUp - 24/10/2015Italian C++ MeetUp - 24/10/2015
Italian C++ MeetUp - 24/10/2015
 
Future Decoded Roma - Visual Studio, Cordova e Ionic Framework to create X-...
Future Decoded Roma  - Visual Studio, Cordova e Ionic Framework  to create X-...Future Decoded Roma  - Visual Studio, Cordova e Ionic Framework  to create X-...
Future Decoded Roma - Visual Studio, Cordova e Ionic Framework to create X-...
 
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
 
Azure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloudAzure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloud
 
Wise Emotions
Wise EmotionsWise Emotions
Wise Emotions
 
Sviluppare una app mobile net oriented
Sviluppare una app mobile net orientedSviluppare una app mobile net oriented
Sviluppare una app mobile net oriented
 
Smau Napoli 2016 - Michele Aponte, Microsoft
Smau Napoli 2016 - Michele Aponte, MicrosoftSmau Napoli 2016 - Michele Aponte, Microsoft
Smau Napoli 2016 - Michele Aponte, Microsoft
 
Visual COBOL - Conoscere Visual COBOL- Micro Focus
Visual COBOL - Conoscere Visual COBOL- Micro FocusVisual COBOL - Conoscere Visual COBOL- Micro Focus
Visual COBOL - Conoscere Visual COBOL- Micro Focus
 
XeDotNet - .Net MAUI
XeDotNet - .Net MAUIXeDotNet - .Net MAUI
XeDotNet - .Net MAUI
 
Dal cloud al mobile con tecnologie Google
Dal cloud al mobile con tecnologie GoogleDal cloud al mobile con tecnologie Google
Dal cloud al mobile con tecnologie Google
 
AppleTV: insight e progettazione per l'Home Entertainment
AppleTV: insight e progettazione per l'Home EntertainmentAppleTV: insight e progettazione per l'Home Entertainment
AppleTV: insight e progettazione per l'Home Entertainment
 
iOS Programming
iOS ProgrammingiOS Programming
iOS Programming
 
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
 

Costruire app per WinPhone, iOS e Android con C# e Xamarin

  • 1. Costruire app per WinPhone, iOS e Android con C# e Xamarin Fabio Cozzolino
  • 2. • Sviluppare un’app cross-platform – Target: iOS, Android e Windows Phone • Condividere quanto più codice possibile tra le diverse piattaforme • Ottimizzare i tempi di sviluppo e centralizzare la code base obiettivi
  • 3. native apps vs web apps
  • 5. Write once, run everywhere AND be native?
  • 6. Anatomia di una app nativa Il look-and-feel delle app Xamarin sembra nativo, perchè è nativo! Native User Interfaces Native API Access Native Performance
  • 7. • evoluzione di mono (ximian, novell...) • framework sempre aggiornato e tools di sviluppo – binding e accesso alle API native di iOS e Android – aggiornamento entro le 24 ore successive ad ogni rilascio ufficiale – ambiente di sviluppo (Xamarin Studio e/o Visual Studio) • C# everywhere – permette il riutilizzo delle nostre conoscenze in .NET • riutilizzo del codice Xamarin?
  • 9. come funziona xamarin? • compilazione nativa – devono essere incluse le librerie Xamarin/Mono utilizzate – minimizzazione del pacchetto con il Linker (30% più piccolo) • iOS: AOT (ahead-of-time) – precompilazione per ARM con mtouch • Android: JIT (just-in-time) – compilato in bytecode ed eseguito nella MonoVM (inclusa) – esecuzione side-by-side con la DalvikVM – è possibile utilizzare anche le funzionalità Java esposte dalla Dalvik
  • 10. come condivido il codice? File Linking ... e uso le costanti di compilazione condizionale Shared Project Stesso del file linking, ma più semplice Portable Class Library (PCL) 1 assembly + piattaforme supporto completo in Visual Studio 2013 e in Xamarin Studio
  • 11. portable class library • codebase centralizzata • compatibilità attraverso limitazione (esempio: supporto al MVVM limitato) • non disponibile con versioni del .NET Framework antecedenti alla 4.5 (manca la ObservableCollection, per esempio) • reference alla System.Window necessaria • richiedono un approccio architetturale più avanzato
  • 12. Xamarin 3.0 • Semplificazione del Code Sharing – Shared Project • Xamarin.Form – Cross-platform UI • Aggiunto il designer (storyboard) Xamarin per iOS – Su Xamarin Studio e Visual Studio • Potenziamento del plugin per Visual Studio e di Xamarin Studio • Supporto a F#, NuGet e documentazione della BCL
  • 13. Cosa serve per lo sviluppo • Xamarin Studio • Un account Apple Developer o Google Developer • Android SDK • Un Mac con Xcode • Ma anche Windows  – Xamarin Plugin per Visual Studio – Un mac che agisce da server di compilazione
  • 14. VISUAL STUDIO? YES WE CAN! DEMO
  • 16. cosa possiamo condividere Business Logic View Models Navigation Entities Web Services Client Data Access …ma anche la UI 
  • 17. Traditional Xamarin approach Shared App Logic Native UI C# Native UI C# Native UI C# Shared C# App Logic Shared C# App Logic Shared App Logic Shared UI Code Android UI Code Windows UI Code in C# Shared App Logic Shared App Logic iOS UI Android UI Windows UI Shared UI Code iOS UI Android UI Windows UI Shared App Logic
  • 18. Sharing UI Logic Shared App Logic Native UI C# Native UI C# Native UI C# Shared C# App Logic Shared C# App Logic Shared App Logic Shared UI Code Android UI Code Windows UI Code in C# Shared App Logic Shared App Logic iOS UI Android UI Windows UI Shared UI Code iOS UI Android UI Windows UI Shared App Logic Shared UI Logic
  • 19. MVVM Shared App Logic Native UI C# Native UI C# Native UI C# Shared C# App Logic Shared C# App Logic Shared App Logic Shared UI Code Android UI Code Windows UI Code in C# Shared App Logic Shared App Logic iOS UI Android UI Windows UI Shared UI Code iOS View Android View Windows View Model ViewModel
  • 20. MVVM with Xamarin.Forms Shared App Logic Native UI C# Native UI C# Native UI C# Shared C# App Logic Shared C# App Logic Shared App Logic Shared UI Code Android UI Code Windows UI Code in C# Shared App Logic Shared App Logic iOS UI Android UI Windows UI Shared UI Code Model View and ViewModel (UI and controller)
  • 21. Xamarin.Forms • Sviluppo di UI con Xaml 2009 (o anche programmaticamente) – Data Binding – Converters – Commands – …manca il designer • Gestione delle specificità delle piattaforme – Dependency Service – Rendering personalizzato dei controlli • Astrazione delle animazioni • E’ possibile combinare l’utilizzo sia di Xamarin.Form che delle UI classiche
  • 24.
  • 25. riferimenti • @fabiocozzolino • Il mio blog: http://dotnetside.org/blogs/fabio • Xamarin blog: http://blogs.xamarin.com

Notes de l'éditeur

  1. Fix this with website stuff
  2. AOT: Compilazione in codice nativo fin dall’inizio JIT: compilazione durante l’esecuzione Performance: AOT > JIT > interpretato On Android, most of the system facilities like Audio, Graphics, OpenGL and Telephony are not available directly to native applications, they are only exposed through the Dalvik Java APIs residing in one of the Java.* namespaces or the Android.* namespaces, the architecture is roughly like this: Xamarin.Android developers access the various features in the operating system either by calling into .NET APIs that they know (for low-level access) or using the classes exposed in the Android namespaces which provides a bridge to the Java APIs that are exposed by Dalvik.