#xamarindevdays - meetupfiles.meetup.com/16095872/dev days 2 - xamarin.forms.pdftraditional xamarin...

31
#XamarinDevDays

Upload: others

Post on 01-Aug-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#

#XamarinDevDays

Page 2: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#
Page 3: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#
Page 4: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#

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

Page 5: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#

✓ 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

Page 6: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#

Layouts

Pages

Stack Absolute Relative Grid ContentView ScrollView Frame

Content MasterDetail Navigation Tabbed Carousel

Page 7: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#

ActivityIndicator BoxView Button DatePicker Editor

Entry Image Label ListView Map

OpenGLView Picker ProgressBar SearchBar Slider

Stepper TableView TimePicker WebView EntryCell

ImageCell SwitchCell TextCell ViewCell

Page 8: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#

Xamarin.Forms Ecosystem

Page 9: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#

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

Page 10: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#

Windows Xamarin.Forms

DataContext BindingContext

{Binding Property} {Binding Property}

ItemsSource ItemsSource

ItemTemplate ItemTemplate

DataTemplate DataTemplate

Page 11: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#
Page 12: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#

<?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>

Page 13: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#
Page 14: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#
Page 15: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#

Xamarin.Formsis Open Source!

open.xamarin.com

Page 16: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#
Page 17: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#

✓ Improves scrolling performance

✓ Old behavior is currently the default (but likely to change)

Page 18: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#

XAML

Parsed and inflated

Parsed & turned

into IL

XAMLC

Page 19: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#

✓ Faster Loading

✓ Smaller App Size

✓ See XAML errors at build time

Page 20: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#
Page 21: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#
Page 22: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#

• Embeddable

Carousel

• ItemTemplate &

DataTemplates

• Highly customizable

& Virtualized

Page 23: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#

✓ Custom renderer “lite”

✓ Change properties on the native control

✓ Optional

✓ “stringly-typed”

X No methods or events

X No replacing the control

Page 24: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#

entry.Effects.Add (Effect.Resolve("Xamarin.BorderEffect"));

Page 25: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#
Page 26: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#
Page 27: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#
Page 28: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#

https://developer.xamarin.com/guides/xamarin-forms/datapages/

Page 29: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#

https://developer.xamarin.com/guides/xamarin-forms/themes/

Page 30: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#

Native Embedding

Page 31: #XamarinDevDays - Meetupfiles.meetup.com/16095872/Dev Days 2 - Xamarin.Forms.pdfTraditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Android C#