SlideShare a Scribd company logo
Intro to Xamarin.Forms
Kirill Stativkin
Microsoft Student Partner
kirill.stativkin@studentpartner.com
Microsoft Student Partner Ukraine/France
C# Mobile developer
Full Stack C# developer Iafoo.com France
https://www.facebook.com/kirill.stativkin
Xamarin User Group Ukraine
https://www.facebook.com/groups/xamarin.ua/
Make it fast, easy, and fun to
create great native mobile apps.
Xamarin’s Mission
What is native?
• Xamarin apps look and feel native because they are native
Native User Interfaces Native API Access Native Performance
The Silo Approach
Build App
Multiple Times
The Write-Once-Run-Anywhere Approach
Lowest Common
Denominator
Xamarin’s UniqueApproach
Shared C# codebase • 100% nativeAPI access • High performance
iOS C# UI Android C#UI Windows C#UI
Shared C# Mobile
Visual Studio XamarinStudio
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.
.NET
C#
Compile
and Link
.APK
Bindings
IL
+
JIT
Runs
Natively
"Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner
"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
What’sincluded
✓ 40+ Pages, layouts, and controls
(﴾Build from code behind orXAML)﴿
✓ Two-‐waydata binding
✓ Navigation
✓ Animation API
✓ Dependency Service
✓ Messaging Center
Shared UI Code
Shared C# Backend
Layouts
Pages
Stack Absolute Relative Grid ContentView ScrollView Frame
Content MasterDetail Navigation Tabbed
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
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
Control
Comparison
<?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 sharedcode
Demo
Windows
APIs
100%
Coverage
iOS
APIs
100%
Coverage
Android
APIs
100%
Coverage
Demo
"Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner
Data pages
"Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner
Demo
Get Started Today
xamarin.com
Kirill
Stativkin
Microsoft Student Partner
Kirill.Stativkin@studentpartner.com
Thank you. Questions?
https://www.facebook.com/groups/xamarin.ua/

More Related Content

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

Editor's Notes

  1. Fix this with website stuff
  2. Expensive to staff multiple platform-specific teams Expensive to maintain multiple code bases Slows innovation
  3. Poor user experience – API coverage – Performance High abandonment rates Wasted investment