SlideShare ist ein Scribd-Unternehmen logo
1 von 79
Downloaden Sie, um offline zu lesen
James
Montemagno
Principal Program Manager – Mobile Developer Tools,
Microsoft
motz@microsoft.com Montemagno.com @JamesMontemagno
Weekly development podcast
mergeconflict.fm
Weekly development show
xamarinshow.com
Essentials for mobile success
Intelligent cloudBuild, test, distribute, learnBeautiful native apps
DESKTOP WEB CLOUD MOBILE GAMING IoT AI
.NET
Your platform for building anything
Xamarin: Anything you can do in Objective-C,
Swift, or Java, you can do in C# and Visual Studio
• Native user interface
• High-fidelity API access
• Native performance
iOS C# UI Windows C# UIAndroid C# UI
Shared C# logic
.NET for Mobile Apps
Shared C# codebase • 100% native API access • High performance
Windows APIs
iOS—100% API coverage
MapKit UIKit iBeacon CoreGraphics CoreMotion
Android—100% API coverage
Text-to-speech ActionBar Printing Framework Renderscript NFC
.NET Standard brings it all together
.NET Standard allows
sharing code, binaries
and skills between
.NET client, server and
all of its flavors.
.NET Standard provides
a specification for any
platform to implement
LIBRARIES
INFRASTRUCTURE
.NET STANDARD
DESKTOP WEB CLOUD MOBILE GAMING IoT AI
Xamarin
3 Native User Interfaces
Shared App Logic
iOS C# Android C#
Shared C# logic
Windows C#
Shared C# logic
Shared UI Code
Shared Native User Interfaces
Shared App Logic
Code sharing
stats
Mac
iOS
Android
Windows
iCircuit Touch Draw
86%
14%
72%
28%
70%
30%
61%39%
88%
12%
76%
24%
90%
10%
Evolve App
(Xamarin.Forms)
91%
9%
93%
7%
98%
2%
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.
Xamarin Live Player
Xamarin Live Player Setup
Shared C# Backend
Geolocation Geolocation Geolocation
Compass Compass Compass
Keystore Keystore Keystore
SharedPreferences
Preferences.Get(“my_key”, 0);
NSUserDefaults ApplicationData
Xamarin.Essentials
aka.ms/xamarinessentials
Flashlight
Geolocation
Preferences
Device Info
Device Display Info
Secure Settings
Accelerometer
Battery
Clipboard
Compass
Connectivity
Data Transfer
Email
File SystemGeocoding
Gyroscope
Magnetometer
Phone Dialer
Screen Lock
Sms
Text to Speech
Vibration
Infrastructure
designed for Scale
https://github.com/xamarinhq/app-geocontacts
Without Eager Deploy With Eager Deploy
First Run
Master Detail App
106 seconds 81 seconds
First Run
Smart Hotel 360
179 seconds 161 seconds
† Google Play Services available if you download fishy binary from a random internet site, run an installer,
and copy files to the right places. YMMV.
ResourceDictionary
Improvements
https://github.com/fsprojects/Elmish.XamarinForms
/// The messages dispatched by the view
type Msg = |
/// The model from which the view is generated
type Model = { : }
/// Returns the initial state
let init() = { =false }
/// The funtion to update the view
let update msg Msg model Model =
match with | -> { with = true }
/// The view function giving updated content for the page
let view model Model dispatch =
if then
="I was pressed!"
else
="Press Me!" = fun ->
type App () =
inherit ()
let runner =
|>
|>
|>
https://github.com/praeclarum/Ooui
http://ooui.mecha.parts/
soundbite.fm
<?xml version="1.0" encoding="UTF-8" ?>
<Shell xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Xamarin.Store"
x:Class="Xamarin.StoreDemoApp"
Route="s">
<Shell.FlyoutHeader>
<local:HeaderView />
</Shell.FlyoutHeader>
<Shell.MenuItems>
<MenuItem x:Name="preferencesMenuItem" Text="Preferences" Icon="prefs.png" />
<MenuItem x:Name="logOutMenuItem" Text="Logout" Icon="logout.png" />
</Shell.MenuItems>
<ShellItem Route="home" Title="Home" Icon="home.png" GroupBehavior="ShowTabs">
<ShellTabItem Route="updates" Title="Home" Icon="home.png"
ContentTemplate="{DataTemplate local:HomePage}" />
<ShellTabItem Route="games" Title="Games" Icon="games.png"
ContentTemplate="{DataTemplate local:GamesPage}" />
<ShellTabItem Route="settings" Title="Settings" Icon="games.png"
ContentTemplate="{DataTemplate local:SettingsPage}" />
</ShellItem>
<ShellItem Route="apps" Title="Media" Icon="media.png">
<ShellTabItem Route="books" Title="Books" Icon="books.png"
ContentTemplate="{DataTemplate local:BooksPage}" />
<ShellTabItem Route="music" Title="Music" Icon="music.png"
ContentTemplate="{DataTemplate local:MusicPage}" />
<ShellTabItem Route="movies" Title="Movies" Icon="movies.png"
ContentTemplate="{DataTemplate local:MoviesPage}" />
</ShellItem>
</Shell>
Thank you.
James
Montemagno
Principal Program Manager – Mobile Developer Tools,
Microsoft
motz@microsoft.com Montemagno.com @JamesMontemagno
Weekly development podcast
mergeconflict.fm
Weekly development show
xamarinshow.com

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Oxford .NET - Go Mobile with Xamarin
Oxford .NET - Go Mobile with XamarinOxford .NET - Go Mobile with Xamarin
Oxford .NET - Go Mobile with Xamarin
 
