360 likes | 467 Views
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
E N D
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
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 Sono Developer e Architect in Dev4Side S.r.l. Speaker for variousevents MCTS Web Applications Blog: queube.com Twitter: @luca_julian
Agenda Perchésviluppare con Xamarin Ambienti di Sviluppo (non solo VS) Condivisione del codice tra le diverse piattaforme Demo Resources
Perchèsvilupparecon Xamarin - write once, run everywhere - - Anything you can do in Objective-C, Swift or Java, you can do in C# -
Cosa serve? • OS indipendent • Eclipse, IntelliJ IDEA or Android Studio or… • Java • Android SDK • SDK Tools • Windows OS • Visual Studio • C# • .NET Framework • Windows Phone SDK • Mac OS X • XCode • Objective-C • Swift • iOS SDK • Apple Tools
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 featuresecc…)
Xamarin – Win Status Windows APIs 100% coverage
Xamarin – Android Status Android APIs 100% coverage
Xamarin – iOS Status iOS APIs 100% coverage
Risultato Il look and feeldelle applicazioni Xamarin sembra nativo, perché è NATIVO Native User Interfaces Native API Access Native Performance
Come funziona? iOS 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 Android JIT (just-in-time) che compila e ottimizza il bytecode nel codice macchina di destinazione
Cosa serve? Xamarin Studio Visual Studio con pluginXamarin 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 – File linking (old way) Includere i files comuni che possono essere utilizzati per la spefica piattaforma
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.
Condivisione – Shared Project Migliore del file linking Integrato con l’IDE Accesso alla parent reference Possibilità di includere codice specifico per piattaforma
Condivisione – PCL Creare 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 – PCL Potete utilizzare la Dependency Injection per passare delle feature della specifica piattaforma
CosaCondivido? Entities Data Access Web Services Client Navigation ViewModels Business Logic
…e per ilresto? Gestione Contatti Geolocation Media Xamarin.Mobile …e per il futuro Notifiche Accelerometro …
…oppure… Component Store NuGet
Resources Xamarin - https://xamarin.com/ Xamarin Developer - http://developer.xamarin.com/ Xamarin Blog - http://blog.xamarin.com/ XamarinUniversity - 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 Codicedellasessione https://github.com/lucazulian/betterembedded2014xamarin