Sviluppo apps multipiattaforma con visual studio e xamarin
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Sviluppo apps multipiattaforma con visual studio e xamarin

on

  • 370 views

 

Statistics

Views

Total Views
370
Views on SlideShare
370
Embed Views
0

Actions

Likes
1
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Sviluppo apps multipiattaforma con visual studio e xamarin Presentation Transcript

  • 1. Template designed by sviluppo apps multipiattaforma con visual studio e xamarin Fabio Cozzolino fabio@dotnetside.org http://dotnetside.org/blogs/fabio
  • 2. brought to you by
  • 3. perchè sviluppare con Xamarin l’ambiente di sviluppo real world apps agenda
  • 4. 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 WorldPanel http://www.kantarworldpanel.com/smartphone-os-market-share/
  • 5. 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
  • 6. cross-platform development
  • 7. native apps
  • 8. evoluzione di mono (ximian, novell...) framework sempre aggiornato e tools di sviluppo binding 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# everywhere permette il riutilizzo delle nostre conoscenze in .NET riutilizzo del codice, non della UI ogni OS ha il suo paradigma (es.: panorama per Windows Phone) cos’è xamarin
  • 9. come funziona xamarin? compilazione nativa devono 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
  • 10. 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
  • 11. DEMO Hello World!
  • 12. come condivido il codice? file linking ... e uso le costanti di compilazione condizionale Portable Class Library (PCL) 1 assembly + piattaforme supporto completo in Visual Studio 2013 e in Xamarin Studio
  • 13. 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
  • 14. PCL: Platform Abstraction
  • 15. Maximizing Code Sharing
  • 16. cosa possiamo condividere Business Logic View Models Navigation Entities Web Services Client Data Access
  • 17. 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
  • 18. Shared Code OS Specific Code maximizing code sharing iOS UI Android UI Windows Phone UI Business Layer Data Access Layer Service Layer Application Layer
  • 19. 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
  • 20. DEMO maximizing code sharing
  • 21. riferimenti Xamarin http://www.xamarin.com Channel 9 http://channel9.msdn.com/search?term=xamarin Il mio blog http://dotnetside.org/blogs/fabio @fabiocozzolino
  • 22. 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
  • 23. bonus
  • 24. Code Sharing: Data Layer SQLite database Supportato 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! 
  • 25. Code Sharing: File Access System.IO Isolated Storage Stesso meccanismo implementato in Windows Phone string file = Path.Combine ( Environment.GetFolderPath (Environment.SpecialFolder.Personal), "yaf.txt"); System.IO.WriteAllText (file, "Yet Another File!");
  • 26. Code Sharing: Network WebClient / HttpWebRequest Reachability.cs Per il check della rete RestSharp / ServiceStack.Client WCF Limitatamente al BasicHttpBinding
  • 27. Code Sharing: Task e Threads Esecuzione di task nello UI thread Ogni piattaforma ha un approccio differente iOS: NSObject.BeginInvokeOnMainThread(action) Android: Activity.RunOnUiThread(action) WP: Deployment.Current.Dispatcher.BeginInvoke(action) Utilizziamo un adapter per eseguire le azioni
  • 28. 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
  • 29. 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!!!
  • 30. Slide con sponsor che arriva a qualche giorno dalla conferenza sponsor
  • 31. prima riga seconda riga terza riga …. conteunti
  • 32. demo Hello World
  • 33. demo Hello World
  • 34. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis eros enim, gravida in ultrices vitae. Tincidunt ut mi.
  • 35. 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 XAML HTML / CSS HTML js XAML C# VB C++ C Desktop Apps Win32 WPF SLBrowser SystemServicesView Model Controller Kernel
  • 36. 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