.Net Dev Summit 2020 - What's new and next for Xamarin developers
.Net Dev Summit 2020 - What's new and next for Xamarin developers.Net Dev Summit 2020 - What's new and next for Xamarin developers
.Net Dev Summit 2020 - What's new and next for Xamarin developers
 
Azure App Service Helpers
Azure App Service HelpersAzure App Service Helpers
Azure App Service Helpers
 
Taking Mobile Development Serverless with C#
Taking Mobile Development Serverless with C#Taking Mobile Development Serverless with C#
Taking Mobile Development Serverless with C#
 
.Net Standard Libraries and Xamarin
.Net Standard Libraries and Xamarin.Net Standard Libraries and Xamarin
.Net Standard Libraries and Xamarin
 
End to-end native iOS, Android and Windows apps wtih Xamarin
End to-end native iOS, Android and Windows apps wtih XamarinEnd to-end native iOS, Android and Windows apps wtih Xamarin
End to-end native iOS, Android and Windows apps wtih Xamarin
 
MS Experiences 17 - Xamarin: Future of Mobile Development
MS Experiences 17 - Xamarin: Future of Mobile DevelopmentMS Experiences 17 - Xamarin: Future of Mobile Development
MS Experiences 17 - Xamarin: Future of Mobile Development
 
Visual Studio 2017 Launch Event
Visual Studio 2017 Launch EventVisual Studio 2017 Launch Event
Visual Studio 2017 Launch Event
 
Introduction to Xamarin for Visual Studio 2017
Introduction to Xamarin for Visual Studio 2017Introduction to Xamarin for Visual Studio 2017
Introduction to Xamarin for Visual Studio 2017
 
An introduction to Xamarin
An introduction to XamarinAn introduction to Xamarin
An introduction to Xamarin
 
.NET North UG - What’s new & next for Xamarin developers
.NET North UG - What’s new & next for Xamarin developers.NET North UG - What’s new & next for Xamarin developers
.NET North UG - What’s new & next for Xamarin developers
 
Hybrid Mobile App Development - Xamarin
Hybrid Mobile App Development - XamarinHybrid Mobile App Development - Xamarin
Hybrid Mobile App Development - Xamarin
 
Creating Island Tracker - Xamarin, Azure Functions, Table Storage, & More
Creating Island Tracker - Xamarin, Azure Functions, Table Storage, & MoreCreating Island Tracker - Xamarin, Azure Functions, Table Storage, & More
Creating Island Tracker - Xamarin, Azure Functions, Table Storage, & More
 
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Xamarin Cross-Platform with Xamarin.Form, MvvmCross
Xamarin Cross-Platform with Xamarin.Form, MvvmCrossXamarin Cross-Platform with Xamarin.Form, MvvmCross
Xamarin Cross-Platform with Xamarin.Form, MvvmCross
 
Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...
Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...
Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...
 
