sviluppo apps multipiattaforma con visual studio e xamarin

Post on 18-Dec-2014

346 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Template designed by

sviluppo apps multipiattaforma con visual studio e xamarin

Fabio Cozzolinofabio@dotnetside.orghttp://dotnetside.org/blogs/fabio

brought to you by

perchè sviluppare con Xamarin

l’ambiente di sviluppo

real world apps

agenda

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/

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

cross-platform development

native apps

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

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

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

DEM

O Hello World!

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

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

PCL: Platform Abstraction

Maximizing Code Sharing

cosa possiamo condividere

Business Logic

View Models

Navigation

Entities

Web Services Client

Data Access

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

Shared Code

OS Specific Code

maximizing code sharing

iOS UI Android UI Windows Phone UI

Business Layer

Data Access Layer Service Layer

Application Layer

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

DEM

O maximizing code

sharing

riferimenti

Xamarin http://www.xamarin.com

Channel 9http://channel9.msdn.com/search?term=xamarin

Il mio bloghttp://dotnetside.org/blogs/fabio

@fabiocozzolino

Grazie a tutti per la partecipazione

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

Per contattarmi

cozzolino.fabio@gmail.com

Grazie

bonus

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!

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!");

Code Sharing: Network

WebClient / HttpWebRequest

Reachability.csPer il check della rete

RestSharp / ServiceStack.Client

WCFLimitatamente al BasicHttpBinding

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

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

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!!!

Slide con sponsor che arriva a qualche giorno dalla conferenza

sponsor

prima riga

seconda riga

terza riga

….

conteunti

dem

o Hello World

demoHello World

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis eros enim, gravida in

ultrices vitae.Tincidunt ut mi.

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

Grazie a tutti per la partecipazione

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

Per contattarmi

gino@beppe.com

Grazie

top related