We kunnen onderhand wel zeggen dat Xamarin volwassen is geworden. Het is de hobby-fase voorbij en het is genoeg doorontwikkeld om er echte apps mee te bouwen!
Tijdens deze sessie zal ik laten zien hoe je gemakkelijk een architectuur opzet voor je Xamarin.Forms app compleet met MVVM, data-binding en commanding, communicatie met een REST API backend, layouts in XAML, en alles wat er verder nog binnen de tijd past.
4. Op de agenda…
4
1 Hoe ziet ie eruit? Wat doet ie? En jullie
gaan hem fantastisch vinden!
De uiteindelijke app
2 Hoe steekt die geweldige app in elkaar?
Welke concepten worden er gebruikt?
De architectuur
3 En hoe ziet dat er dan uit in code?
Projectstructuur en uitwerking architectuur
De code
4 Niet te missen NuGet packages voor het
ontwikkelen met Xamarin
There’s a NuGet for that…
5 Samenvatting, bedankjes, applaus en
pauze houden!
It’s a wrap
8. De architectuur - vervolg
8
Waarom MVVM?
View
View markup code
WinForms, XAML, CSHTML, etc.
Code-behind
Data model
• Moeilijk tot niet te
testen
• Opmaak en logica
vergroeid
9. De architectuur - vervolg
9
Daarom MVVM!
View
View markup code
WinForms, XAML, CSHTML, etc.
Code-behind
Data modelViewModel
Databinding
& Commands
PropertyChanged
10. De architectuur - vervolg
10
Data-binding
• Cruciaal voor MVVM
• Gewone class met gewone
properties
• Toewijzen aan DataContext
• Implementeer
INotifyChanged
• One-way of two-way
11. De architectuur - vervolg
11
FreshMvvm
• Lichtgewicht
• Gebouwd voor Xamarin.Forms
• PageModel to PageModel
navigation
• Ingebouwde IoC
• Open source
• MvvmCross, Prism, Light Mvvm …
15. NuGet packages die we allemaal zouden moeten gebruiken!
15
Xamarin.Plugins.Settings
Simple type (user) settings
Xamarin.Plugins.Connectivity
Network connectivity
ACR.UserDialogs
Alerts, loading, ActionSheets
FreshMvvm
Lightweight, easy to use MVVM framework
PropertyChanged.Fody
INotifyPropertyChanged made easy
FFImageLoading
Image caching, effects, etc.
Polly
Fluent exception handling
Refit
Type-safe REST library
Let op! Bij Forms vaak packages ook installeren
op platform project!