Costruire applicazioni cross- platform con Xamarin e Visual Studio 2013

Preview:

DESCRIPTION

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. #bem14. Chi Sono. Founder of SmartCore Tech - PowerPoint PPT Presentation

Citation preview

Costruire applicazioni cross-platform con Xamarin e Visual Studio

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

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

#bem14

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: emanueleb@outlook.com

Chi SonoDeveloper e Architect in Dev4Side S.r.l.Speaker for various eventsMCTS Web ApplicationsBlog: queube.comTwitter: @luca_julian

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

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

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

Approccio con sviluppo nativo

Comparazioni sulle piattaforme

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

Xamarin – approccio tradizionale

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

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…)

Xamarin – Win StatusWindows APIs100% coverage

Xamarin – Android StatusAndroid APIs100% coverage

Xamarin – iOS StatusiOS APIs100% coverage

Risultato

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

Native User Interfaces Native API Access Native Performance

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

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

Ambienti di Sviluppo - Visual Studio ma non solo -

Visual Studio 2013

• Migliore integrazione con Xamarin.iOS Mac Build Hosts

• Full support per le PCL

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

Condivisione del codice tra le diverse piattaforme

Condivisione – File linking (old way)

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

Condivisione – Shared ProjectUtilizzare 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.

Condivisione – Shared Project• Migliore del file

linking• Integrato con l’IDE• Accesso alla parent

reference• Possibilità di

includere codice specifico per piattaforma

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

Condivisione – PCL• Full support per

Xamarin.iOS e Xamarin.Android

• Non è possibile includere references specifiche per piattaforma

Condivisione – PCLPotete utilizzare la Dependency Injection per passare delle feature della specifica piattaforma

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

…e per il resto?• Gestione Contatti• Geolocation• Media

Xamarin.Mobile

…e per il futuro• Notifiche• Accelerometro• …

…oppure…• Component Store• NuGet

demoDEMO

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

GET YOUR C# SHIRT TODAY!

Grazie

Recommended