C# Powered Robots, C# Powered Mobile Apps
C# Powered Robots, C# Powered Mobile AppsC# Powered Robots, C# Powered Mobile Apps
C# Powered Robots, C# Powered Mobile Apps
 
Building Your First Xamarin.Forms App
Building Your First Xamarin.Forms AppBuilding Your First Xamarin.Forms App
Building Your First Xamarin.Forms App
 
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCrossC# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
 

Ähnlich wie Xamarin: The Future of App Development

Ähnlich wie Xamarin: The Future of App Development (20)

20141216 멜팅팟 부산 세션 ii - cross platform 개발
20141216 멜팅팟 부산   세션 ii - cross platform 개발20141216 멜팅팟 부산   세션 ii - cross platform 개발
20141216 멜팅팟 부산 세션 ii - cross platform 개발
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin Platform
 
Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)
 
mobicon_paper
mobicon_papermobicon_paper
mobicon_paper
 
What's new and next for mobile development with .NET
What's new and next for mobile development with .NETWhat's new and next for mobile development with .NET
What's new and next for mobile development with .NET
 
TechEd Europe 2014 DEV-B217 Go Mobile with C#, Xamarin, and Visual STudio
TechEd Europe  2014 DEV-B217 Go Mobile with C#, Xamarin, and Visual STudioTechEd Europe  2014 DEV-B217 Go Mobile with C#, Xamarin, and Visual STudio
TechEd Europe 2014 DEV-B217 Go Mobile with C#, Xamarin, and Visual STudio
 
Introduction to Xamarin.Forms
Introduction to Xamarin.FormsIntroduction to Xamarin.Forms
Introduction to Xamarin.Forms
 
What's New, Hot, & Awesome for Xamarin Developers!
What's New, Hot, & Awesome for Xamarin Developers!What's New, Hot, & Awesome for Xamarin Developers!
What's New, Hot, & Awesome for Xamarin Developers!
 
Cloud-connected apps with Visual Studio, Xamarin, and Azure
Cloud-connected apps with Visual Studio, Xamarin, and AzureCloud-connected apps with Visual Studio, Xamarin, and Azure
Cloud-connected apps with Visual Studio, Xamarin, and Azure
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin Platform
 
Building mobile apps with Visual Studio and Xamarin
Building mobile apps with Visual Studio and XamarinBuilding mobile apps with Visual Studio and Xamarin
Building mobile apps with Visual Studio and Xamarin
 
Cross platform mobile app development tools review
Cross platform mobile app development tools reviewCross platform mobile app development tools review
Cross platform mobile app development tools review
 
Developing Cross-platform Native Apps with Xamarin
Developing Cross-platform Native Apps with XamarinDeveloping Cross-platform Native Apps with Xamarin
Developing Cross-platform Native Apps with Xamarin
 
Andrew Resume
Andrew ResumeAndrew Resume
Andrew Resume
 
Xamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar PatnaikXamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar Patnaik
 
How To Hire A Team To Develop WebRTC Based Applications_.pdf
How To Hire A Team To Develop WebRTC Based Applications_.pdfHow To Hire A Team To Develop WebRTC Based Applications_.pdf
How To Hire A Team To Develop WebRTC Based Applications_.pdf
 
Enterprise-grade mobile barcode scanning with Scandit and Xamarin
Enterprise-grade mobile barcode scanning with Scandit and XamarinEnterprise-grade mobile barcode scanning with Scandit and Xamarin
Enterprise-grade mobile barcode scanning with Scandit and Xamarin
 
Native i os, android, and windows development in c# with xamarin 4
Native i os, android, and windows development in c# with xamarin 4Native i os, android, and windows development in c# with xamarin 4
Native i os, android, and windows development in c# with xamarin 4
 
What's new in Visual Studio for Mac for .NET Developers
What's new in Visual Studio for Mac for .NET DevelopersWhat's new in Visual Studio for Mac for .NET Developers
What's new in Visual Studio for Mac for .NET Developers
 
