Intro to Xamarin.Forms: 
Lessons learned 
Eric Polerecky - @detroitpro
Building Apps with Xamarin
Building Apps with Xamarin.Forms
Xamarin.Forms: What’s in the box 
Pages 
Layouts 
Controls 
Code behind or XAML 
Two-Way Data Binding 
Navigation 
Animation API 
Dependency Service 
Messaging Center
Xamarin.Forms: What we used 
Pages 
Layouts 
Controls 
Code behind or XAML 
Two-Way Data Binding 
Navigation 
Animation API 
Dependency Service 
Messaging Center
Xamarin.Forms: Controls 
! 
ActivityIndicator 
BoxView 
Button 
DatePicker 
Editor 
Entry 
Image 
Label 
! 
ListView 
Map 
OpenGLView 
Picker 
ProgressBar 
SearchBar 
Slider 
Stepper 
TableView 
TimePicker 
WebView 
EntryCell 
ImageCell 
SwitchCell 
TextCell 
ViewCell
Xamarin.Forms: Controls we used 
! 
ActivityIndicator 
BoxView 
Button 
DatePicker 
Editor 
Entry 
Image 
Label 
! 
ListView 
Map 
OpenGLView 
Picker 
ProgressBar 
SearchBar 
Slider 
Stepper 
TableView 
TimePicker 
WebView 
EntryCell 
ImageCell 
SwitchCell 
TextCell 
ViewCell
Control Explanation: Entry
Xamarin.Forms: Layouts
Xamarin.Forms: Layouts we used
Demo Time!: 
TODO: Create App! and REPO!
Our Application: 
Wantify Lessons Learned
What was good 
Relative Layouts 
Stack Layouts 
Custom Renderers 
Commands/Events
What was bad 
List editing 
Borders 
Creating custom renderers for 
components 
Custom Renderer learning curve 
List view API learning curve 
no strong typed context for lists
List Editing Pains
Custom Renderers We Built 
iOS Segmented Control 
Truncated Label Render 
Rounded Button 
Table Separator Style 
Facebook Login for Component 
Borderless Entry 
Strikethrough 
17 Total. 
! 
Most controls are very simple 
and extend basic Xamarin 
forms functionality.
Infrastructure we built 
Local Cache - (in memory) 
HTTP message handling 
Navigation Abstraction - goto: 
Image Cache 
The Formatter!
Xamarin Components 
Raygun4net Azure Messaging Xamarin.Auth
Tip and Tricks 
Async/Await all the things 
Async in OnAppearing 
Can’t put async in ctor. Get view model/data in 
OnAppearing and hydrate form controls on page. 
Strong type: 
Colors 
Images 
Fonts 
Routes 
Shared PCL 
Share mobile PCL with server, holds view models 
and services to call back to server.
Non-Forms Awesome Stuff 
Nuget! 
Components 
Xamarin Studio 
Mono Updates 
Forums - http://forums.xamarin.com/
What we want to do more of: 
MVVM 
XAML 
Azure Mobile Services (OAuth, Identity) 
Auth0
Questions…and maybe answers.
The End

Lessons Learned: 4 Months of Xamarin.Forms

  • 1.
    Intro to Xamarin.Forms: Lessons learned Eric Polerecky - @detroitpro
  • 2.
  • 3.
    Building Apps withXamarin.Forms
  • 4.
    Xamarin.Forms: What’s inthe box Pages Layouts Controls Code behind or XAML Two-Way Data Binding Navigation Animation API Dependency Service Messaging Center
  • 5.
    Xamarin.Forms: What weused Pages Layouts Controls Code behind or XAML Two-Way Data Binding Navigation Animation API Dependency Service Messaging Center
  • 6.
    Xamarin.Forms: Controls ! ActivityIndicator BoxView Button DatePicker Editor Entry Image Label ! ListView Map OpenGLView Picker ProgressBar SearchBar Slider Stepper TableView TimePicker WebView EntryCell ImageCell SwitchCell TextCell ViewCell
  • 7.
    Xamarin.Forms: Controls weused ! ActivityIndicator BoxView Button DatePicker Editor Entry Image Label ! ListView Map OpenGLView Picker ProgressBar SearchBar Slider Stepper TableView TimePicker WebView EntryCell ImageCell SwitchCell TextCell ViewCell
  • 8.
  • 9.
  • 10.
  • 11.
    Demo Time!: TODO:Create App! and REPO!
  • 12.
    Our Application: WantifyLessons Learned
  • 13.
    What was good Relative Layouts Stack Layouts Custom Renderers Commands/Events
  • 14.
    What was bad List editing Borders Creating custom renderers for components Custom Renderer learning curve List view API learning curve no strong typed context for lists
  • 15.
  • 16.
    Custom Renderers WeBuilt iOS Segmented Control Truncated Label Render Rounded Button Table Separator Style Facebook Login for Component Borderless Entry Strikethrough 17 Total. ! Most controls are very simple and extend basic Xamarin forms functionality.
  • 17.
    Infrastructure we built Local Cache - (in memory) HTTP message handling Navigation Abstraction - goto: Image Cache The Formatter!
  • 18.
    Xamarin Components Raygun4netAzure Messaging Xamarin.Auth
  • 19.
    Tip and Tricks Async/Await all the things Async in OnAppearing Can’t put async in ctor. Get view model/data in OnAppearing and hydrate form controls on page. Strong type: Colors Images Fonts Routes Shared PCL Share mobile PCL with server, holds view models and services to call back to server.
  • 20.
    Non-Forms Awesome Stuff Nuget! Components Xamarin Studio Mono Updates Forums - http://forums.xamarin.com/
  • 21.
    What we wantto do more of: MVVM XAML Azure Mobile Services (OAuth, Identity) Auth0
  • 22.
  • 23.