"Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner
- 2. 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/
- 3. Make it fast, easy, and fun to
create great native mobile apps.
Xamarin’s Mission
- 4. What is native?
• Xamarin apps look and feel native because they are native
Native User Interfaces Native API Access Native Performance
- 9. 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
- 13. 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
- 15. 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
- 17. <?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
Editor's Notes
- Fix this with website stuff
- Expensive to staff multiple platform-specific teams
Expensive to maintain multiple code bases
Slows innovation
- Poor user experience
– API coverage
– Performance
High abandonment rates
Wasted investment