sviluppo apps multipiattaforma con visual studio e xamarin
DESCRIPTION
TRANSCRIPT
![Page 1: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/1.jpg)
Template designed by
sviluppo apps multipiattaforma con visual studio e xamarin
Fabio [email protected]://dotnetside.org/blogs/fabio
![Page 2: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/2.jpg)
brought to you by
![Page 3: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/3.jpg)
perchè sviluppare con Xamarin
l’ambiente di sviluppo
real world apps
agenda
![Page 4: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/4.jpg)
smartphone OS market share – 03.14
Italy USA
Android 70,7 % 57,6 %
BlackBerry 1,2 % 0,7 %
iOS 12,9 % 35,9 %
Windows Phone
13,9 % 5,3 %
Other 1,3 % 0,4 %
Fonte: Kantar WorldPanelhttp://www.kantarworldpanel.com/smartphone-os-market-share/
![Page 5: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/5.jpg)
diversificazione
molti OS = molti ambienti
diversi linguaggi
ogni app deve essere implementata per iOS (iPhone-iPad), per Android e per Windows Phone
parola d’ordine: riutilizzo
![Page 6: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/6.jpg)
cross-platform development
![Page 7: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/7.jpg)
native apps
![Page 8: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/8.jpg)
evoluzione di mono (ximian, novell...)
framework sempre aggiornato e tools di sviluppobinding 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# everywherepermette il riutilizzo delle nostre conoscenze in .NET
riutilizzo del codice, non della UIogni OS ha il suo paradigma (es.: panorama per Windows Phone)
cos’è xamarin
![Page 9: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/9.jpg)
come funziona xamarin?
compilazione nativadevono 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
![Page 10: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/10.jpg)
Cosa serve per lo sviluppo iOS
Xamarin Studio
Un account Apple Developer
Un Mac con Xcode
Ma anche Windows Xamarin Plugin per Visual Studio
Un mac che agisce da server di compilazione
![Page 11: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/11.jpg)
DEM
O Hello World!
![Page 12: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/12.jpg)
come condivido il codice?
file linking... e uso le costanti di compilazione condizionale
Portable Class Library (PCL)1 assembly + piattaformesupporto completo in Visual Studio 2013 e in Xamarin Studio
![Page 13: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/13.jpg)
portable class library
codebase centralizzata
compatibilità attraverso limitazione (esempio: supporto al MVVM limitato)non disponibile con versioni del .NET Framework antecedenti alla 4.5
reference alla System.Window necessaria
richiedono un approccio architetturale più avanzato
![Page 14: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/14.jpg)
PCL: Platform Abstraction
![Page 15: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/15.jpg)
Maximizing Code Sharing
![Page 16: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/16.jpg)
cosa possiamo condividere
Business Logic
View Models
Navigation
Entities
Web Services Client
Data Access
![Page 17: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/17.jpg)
Shared Code
OS Specific Code
maximizing code sharing
iOS UI Android UI Windows Phone UI
Business Layer
Application Layer Application Layer Application Layer
Data Access Layer Service Layer
![Page 18: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/18.jpg)
Shared Code
OS Specific Code
maximizing code sharing
iOS UI Android UI Windows Phone UI
Business Layer
Data Access Layer Service Layer
Application Layer
![Page 19: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/19.jpg)
Shared Code
OS Specific Code - View
model-view-viewmodel
iOS UI Android UI Windows Phone UI
ViewModel
Model
Business Layer
Data Access Layer Service Layer
![Page 20: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/20.jpg)
DEM
O maximizing code
sharing
![Page 21: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/21.jpg)
riferimenti
Xamarin http://www.xamarin.com
Channel 9http://channel9.msdn.com/search?term=xamarin
Il mio bloghttp://dotnetside.org/blogs/fabio
@fabiocozzolino
![Page 22: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/22.jpg)
Grazie a tutti per la partecipazione
Riceverete il link per il download a slide e demo via email nei prossimi giorni
Per contattarmi
Grazie
![Page 23: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/23.jpg)
bonus
![Page 24: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/24.jpg)
Code Sharing: Data Layer
SQLite databaseSupportato dalle tre piattaforme e da WinRT
Accessibile anche nativamente con le CoreData in iOS e SQLiteOpenHelper in Android
ADO.NET (Classic)
SQLite-NET ORM (anche Portable!)Molto comodo!
![Page 25: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/25.jpg)
Code Sharing: File Access
System.IO
Isolated StorageStesso meccanismo implementato in Windows Phone
string file = Path.Combine ( Environment.GetFolderPath (Environment.SpecialFolder.Personal), "yaf.txt");System.IO.WriteAllText (file, "Yet Another File!");
![Page 26: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/26.jpg)
Code Sharing: Network
WebClient / HttpWebRequest
Reachability.csPer il check della rete
RestSharp / ServiceStack.Client
WCFLimitatamente al BasicHttpBinding
![Page 27: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/27.jpg)
Code Sharing: Task e Threads
Esecuzione di task nello UI thread
Ogni piattaforma ha un approccio differenteiOS: NSObject.BeginInvokeOnMainThread(action)
Android: Activity.RunOnUiThread(action)
WP: Deployment.Current.Dispatcher.BeginInvoke(action)
Utilizziamo un adapter per eseguire le azioni
![Page 28: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/28.jpg)
Microsoft NuGet Libraries
Async for .NET Framework 4, Silverlight 4 and 5, and WP 7.5 & 8
Microsoft BCL Build Components
Microsoft BCL Portability Pack
Microsoft Composition
Microsoft Compression
Microsoft HTTP Client Libraries
Microsoft Immutable Collections
Microsoft ASP.NET SignalR .NET Client
ODataLib
![Page 29: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/29.jpg)
Alcune PCL Libraries
MvvmCross
ReactiveUI
Akavache – Async Persistent Key-Value Store
Splat – Image Loading
Budgie – Twitter Library
Azure Mobile Services
Json.Net
SO MANY MORE!!!
![Page 30: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/30.jpg)
Slide con sponsor che arriva a qualche giorno dalla conferenza
sponsor
![Page 31: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/31.jpg)
prima riga
seconda riga
terza riga
….
conteunti
![Page 32: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/32.jpg)
dem
o Hello World
![Page 33: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/33.jpg)
demoHello World
![Page 34: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/34.jpg)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis eros enim, gravida in
ultrices vitae.Tincidunt ut mi.
![Page 35: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/35.jpg)
elementi grafici e diagrammi
Windows Kernel Services
JavaScriptC/C++ C#, VB
Metro style Apps
Communication & Data
Application Model
Devices & Printing
Windows Runtime APIs
Graphics & Media
XAMLHTML /
CSSHTML
js
XAML
C#VB
C++C
Desktop Apps
Win32
WPF SLBrowserSyst
em
Serv
ices
Vie w
Mod
el
Con
trolle
r
Kern
el
![Page 36: Sviluppo apps multipiattaforma con visual studio e xamarin](https://reader033.vdocuments.us/reader033/viewer/2022061212/5495bd81ac7959042e8b4f1a/html5/thumbnails/36.jpg)
Grazie a tutti per la partecipazione
Riceverete il link per il download a slide e demo via email nei prossimi giorni
Per contattarmi
Grazie