Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Xamarin Forms

502 views

Published on

Slides for Xamarin.Forms presentation i did on Xamarin Dev Days Singapore.

Published in: Mobile
  • Be the first to comment

Xamarin Forms

  1. 1. #XamarinDevDays
  2. 2. Traditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Windows C# UIAndroid C# UI Shared C# Backend Shared UI Code Shared C# Backend
  3. 3. ✓ 40+ Pages, layouts, and controls (Build from code behind or XAML) ✓ Two-way data binding ✓ Navigation ✓ Animation API ✓ Dependency Service ✓ Messaging Center Shared C# Backend Shared UI Code
  4. 4. Layouts Pages Stack Absolute Relative Grid ContentView ScrollView Frame Content MasterDetail Navigation Tabbed Carousel
  5. 5. ActivityIndicator BoxView Button DatePicker Editor Entry Image Label ListView Map OpenGLView Picker ProgressBar SearchBar Slider Stepper TableView TimePicker WebView EntryCell ImageCell SwitchCell TextCell ViewCell
  6. 6. Xamarin.Forms Ecosystem
  7. 7. Windows Xamarin.Forms StackPanel StackLayout TextBox Entry ListBox ListView CheckBox Switch ProgressBar ActivityIndicator Grid Grid Label Label Button Button Image Image Date/TimePicker Date/TimePicker
  8. 8. Windows Xamarin.Forms DataContext BindingContext {Binding Property} {Binding Property} ItemsSource ItemsSource ItemTemplate ItemTemplate DataTemplate DataTemplate
  9. 9. <?xml version="1.0" encoding="UTF-8"?> <TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="MyApp.MainPage"> <TabbedPage.Children> <ContentPage Title="Profile" Icon="Profile.png"> <StackLayout Spacing="20" Padding="20" VerticalOptions="Center"> <Entry Placeholder="Username" Text="{Binding Username}"/> <Entry Placeholder="Password" Text="{Binding Password}" IsPassword="true"/> <Button Text="Login" TextColor="White" BackgroundColor="#77D065" Command="{Binding LoginCommand}"/> </StackLayout> </ContentPage> <ContentPage Title="Settings" Icon="Settings.png"> <!-- Settings --> </ContentPage> </TabbedPage.Children> </TabbedPage>
  10. 10. Xamarin.Forms is Open Source! open.xamarin.com
  11. 11. ✓ Improves scrolling performance ✓ Old behavior is currently the default (but likely to change)
  12. 12. XAML Parsed and inflated Parsed & turned into IL XAMLC
  13. 13. ✓ Faster Loading ✓ Smaller App Size ✓ See XAML errors at build time
  14. 14. • Embeddable Carousel • ItemTemplate & DataTemplates • Highly customizable & Virtualized
  15. 15. ✓ Custom renderer “lite” ✓ Change properties on the native control ✓ Optional ✓ “stringly-typed” X No methods or events X No replacing the control
  16. 16. entry.Effects.Add (Effect.Resolve("Xamarin.BorderEffect"));
  17. 17. Native Embedding
  18. 18. https://developer.xamarin.com/guides/xamarin-forms/datapages/
  19. 19. https://developer.xamarin.com/guides/xamarin-forms/themes/
  20. 20. 20 Minute Break Rui Marinho Software Engineer – Xamarin Forms rumar@microsoft.com Github.com/rmarinho @ruiespinho

×