"intro to-xamarin.forms", Кирилл Стативкин, microsoft student partner

28
Intro to Xamarin.Forms Kirill Stativkin Microsoft Student Partner kirill.stativkin@studentpa rtner.com

Upload: alina-vilk

Post on 24-Jan-2017

100 views

Category:

Education


3 download

TRANSCRIPT

Page 1: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

Intro to Xamarin.Forms

Kirill StativkinMicrosoft Student [email protected]

Page 2: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

Microsoft Student Partner Ukraine/FranceC# Mobile developerFull Stack C# developer Iafoo.com France

https://www.facebook.com/kirill.stativkin

Xamarin User Group Ukrainehttps://www.facebook.com/groups/xamarin.ua/

Page 3: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

Make it fast, easy, and fun to create great native mobile

apps.

Xamarin’s Mission

Page 4: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

What is native?

• Xamarin apps look and feel native because they are native

Native User Interfaces Native API Access Native Performance

Page 5: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

The Silo Approach

Build App Multiple Times

Page 6: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

The Write-Once-Run-Anywhere Approach

Lowest CommonDenominator

Page 7: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

Xamarin’s Unique Approach

Shared C# codebase • 100% native API access • High performance

iOS C# UI Android C# UI Windows C# UI

Shared C# Mobile

Page 8: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

Visual Studio

Xamarin Studio

Page 9: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

Native Performance

Xamarin.iOS does full Ahead Of Time (﴾AOT) ﴿ compilation to produce an ARM binary for Apple’s App Store.

Xamarin.Android takes advantage of Just In Time (﴾JIT) ﴿ compilation on the Android device.

.NETC#

Compile

and Link.APK

Bindings

IL+ JIT

Runs Native

ly

Page 10: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner
Page 11: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner
Page 12: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

Xamarin + Xamarin.Forms

Traditional Xamarin Approach

With Xamarin.Forms:More code-‐sharing,

all native

Shared UI Code

Shared C# Backend

iOS C# UI Android C# UI Windows C# UI

Shared C# Backend

Page 13: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

What’s included✓ 40+ Pages, layouts, and

controls(﴾Build from code behind or XAML)﴿

✓ Two-‐way data binding✓ Navigation✓ Animation API✓ Dependency Service✓ Messaging Center

Shared UI Code

Shared C# Backend

Page 14: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

Layouts

Pages

Stack

Absolute

Relative

Grid

ContentView

ScrollView

Frame

Content

MasterDetail

Navigation

Tabbed

Page 15: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

ActivityIndicator

BoxView Button DatePicker Editor

Entry Image Label ListView Map

OpenGLView Picker ProgressBar SearchBar Slider

Stepper TableView TimePicker WebView EntryCell

ImageCell SwitchCell TextCell ViewCell

Controls

Page 16: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

Windows Xamarin.FormsStackPanel StackLayoutTextBox EntryListBox ListViewCheckBox SwitchProgressBar ActivityIndicatorGrid GridLabel LabelButton ButtonImage ImageDate/TimePicker Date/TimePicker

Control Comparison

Page 17: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

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

Native UI from shared code

Page 18: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

Demo

Page 19: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

Windows APIs

100%Coverage

Page 20: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

iOS APIs

100%Coverage

Page 21: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

Android APIs

100%Coverage

Page 22: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

Demo

Page 23: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner
Page 24: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

Data pages

Page 25: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner
Page 26: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

Demo

Page 27: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

Get Started Today xamarin.com

Page 28: "Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner

Kirill StativkinMicrosoft Student [email protected]

Thank you. Questions?

https://www.facebook.com/groups/xamarin.ua/