Igor Ralić igrali.com Open source u razvoju Windows Phone aplikacija
Inspirirani ljudima. Ugasite mobitele. Hvala.
PROS CONS Support Free as in “free coffee” Often free as in “free speech” Fix it yourself Extend it yourself Support Not up to par with commercial controls Sometimes Confusing licenses Most of the time
FRE E
Inspirirani ljudima. unflwd.m e + demos
Inspirirani ljudima. TASK REQUIREMENT PROBLEM IDEA OPEN SOURCE SOLUTION
Inspirirani ljudima. Maintainable Testable Easily designed Well structured MVVM pattern
View DataContext, Converters, Animations In some cases – code behind is OK ViewModel Properties, Commands Databinding Presentation logic Model INotifyPropertyChanged XAML platforms Multiplatform MVVM
Visual element Window, Page, UserControl, DataTemplate DataContext Customizable data binding behavior Value converters, validation rules Animations, transitions May define logic in code-behind In some cases View
ViewModel Presentation logic Properties, commands Data binding INotifyPropertyChanged ObservableCollection No direct reference to view Logical states represented visually Value converters
Model Client side model INotifyPropertyChanged Data validation, IDataErrorInfo Non-visual No dependency on views or viewmodels Used with services & repositories Providing data access and caching
MVVM No frameworks needed, but… ViewModelBase ICommand implementation RelayCommand Design mode Messenger implementation DI (constructor injection)
MVVM Light Lightweight & the simplest Nuget MIT license Laurent Bugnion Accelerated MVVM development! Many alternatives Simple MVVM Toolkit, Caliburn.Micro, Catel.MVVM …
Inspirirani ljudima. DEMO MVVM Light
Inspirirani ljudima. Use Windows Phone APIs as services in MVVM Cimbalino toolkit
Many components Nuget MIT License Pedro Lamas Cimbalino.Phone.Toolkit Background Camera Controls DeviceInfo Location MediaLibrary PhoneDialer UserInfo +Random services, behaviors, extensions
Cimbalino – location services
Inspirirani ljudima. Use binding with ApplicationBar Cimbalino toolkit
Bindable ApplicationBar… Not a DependencyObject Localization Events -> VM Commands ApplicationBarBehavior ApplicationBarBehaviorIconButton ApplicationBarMenuItem
… and a bindable MultiApplicationBar
Inspirirani ljudima. DEMO Cimbalino toolkit
Inspirirani ljudima. More UI controls Windows Phone toolkit Coding4Fun toolkit
Basic Windows Phone controls set Often not enough! PhoneApplicationPage, PhoneApplicationFrame Grid, StackPanel, Border, Canvas, ContentControl, Pivot, Panorama, VirtualizingStackPanel, ScrollViewer TextBlock, TextBox, PasswordBox Button, HyperlinkButton CheckBox, RadioButton, Slider ListBox, LongListSelector Image, Map, MediaElement WebBrowser ProgressBar, Popup Building your own Expensive, tough, time-consuming
Windows Phone Toolkit WP Developer Platform Team Nuget Ms-PL license UI Controls Transitions Effects Extensions
Coding4Fun Clint Rutkas and Coding4Fun team Nuget Ms-PL license AudioControlNetworkStorage
C4F ToastPrompt
Inspirirani ljudima. DEMO Windows Phone & Coding4Fun Toolkits
Inspirirani ljudima. Reorder items in a listReorderListBox
Reorder items in a list Propagate change to inner (Observable) collection Very simple! Nuget Ms-PL license
ReorderListBox
Inspirirani ljudima. Override global theme Light or dark WP Theme Manager
Avoid messed up colors Nuget Apache 2.0 license Customizes Foreground, background, contrast/chrome/etc. colors and brushes System tray (when navigation finishes) Appbar (if created immediately) Does not customize MessageBox
Inspirirani ljudima. DEMO ReorderListBox & WP Theme Manager
Inspirirani ljudima. Work with imagesWriteableBitmapEx
Extensions for WriteableBitmap Windows Phone, Silverlight, WPF, WinRT Nuget Ms-PL license Features Transformation (crop, resize, flip, rotate…) Shapes (ellipse, polyline, quad, rectangle and triangle...) Blitting (many different blend modes…) Conversions (from and to byte[]...)
Inspirirani ljudima. Cache dataQ42.WinRT
Windows Phone and WinRT MIT License DataLoader Easy Loading/Finished/Error binding DataCache Input cache key and API call ImageExtensions.CacheUri
Inspirirani ljudima. DEMO Q42.WinRT
Inspirirani ljudima. Show data in charts Visual representation of data ModernUI Charts
ModernUI charts Not available on Nuget (Silverlight dll) Ms-PL license ColumnChart PieChart BarChart Doughnut Chart Radial Gauge Chart
ModernUI Charts code sample
Inspirirani ljudima. Remind user to rate appRate My App
By Nokia Custom license Nuget Alternative ReviewBugger
Inspirirani ljudima. DEMO Rate My App
And many, many others… Facebook C# SDK LINQ to Twitter Json.NET HTML Agility Pack AgFx MvvmCross SLAR Toolkit GART ExifLib Farseer Physics Engine ZXing.Net AdRotator...
Using open source in Windows Phone development is like playing with LEGO. Just connect the pieces and go wherever your imagination takes you… github.com/igrali igrali.co m
Inspirirani ljudima. Pitanja i odgovori.