Xamarin y MS Azure | Cognitive Services
Xamarin y MS Azure | Cognitive ServicesXamarin y MS Azure | Cognitive Services
Xamarin y MS Azure | Cognitive Services
 

Mehr von James Montemagno

Mehr von James Montemagno (11)

Building Stream Deck Plugins in C#
Building Stream Deck Plugins in C#Building Stream Deck Plugins in C#
Building Stream Deck Plugins in C#
 
Expert Day - What's New, Hot, & Awesome for Xamarin Devs
Expert Day - What's New, Hot, & Awesome for Xamarin DevsExpert Day - What's New, Hot, & Awesome for Xamarin Devs
Expert Day - What's New, Hot, & Awesome for Xamarin Devs
 
Xamarin - New & Awesome + Building Xamarin.Essentials
Xamarin - New & Awesome + Building Xamarin.EssentialsXamarin - New & Awesome + Building Xamarin.Essentials
Xamarin - New & Awesome + Building Xamarin.Essentials
 
Zebra App Forum 2019 - Building iOS & Android Apps with Xamarin
Zebra App Forum 2019 - Building iOS & Android Apps with XamarinZebra App Forum 2019 - Building iOS & Android Apps with Xamarin
Zebra App Forum 2019 - Building iOS & Android Apps with Xamarin
 
Stunning Mobile Apps with the Xamarin Visual Design System​
Stunning Mobile Apps with the Xamarin Visual Design System​Stunning Mobile Apps with the Xamarin Visual Design System​
Stunning Mobile Apps with the Xamarin Visual Design System​
 
AnDevCon - Android and iOS Apps in C# with Xamarin
AnDevCon - Android and iOS Apps in C# with XamarinAnDevCon - Android and iOS Apps in C# with Xamarin
AnDevCon - Android and iOS Apps in C# with Xamarin
 
Xcoders - iOS & Android Development in C# with Xamarin
Xcoders - iOS & Android Development in C# with XamarinXcoders - iOS & Android Development in C# with Xamarin
Xcoders - iOS & Android Development in C# with Xamarin
 
Evovle 2016 - Everyone Can Create Beautiful Apps with Material Design
Evovle 2016 - Everyone Can Create Beautiful Apps with Material DesignEvovle 2016 - Everyone Can Create Beautiful Apps with Material Design
Evovle 2016 - Everyone Can Create Beautiful Apps with Material Design
 
What's new in Xamarin.Forms?
What's new in Xamarin.Forms?What's new in Xamarin.Forms?
What's new in Xamarin.Forms?
 
Xamarin Evolve 2016: Mobile search - making your mobile apps stand out
Xamarin Evolve 2016: Mobile search - making your mobile apps stand outXamarin Evolve 2016: Mobile search - making your mobile apps stand out
Xamarin Evolve 2016: Mobile search - making your mobile apps stand out
 
Don't let your mobile app get lost - iOS Spotlight and App Indexing
Don't let your mobile app get lost  - iOS Spotlight and App IndexingDon't let your mobile app get lost  - iOS Spotlight and App Indexing
Don't let your mobile app get lost - iOS Spotlight and App Indexing
 

Kürzlich hochgeladen

Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
Epec Engineered Technologies
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
MsecMca
 

Kürzlich hochgeladen (20)

Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
Air Compressor reciprocating single stage
Air Compressor reciprocating single stageAir Compressor reciprocating single stage
Air Compressor reciprocating single stage
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 

