36
Costruire applicazioni cross- platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog: http://www.emanuelebartolesi.com Twitter: @kasuken Luca Zulian Blog: http://queube.com Twitter: @luca_julian

Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog: Twitter: @kasuken Luca

Embed Size (px)

Citation preview

Page 1: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Costruire applicazioni cross-platform con Xamarin e Visual Studio

2013Emanuele BartolesiBlog: http://www.emanuelebartolesi.comTwitter: @kasuken

Luca ZulianBlog: http://queube.comTwitter: @luca_julian

Page 2: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

#bem14

Page 3: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Chi Sono• Founder of SmartCore Tech• DotNetToscana Staff Member & Speaker• Speaker for various events• Trainer• SharePoint addicted from 2007• Enthusiast ASP.NET Developer• NopCommerce Contributor• MCPD Web applications, MCTS BING Applications, MCTS

Silverlight, MCTS HTML5 & CSS3

• Italian blog: www.emanuelebartolesi.com• English blog: www.geekswithblogs.net/emanueleb/• Twitter enthusiast: @kasuken• Email: [email protected]

Page 4: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Chi Sono

Developer e Architect in Dev4Side S.r.l.

Speaker for various events

MCTS Web Applications

Blog: queube.com

Twitter: @luca_julian

Page 5: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Agenda

Perché sviluppare con Xamarin Ambienti di Sviluppo (non solo VS) Condivisione del codice tra le diverse piattaforme Demo Resources

Page 6: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Perchè sviluppare con Xamarin- write once, run everywhere -

- Anything you can do in Objective-C, Swift or Java, you can do in C# -

Page 7: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Approccio con sviluppo nativo

Page 8: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Comparazioni sulle piattaforme

Page 9: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Cosa serve?

• Mac OS X • XCode • Objective-C• Swift• iOS SDK• Apple Tools

• OS indipendent • Eclipse, IntelliJ IDEA

or Android Studio or…

• Java• Android SDK• SDK Tools

• Windows OS• Visual Studio • C#• .NET Framework• Windows Phone

SDK

Page 10: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Xamarin – approccio tradizionale

Page 11: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Xamarin.Forms

• Condivisione del codice per la UI• Possibilità di estendere

Xamarin.Forms• Pensato per MVVM e data binding• Creazione delle pagine in XAML

• Possibilità utilizzare un approccio misto

• Più di 40 controlli disponibili• Android 4.0+, iOS6.1+, WP8

Page 12: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Obiettivi• Massimizzare il codice condiviso tra le piattaforme• Ottimizzare i tempi di sviluppo• Diminuire i tempi di bug fixing• Diminuire i tempi per il testing• Diminuire il tempo per l’implementazione di nuove

features• Utilizzare un solo linguaggio (e magari un solo IDE e

magari un solo OS)• Create applicazioni sempre up to date (aggiornamento

piattaforme, nuovi rilasci, nuove features ecc…)

Page 13: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Xamarin – Win StatusWindows APIs100% coverage

Page 14: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Xamarin – Android StatusAndroid APIs100% coverage

Page 15: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Xamarin – iOS StatusiOS APIs100% coverage

Page 16: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Risultato

Il look and feel delle applicazioni Xamarin sembra nativo, perché è NATIVO

Native User Interfaces Native API Access Native Performance

Page 17: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Come funziona?iOS

Android• JIT (just-in-time) che compila e

ottimizza il bytecode nel codice macchina di destinazione

• AOT (ahead-of-time) che traduce il bytecode prodotto nel codice macchina di destinazione

• Questo è il motivo per cui avete bisogno di un Mac OSX con XCode

Page 18: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Cosa serve?• Xamarin Studio• Visual Studio con plugin Xamarin• Account Apple Developer• Account Google Play Developer• Account Windows Phone Developer• Mac OSX con Xcode

Page 19: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Ambienti di Sviluppo - Visual Studio ma non solo -

Page 20: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Visual Studio 2013

• Migliore integrazione con Xamarin.iOS Mac Build Hosts

• Full support per le PCL

Page 21: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Xamarin Studio

• Creare applicazioni per iOS, Android e Mac

• Code completition e source analysis

• Supporto completo per C# e F#

• Xamarin designer per iOS e Android

• NuGet

Page 22: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Condivisione del codice tra le diverse piattaforme

Page 23: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Condivisione – File linking (old way)

Includere i files comuni che possono essere utilizzati per la spefica piattaforma

Page 24: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Condivisione – Shared Project

Utilizzare il progetto come risorsa condivisa per organizzare il codice sorgente, e utilizzare le direttive del compilatore quanto è necessaria la gestione di esigenze specifiche della piattaforma.

Page 25: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Condivisione – Shared Project

• Migliore del file linking

• Integrato con l’IDE• Accesso alla parent

reference• Possibilità di

includere codice specifico per piattaforma

Page 26: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Condivisione – PCL

Creare una PCL (Portable Class Libraries) specificando le piattaforme che si desidera supportare e utilizzare interfacce per fornire funzionalità specifiche della piattaforma.

Page 27: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Condivisione – PCL

• Full support per Xamarin.iOS e Xamarin.Android

• Non è possibile includere references specifiche per piattaforma

Page 28: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Condivisione – PCL

Potete utilizzare la Dependency Injection per passare delle feature della specifica piattaforma

Page 29: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Cosa Condivido?

• Entities• Data Access• Web Services Client• Navigation• View Models• Business Logic

Page 30: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

…e per il resto?

• Gestione Contatti• Geolocation• Media

Xamarin.Mobile

…e per il futuro• Notifiche• Accelerometro• …

Page 31: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

…oppure…• Component Store• NuGet

Page 32: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

demo

DEMO

Page 33: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Resources Xamarin - https://xamarin.com/

Xamarin Developer - http://developer.xamarin.com/

Xamarin Blog - http://blog.xamarin.com/

Xamarin University - https://xamarin.com/university

Xamarin on Channel 9 - http://channel9.msdn.com/search?term=xamarin#ch9Search

Xamarin on slideshare - http://www.slideshare.net/Xamarin

Xamarin on github - https://github.com/xamarin

Codice della sessionehttps://github.com/lucazulian/betterembedded2014xamarin

Page 34: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

GET YOUR C# SHIRT TODAY!

Page 35: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca
Page 36: Costruire applicazioni cross-platform con Xamarin e Visual Studio 2013 Emanuele Bartolesi Blog:  Twitter: @kasuken Luca

Grazie