MVVMCross da Windows Phone a Windows 8 passando per Android e iOS

1,880 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,880
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

MVVMCross da Windows Phone a Windows 8 passando per Android e iOS

  1. 1. MVVMCrossda Windows Phone a Windows 8 passando per Android e iOSDan ARDELEANTwitter: @danardeleanEmail:dan.ardelean@neologics.eu
  2. 2. Smartphones Operating 1Q12 1Q12 Market 1Q11 1Q11 Market System Units Share (%) Units Share (%)Android 81,067.4 56.1 36,350.1 36.4iOS 33,120.5 22.9 16,883.2 16.9Symbian 12,466.9 8.6 27,598.5 27.7Research In 6.9 13.0Motion 9,939.3 13,004.0Bada 3,842.2 2.7 1,862.2 1.9Microsoft 2,712.5 1.9 2,582.1 2.6Altri 1,242.9 0.9 1,495.0 1.5 Source: Gartner (April 2012)Totale 144,391.7 100.0 99,775.0 100.0 Source: Gartner (Maggio 2012)
  3. 3. Tablet OS 2011 2012 2013 2016iOS 39.998 72.988 99.553 169.652Android 17.292 37.878 61.684 137.657Microsoft 0 4.863 14.547 43.648QNX 807 2.643 6.036 17.836Altri 1,919 510 637 464Totale 60.017 118.883 182.457 369.258 Source: Gartner (Aprile 2012)
  4. 4. Agenda• C# per sviluppo mobile cross-platform• Introduzione a MVVM e MVVMCross• TwitterSearch• Sqlite cross-platform• Domande
  5. 5. C# per sviluppo mobile cross-platform• Usando C# si può sviluppare per: Windows Phone, Windows 8, Android e iOS• Possibilità di sfruttare features come: generics, linq, anonymous methods, async• Possibilità di riutilizzare il codice• Costi per lo sviluppo e la manutenzione del codice sorgenti più contenuti
  6. 6. Cosa serve – Windows Phone• Windows 7• Visual Studio 2010 Express or Ultimate• Account AppHub 99$• Telefono
  7. 7. Cosa serve – Windows 8• PC con Windows 8 RP• Visual Studio 2012 RC• Fare i lab di Win8
  8. 8. Cosa serve – Android• Windows o Mac• MonoDevelop o Visual Studio• Mono for Android 399$• Play account 25$
  9. 9. Cosa serve – iOS• Mac• MonoDevelop e XCode• Mono for iOS 399$• iOS account 99$• MacIncloud http://www.macincloud.com
  10. 10. MVVM get/set proprietà ViewModel commandi ViewModel ViewModel ModelView Qualsiasi codice Model View C#! Model View notifiche messaggi
  11. 11. Implementare MVVM• Properties• INotifyPropertyChanged• INotifyCollectionChanged• Data Binding• IValueConverter• ICommand• UI Thread
  12. 12. Vantaggi MVVM• Separazione tra BL e UI• Più facile da testare• MVVMCross riutilizzo codice cross- platform
  13. 13. MVVMCross
  14. 14. MVVMCrossStuart Lodge (https://github.com/slodge/MvvmCross) get/set proprietà ViewModel commandi ViewModel ViewModel Model View Qualsiasi codice Model View C#! Model View notifiche messaggi Codice Codice condiviso Specifico
  15. 15. TwitterSearch
  16. 16. Model & Service
  17. 17. HomeViewModel
  18. 18. TwitterViewModel
  19. 19. Windows Phone 7• Niente C#, solo XAML con {Binding}• Binding syntax includes:• {Binding Path, Converter=Converter, ConverterParameter=Parameter, Mode=Mode, FallbackValue=Fallback}
  20. 20. Android• Niente C#, solo xml con attributi MvxBind• La sintassi MvxBind è JSON con struttura XAML.
  21. 21. Xaml vs MvxBindWP7: Text=‚{Binding SearchText,Mode=TwoWay}‛Android: local:MvxBind=‚{‘Text’: {‘Path’:’SearchText’,’Mode’:’TwoWay’}}‛
  22. 22. Xaml vs MvxBindWP7: Text=‚{BindingTimestamp,Converter={StaticResource TimeAgo}}‛Android: local:MvxBind=‚{‘Text’: {‘Path’:’Timestamp’,Converter’:’TimeAgo’}}‛
  23. 23. iPhone App• UI in XML usando Xcode• XIB collegato alle classe C# usando MonoTouch• Binding nel codice C# usando JSON
  24. 24. iPad• L’applicazione iPad è la stessa applicazione usando iPhone App – “Universal”• La UI sfrutta lo schermo più grande.• Impostazioni usando: IMvxTouchViewPresenter
  25. 25. Windows 8
  26. 26. Windows 8 BindingSimile a Windows Phone 7….• Niente C#, solo XAML con {Binding}• Usa ValueConverters per i Bindings• Per le leste binding su ItemsSource• Però: La navigazione si fa tramite codice e non tramite Uri Xaml
  27. 27. Sqlite cross-platform Business logic Data layer sqlite-net csharp-sqlite Sqlite x WinRT Dentro l’OSWindows Phone WinRT iOS Android
  28. 28. Sqlite cross-platform• Sqlite per WinRT x86 e x64• http://www.sqlite.org/download.html• sqlite-net https://github.com/praeclarum/sqlite- net• csharp-sqlite http://code.google.com/p/csharp- sqlite/
  29. 29. XAMARIN COUPON -15%https://store.xamarin.com/?discount=wprefresh -fino a fine Luglio-
  30. 30. Domande?

×