Xamarin: The Future of App Development

  • 1.
  • 2. James Montemagno Principal Program Manager – Mobile Developer Tools, Microsoft motz@microsoft.com Montemagno.com @JamesMontemagno Weekly development podcast mergeconflict.fm Weekly development show xamarinshow.com
  • 3. Essentials for mobile success Intelligent cloudBuild, test, distribute, learnBeautiful native apps
  • 4. DESKTOP WEB CLOUD MOBILE GAMING IoT AI .NET Your platform for building anything
  • 5. Xamarin: Anything you can do in Objective-C, Swift, or Java, you can do in C# and Visual Studio • Native user interface • High-fidelity API access • Native performance
  • 6. iOS C# UI Windows C# UIAndroid C# UI Shared C# logic .NET for Mobile Apps Shared C# codebase • 100% native API access • High performance
  • 8. iOS—100% API coverage MapKit UIKit iBeacon CoreGraphics CoreMotion
  • 9. Android—100% API coverage Text-to-speech ActionBar Printing Framework Renderscript NFC
  • 10.
  • 11. .NET Standard brings it all together .NET Standard allows sharing code, binaries and skills between .NET client, server and all of its flavors. .NET Standard provides a specification for any platform to implement LIBRARIES INFRASTRUCTURE .NET STANDARD DESKTOP WEB CLOUD MOBILE GAMING IoT AI
  • 12. Xamarin 3 Native User Interfaces Shared App Logic iOS C# Android C# Shared C# logic Windows C# Shared C# logic Shared UI Code Shared Native User Interfaces Shared App Logic
  • 13. Code sharing stats Mac iOS Android Windows iCircuit Touch Draw 86% 14% 72% 28% 70% 30% 61%39% 88% 12% 76% 24% 90% 10% Evolve App (Xamarin.Forms) 91% 9% 93% 7% 98% 2%
  • 14. 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.
  • 17.
  • 18.
  • 19.
  • 20. Shared C# Backend Geolocation Geolocation Geolocation Compass Compass Compass Keystore Keystore Keystore
  • 22. Xamarin.Essentials aka.ms/xamarinessentials Flashlight Geolocation Preferences Device Info Device Display Info Secure Settings Accelerometer Battery Clipboard Compass Connectivity Data Transfer Email File SystemGeocoding Gyroscope Magnetometer Phone Dialer Screen Lock Sms Text to Speech Vibration
  • 23.
  • 24.
  • 26.
  • 27.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37. Without Eager Deploy With Eager Deploy First Run Master Detail App 106 seconds 81 seconds First Run Smart Hotel 360 179 seconds 161 seconds
  • 38. † Google Play Services available if you download fishy binary from a random internet site, run an installer, and copy files to the right places. YMMV.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72. https://github.com/fsprojects/Elmish.XamarinForms /// The messages dispatched by the view type Msg = | /// The model from which the view is generated type Model = { : } /// Returns the initial state let init() = { =false } /// The funtion to update the view let update msg Msg model Model = match with | -> { with = true } /// The view function giving updated content for the page let view model Model dispatch = if then ="I was pressed!" else ="Press Me!" = fun -> type App () = inherit () let runner = |> |> |>
  • 73.
  • 76.
  • 77. <?xml version="1.0" encoding="UTF-8" ?> <Shell xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:Xamarin.Store" x:Class="Xamarin.StoreDemoApp" Route="s"> <Shell.FlyoutHeader> <local:HeaderView /> </Shell.FlyoutHeader> <Shell.MenuItems> <MenuItem x:Name="preferencesMenuItem" Text="Preferences" Icon="prefs.png" /> <MenuItem x:Name="logOutMenuItem" Text="Logout" Icon="logout.png" /> </Shell.MenuItems> <ShellItem Route="home" Title="Home" Icon="home.png" GroupBehavior="ShowTabs"> <ShellTabItem Route="updates" Title="Home" Icon="home.png" ContentTemplate="{DataTemplate local:HomePage}" /> <ShellTabItem Route="games" Title="Games" Icon="games.png" ContentTemplate="{DataTemplate local:GamesPage}" /> <ShellTabItem Route="settings" Title="Settings" Icon="games.png" ContentTemplate="{DataTemplate local:SettingsPage}" /> </ShellItem> <ShellItem Route="apps" Title="Media" Icon="media.png"> <ShellTabItem Route="books" Title="Books" Icon="books.png" ContentTemplate="{DataTemplate local:BooksPage}" /> <ShellTabItem Route="music" Title="Music" Icon="music.png" ContentTemplate="{DataTemplate local:MusicPage}" /> <ShellTabItem Route="movies" Title="Movies" Icon="movies.png" ContentTemplate="{DataTemplate local:MoviesPage}" /> </ShellItem> </Shell>
  • 78.
  • 79. Thank you. James Montemagno Principal Program Manager – Mobile Developer Tools, Microsoft motz@microsoft.com Montemagno.com @JamesMontemagno Weekly development podcast mergeconflict.fm Weekly development show xamarinshow.com