sviluppo apps multipiattaforma con visual studio e xamarin

36
Template designed by sviluppo apps multipiattaforma con visual studio e xamarin Fabio Cozzolino [email protected] http://dotnetside.org/blogs/fabio

Upload: fabio-cozzolino

Post on 18-Dec-2014

346 views

Category:

Technology


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Sviluppo apps multipiattaforma con visual studio e xamarin

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

brought to you by

Page 3: Sviluppo apps multipiattaforma con visual studio e xamarin

perchè sviluppare con Xamarin

l’ambiente di sviluppo

real world apps

agenda

Page 4: Sviluppo apps multipiattaforma con visual studio e xamarin

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

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

cross-platform development

Page 7: Sviluppo apps multipiattaforma con visual studio e xamarin

native apps

Page 8: Sviluppo apps multipiattaforma con visual studio e xamarin

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

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

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

DEM

O Hello World!

Page 12: Sviluppo apps multipiattaforma con visual studio e xamarin

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

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

PCL: Platform Abstraction

Page 15: Sviluppo apps multipiattaforma con visual studio e xamarin

Maximizing Code Sharing

Page 16: Sviluppo apps multipiattaforma con visual studio e xamarin

cosa possiamo condividere

Business Logic

View Models

Navigation

Entities

Web Services Client

Data Access

Page 17: Sviluppo apps multipiattaforma con visual studio e xamarin

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

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

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

DEM

O maximizing code

sharing

Page 21: Sviluppo apps multipiattaforma con visual studio e xamarin

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

Grazie a tutti per la partecipazione

Riceverete il link per il download a slide e demo via email nei prossimi giorni

Per contattarmi

[email protected]

Grazie

Page 23: Sviluppo apps multipiattaforma con visual studio e xamarin

bonus

Page 24: Sviluppo apps multipiattaforma con visual studio e xamarin

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

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

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

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

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

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

Slide con sponsor che arriva a qualche giorno dalla conferenza

sponsor

Page 31: Sviluppo apps multipiattaforma con visual studio e xamarin

prima riga

seconda riga

terza riga

….

conteunti

Page 32: Sviluppo apps multipiattaforma con visual studio e xamarin

dem

o Hello World

Page 33: Sviluppo apps multipiattaforma con visual studio e xamarin

demoHello World

Page 34: Sviluppo apps multipiattaforma con visual studio e xamarin

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

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

Grazie a tutti per la partecipazione

Riceverete il link per il download a slide e demo via email nei prossimi giorni

Per contattarmi

[email protected]

Grazie