SlideShare a Scribd company logo
James Montemagno
Program Manager
Microsoft
Intermediate
T02
Stunning Mobile Apps with the
Xamarin Visual Design System
.NET
What is Xamarin?
An open source app platform
from Microsoft for
building modern & performant
iOS, Android, macOS,
watchOS, & tvOS apps with .NET.
aka.ms/xamarin-showcase
Shared C#
Business Logic • Platform APIs • User Interface
Xamarin App Architecture
Shared C# codebase • 100% native API access • High performance
.NET
C# C# C#
Xamarin App Architecture
Shared C#
Business Logic • Platform APIs • User Interface
.NET
C# C# C#
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
Xamarin.Essentials: Cross-Platform Native APIs
Shared C#
Business Logic • User Interface
.NET
C# C# C#
Xamarin.Essentials
Xamarin.Forms: Cross-Platform Native UI
.NET
C# C#
Shared C#
Business Logic
Xamarin.Essentials
C#
Xamarin.Forms - UI
• 480x320 display at 163ppi
• 128 Mb RAM
• 32 bit ARM at 412Mhz
• GeekScore ~120
• 2 megapixel camera
• PowerVR GPU at 150Mhz
iPhone 3G iPhone XS
Today
Today
Google Says Apple Says
Google Says Apple Says
Google Says Apple Says
And So It Begins…
Google Says Apple Says
Exaclty the
Same
34%
Mostly the
Same
56%
Distinct
10%
Controls
Effects Behaviors
PlatformSpecifics
Custom Controls
Custom Renderers
Skia
Third Party
Controls
???????
Styles OnPlatform
Enter Visual
Material Visual
Visual="Material"
Visual
• Sets of renderers
• Adhering to a specific design system
• Beginning with Material Design
• ActivityIndicator
• Button
• Editor
• Entry
• Frame
• Picker
• ProgressBar
• Slider
• Stepper
Visual – The Renderer Process
Forms.Init
Registers Button
renderers by type
and visual marker
new
ContentPage()
App parses UI
graph which asks
for a Button
Looks up
renderer by
type & visual
Fallback is default
renderer
Creates
detached
instance
Populates
properties
Attaches
to visual
tree
Why Consistency Matters
“By supporting one UI we can move faster than our
competition.”
“By supporting one UI we can move faster than our
competition.”
“Our company supports many apps, so sharing more
code means less burden of support.”
“By supporting one UI we can move faster than our
competition.”
“Our company supports many apps, so sharing more
code means less burden of support.”
“To get approved by the regulatory body (FDA).”
A design system is a series of
components that can be reused in
different combinations. Design
systems allow you to manage
design at scale.
https://www.forumone.com/ideas/what-is-design-system/
Material Design
• Material is a
Designers wishing to give their suite
of products a unique but
consistent look and feel define a
design language for it, which can
describe choices for design aspects
such as materials, colour schemes,
shapes, patterns, textures, or
layouts.
https://en.wikipedia.org/wiki/Design_language
Material Design
• Material is a
Designers wishing to give their suite
of products a unique but
consistent look and feel define a
design language for it, which can
describe choices for design aspects
such as materials, colour schemes,
shapes, patterns, textures, or
layouts.
https://en.wikipedia.org/wiki/Design_language
Material Design
• Material is a
Material Design
• Material is a
Material Design
• Material is a
Material Design
• Material is a
Material Design
• Material is a
Material Design
 Material is a
Material Design
• Material is a
Material Design
• Material is a
Material Design
• Material is a
Material Design
• Material is a
Material Design
• Material is a
Material Design
• Material is a
Material Design
• Material is a
Bring Your Design System
Material Visual
[assembly: ExportRenderer(typeof(Xamarin.Forms.Button),
typeof(MaterialButtonRenderer),
new[] { typeof(VisualMarker.MaterialVisual) })
]
namespace Xamarin.Forms.Material.Android
{
public class MaterialButtonRenderer : MButton, ...
{
Material Visual
[assembly: ExportRenderer(typeof(Xamarin.Forms.Button),
typeof(MaterialButtonRenderer),
new[] { typeof(VisualMarker.MaterialVisual) })
]
namespace Xamarin.Forms.Material.Android
{
public class MaterialButtonRenderer : MButton, ...
{
Material Visual
[assembly: ExportRenderer(typeof(Xamarin.Forms.Button),
typeof(Xamarin.Forms.Material.iOS.MaterialButtonRenderer),
new[] { typeof(VisualMarker.MaterialVisual) })
]
namespace Xamarin.Forms.Material.iOS
{
public class MaterialButtonRenderer :
ViewRenderer<Button, MButton>, ...
Material Visual
[assembly: ExportRenderer(typeof(Xamarin.Forms.Button),
typeof(Xamarin.Forms.Material.iOS.MaterialButtonRenderer),
new[] { typeof(VisualMarker.MaterialVisual) })
]
namespace Xamarin.Forms.Material.iOS
{
public class MaterialButtonRenderer :
ViewRenderer<Button, MButton>, ...
Material Visual
namespace Xamarin.Forms
{
public static class FormsMaterial
{
public static void Init(Context context, Bundle bundle)
{
// my only purpose is to exist so when called
// this dll doesn't get removed
VisualMarker.RegisterMaterial();
}
}
}
Original - Coinbase
Original - Quantas
Before Visual After Visual
Dribble - Mockup
https://www.thewissen.io/travel-broadens-the-mind/
Consistent Navigation &
App Structure
Flyout Made Simple
<FlyoutItem Title="Browse" Icon="tab_feed.png">
<ShellContent ContentTemplate="{DataTemplate local:ItemsPage}" />
</FlyoutItem>
<FlyoutItem Title="About" Icon="tab_about.png">
<ShellContent ContentTemplate="{DataTemplate local:AboutPage}" />
</FlyoutItem>
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:views="clr-namespace:App6.Views"
x:Class="App6.Views.MainPage">
<MasterDetailPage.Master>
<views:MenuPage />
</MasterDetailPage.Master>
<MasterDetailPage.Detail>
<NavigationPage>
<NavigationPage.Icon>
<OnPlatform x:TypeArguments="FileImageSource">
<On Platform="iOS" Value="tab_feed.png"/>
</OnPlatform>
</NavigationPage.Icon>
<x:Arguments>
<views:ItemsPage />
</x:Arguments>
</NavigationPage>
</MasterDetailPage.Detail>
</MasterDetailPage>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006
mc:Ignorable="d"
x:Class="App6.Views.MenuPage"
Title="Menu">
<StackLayout VerticalOptions="FillAndExpand">
<ListView x:Name="ListViewMenu"
HasUnevenRows="True">
<d:ListView.ItemsSource>
<x:Array Type="{x:Type x:String}">
<x:String>Item 1</x:String>
<x:String>Item 2</x:String>
</x:Array>
</d:ListView.ItemsSource>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid Padding="10">
<Label Text="{Binding Title}" d:Text="{Binding .}"
FontSize="20"/>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ContentPage>
menuItems = new List<HomeMenuItem>
{
new HomeMenuItem {Id = MenuItemType.Browse, Title="Browse" },
new HomeMenuItem {Id = MenuItemType.About, Title="About" }
};
ListViewMenu.ItemsSource = menuItems;
ListViewMenu.SelectedItem = menuItems[0];
ListViewMenu.ItemSelected += async (sender, e) =>
{
if (e.SelectedItem == null)
return;
var id = (int)((HomeMenuItem)e.SelectedItem).Id;
await RootPage.NavigateFromMenu(id);
};
public partial class MainPage : MasterDetailPage
{
Dictionary<int, NavigationPage> MenuPages = new Dictionary<int, NavigationPage>();
public MainPage()
{
InitializeComponent();
MasterBehavior = MasterBehavior.Popover;
MenuPages.Add((int)MenuItemType.Browse, (NavigationPage)Detail);
}
public async Task NavigateFromMenu(int id)
{
if (!MenuPages.ContainsKey(id))
{
switch (id)
{
case (int)MenuItemType.Browse:
MenuPages.Add(id, new NavigationPage(new ItemsPage()));
break;
case (int)MenuItemType.About:
MenuPages.Add(id, new NavigationPage(new AboutPage()));
break;
}
}
var newPage = MenuPages[id];
if (newPage != null && Detail != newPage)
{
Detail = newPage;
if (Device.RuntimePlatform == Device.Android)
await Task.Delay(100);
IsPresented = false;
}
}
}
Scenarios
1 Page Bottom Tabs Bottom & Top Tabs FlyoutTop Tabs
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

More Related Content

What's hot

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
James Montemagno
 
Xamarin microsoft graph
Xamarin microsoft graphXamarin microsoft graph
Xamarin microsoft graph
Nicolò Carandini
 
Connected Mobile Apps with Microsoft Azure
Connected Mobile Apps with Microsoft AzureConnected Mobile Apps with Microsoft Azure
Connected Mobile Apps with Microsoft Azure
Xamarin
 
Highlights from the Xamarin Evolve 2016 conference
Highlights from the Xamarin Evolve 2016 conferenceHighlights from the Xamarin Evolve 2016 conference
Highlights from the Xamarin Evolve 2016 conference
Christopher Miller
 
Xamarin.Forms
Xamarin.FormsXamarin.Forms
Xamarin.Forms
Nicolò Carandini
 
Building Games for iOS, macOS, and tvOS with Visual Studio and Azure
Building Games for iOS, macOS, and tvOS with Visual Studio and AzureBuilding Games for iOS, macOS, and tvOS with Visual Studio and Azure
Building Games for iOS, macOS, and tvOS with Visual Studio and Azure
Xamarin
 
Azure mobile services
Azure mobile servicesAzure mobile services
Azure mobile services
Nicolò Carandini
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
Nicolò Carandini
 
Introduction to CocosSharp
Introduction to CocosSharpIntroduction to CocosSharp
Introduction to CocosSharp
James Montemagno
 
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
James Montemagno
 
Xamarin DevOps
Xamarin DevOpsXamarin DevOps
Xamarin DevOps
Nicolò Carandini
 
Xamarin Dev Days - Introduction to Xamarin.Forms, Insights, Test Cloud
Xamarin Dev Days -  Introduction to Xamarin.Forms, Insights, Test CloudXamarin Dev Days -  Introduction to Xamarin.Forms, Insights, Test Cloud
Xamarin Dev Days - Introduction to Xamarin.Forms, Insights, Test Cloud
James Montemagno
 
Intro to Xamarin.Forms for Visual Studio 2017
Intro to Xamarin.Forms for Visual Studio 2017Intro to Xamarin.Forms for Visual Studio 2017
Intro to Xamarin.Forms for Visual Studio 2017
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
James Montemagno
 
Xamarin: The Future of App Development
Xamarin: The Future of App DevelopmentXamarin: The Future of App Development
Xamarin: The Future of App Development
James Montemagno
 
Native iOS and Android Development with Xamarin
Native iOS and Android Development with XamarinNative iOS and Android Development with Xamarin
Native iOS and Android Development with Xamarin
James Montemagno
 
Build 2017 - B8099 - What's new in Xamarin.Forms
Build 2017 - B8099 - What's new in Xamarin.FormsBuild 2017 - B8099 - What's new in Xamarin.Forms
Build 2017 - B8099 - What's new in Xamarin.Forms
Windows Developer
 
UI Animations in Meteor
UI Animations in MeteorUI Animations in Meteor
UI Animations in Meteor
Nick Wientge
 
Azure App Service Helpers
Azure App Service HelpersAzure App Service Helpers
Azure App Service Helpers
James Montemagno
 
Xamarin University Presents: Ship Better Apps with Visual Studio App Center
Xamarin University Presents: Ship Better Apps with Visual Studio App CenterXamarin University Presents: Ship Better Apps with Visual Studio App Center
Xamarin University Presents: Ship Better Apps with Visual Studio App Center
Xamarin
 

What's hot (20)

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
 
Xamarin microsoft graph
Xamarin microsoft graphXamarin microsoft graph
Xamarin microsoft graph
 
Connected Mobile Apps with Microsoft Azure
Connected Mobile Apps with Microsoft AzureConnected Mobile Apps with Microsoft Azure
Connected Mobile Apps with Microsoft Azure
 
Highlights from the Xamarin Evolve 2016 conference
Highlights from the Xamarin Evolve 2016 conferenceHighlights from the Xamarin Evolve 2016 conference
Highlights from the Xamarin Evolve 2016 conference
 
Xamarin.Forms
Xamarin.FormsXamarin.Forms
Xamarin.Forms
 
Building Games for iOS, macOS, and tvOS with Visual Studio and Azure
Building Games for iOS, macOS, and tvOS with Visual Studio and AzureBuilding Games for iOS, macOS, and tvOS with Visual Studio and Azure
Building Games for iOS, macOS, and tvOS with Visual Studio and Azure
 
Azure mobile services
Azure mobile servicesAzure mobile services
Azure mobile services
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Introduction to CocosSharp
Introduction to CocosSharpIntroduction to CocosSharp
Introduction to CocosSharp
 
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
 
Xamarin DevOps
Xamarin DevOpsXamarin DevOps
Xamarin DevOps
 
Xamarin Dev Days - Introduction to Xamarin.Forms, Insights, Test Cloud
Xamarin Dev Days -  Introduction to Xamarin.Forms, Insights, Test CloudXamarin Dev Days -  Introduction to Xamarin.Forms, Insights, Test Cloud
Xamarin Dev Days - Introduction to Xamarin.Forms, Insights, Test Cloud
 
Intro to Xamarin.Forms for Visual Studio 2017
Intro to Xamarin.Forms for Visual Studio 2017Intro to Xamarin.Forms for Visual Studio 2017
Intro to Xamarin.Forms for Visual Studio 2017
 
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
 
Xamarin: The Future of App Development
Xamarin: The Future of App DevelopmentXamarin: The Future of App Development
Xamarin: The Future of App Development
 
Native iOS and Android Development with Xamarin
Native iOS and Android Development with XamarinNative iOS and Android Development with Xamarin
Native iOS and Android Development with Xamarin
 
Build 2017 - B8099 - What's new in Xamarin.Forms
Build 2017 - B8099 - What's new in Xamarin.FormsBuild 2017 - B8099 - What's new in Xamarin.Forms
Build 2017 - B8099 - What's new in Xamarin.Forms
 
UI Animations in Meteor
UI Animations in MeteorUI Animations in Meteor
UI Animations in Meteor
 
Azure App Service Helpers
Azure App Service HelpersAzure App Service Helpers
Azure App Service Helpers
 
Xamarin University Presents: Ship Better Apps with Visual Studio App Center
Xamarin University Presents: Ship Better Apps with Visual Studio App CenterXamarin University Presents: Ship Better Apps with Visual Studio App Center
Xamarin University Presents: Ship Better Apps with Visual Studio App Center
 

Similar to Stunning Mobile Apps with the Xamarin Visual Design System​

Introduction to Xamarin.Forms
Introduction to Xamarin.FormsIntroduction to Xamarin.Forms
Introduction to Xamarin.Forms
James Montemagno
 
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
danhermes
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin Platform
Liddle Fang
 
Cross-Platform Mobile Development using Visual Studio and Xamarin
Cross-Platform Mobile Development using Visual Studio and XamarinCross-Platform Mobile Development using Visual Studio and Xamarin
Cross-Platform Mobile Development using Visual Studio and Xamarin
Shravan Kumar Kasagoni
 
Deep Dive in Xamarin.Forms
Deep Dive in Xamarin.FormsDeep Dive in Xamarin.Forms
Deep Dive in Xamarin.Forms
James Montemagno
 
Mobile next 2013 petru jucovschi
Mobile next 2013   petru jucovschiMobile next 2013   petru jucovschi
Mobile next 2013 petru jucovschi
mpgco
 
Powering your Apps with Cloud Services
Powering your Apps with Cloud ServicesPowering your Apps with Cloud Services
Powering your Apps with Cloud Services
Xpand IT
 
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
Xamarin
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
Vinicius Quaiato
 
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
Moon Technolabs Pvt. Ltd.
 
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!
James Montemagno
 
Xamarin Roadshow
Xamarin RoadshowXamarin Roadshow
Xamarin Roadshow
Sam Basu
 
Xamarin y MS Azure | Cognitive Services
Xamarin y MS Azure | Cognitive ServicesXamarin y MS Azure | Cognitive Services
Xamarin y MS Azure | Cognitive Services
Vicente Gerardo Guzman Lucio
 
Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)
BizTalk360
 
The Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentThe Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App Development
Nick Landry
 
How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi...
 How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi... How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi...
How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi...
Aimore Technologies
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin Platform
Rui Marinho
 
Xamarin overview droidcon.tn
Xamarin overview   droidcon.tnXamarin overview   droidcon.tn
Xamarin overview droidcon.tn
Houssem Dellai
 
AppSheet Overview -- DIY Mobile App Platform
AppSheet Overview -- DIY Mobile App PlatformAppSheet Overview -- DIY Mobile App Platform
AppSheet Overview -- DIY Mobile App Platform
pravse
 
Android with cloud
Android with cloudAndroid with cloud
Android with cloud
Ashish RAj
 

Similar to Stunning Mobile Apps with the Xamarin Visual Design System​ (20)

Introduction to Xamarin.Forms
Introduction to Xamarin.FormsIntroduction to Xamarin.Forms
Introduction to Xamarin.Forms
 
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
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin Platform
 
Cross-Platform Mobile Development using Visual Studio and Xamarin
Cross-Platform Mobile Development using Visual Studio and XamarinCross-Platform Mobile Development using Visual Studio and Xamarin
Cross-Platform Mobile Development using Visual Studio and Xamarin
 
Deep Dive in Xamarin.Forms
Deep Dive in Xamarin.FormsDeep Dive in Xamarin.Forms
Deep Dive in Xamarin.Forms
 
Mobile next 2013 petru jucovschi
Mobile next 2013   petru jucovschiMobile next 2013   petru jucovschi
Mobile next 2013 petru jucovschi
 
Powering your Apps with Cloud Services
Powering your Apps with Cloud ServicesPowering your Apps with Cloud Services
Powering your Apps with Cloud Services
 
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
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
 
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
 
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!
 
Xamarin Roadshow
Xamarin RoadshowXamarin Roadshow
Xamarin Roadshow
 
Xamarin y MS Azure | Cognitive Services
Xamarin y MS Azure | Cognitive ServicesXamarin y MS Azure | Cognitive Services
Xamarin y MS Azure | Cognitive Services
 
Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)
 
The Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentThe Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App Development
 
How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi...
 How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi... How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi...
How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi...
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin Platform
 
Xamarin overview droidcon.tn
Xamarin overview   droidcon.tnXamarin overview   droidcon.tn
Xamarin overview droidcon.tn
 
AppSheet Overview -- DIY Mobile App Platform
AppSheet Overview -- DIY Mobile App PlatformAppSheet Overview -- DIY Mobile App Platform
AppSheet Overview -- DIY Mobile App Platform
 
Android with cloud
Android with cloudAndroid with cloud
Android with cloud
 

More from James Montemagno

Building Stream Deck Plugins in C#
Building Stream Deck Plugins in C#Building Stream Deck Plugins in C#
Building Stream Deck Plugins in C#
James Montemagno
 
Xamarin.forms Shell + Navigation
Xamarin.forms Shell + NavigationXamarin.forms Shell + Navigation
Xamarin.forms Shell + Navigation
James Montemagno
 
Seattle Mobile .NET User Group - Nov. 13th 2019
Seattle Mobile .NET User Group - Nov. 13th 2019Seattle Mobile .NET User Group - Nov. 13th 2019
Seattle Mobile .NET User Group - Nov. 13th 2019
James Montemagno
 
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
James Montemagno
 
Xamarin - New & Awesome + Building Xamarin.Essentials
Xamarin - New & Awesome + Building Xamarin.EssentialsXamarin - New & Awesome + Building Xamarin.Essentials
Xamarin - New & Awesome + Building Xamarin.Essentials
James Montemagno
 
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
James Montemagno
 
What's New in Xamarin? - Santo Domingo
What's New in Xamarin? - Santo DomingoWhat's New in Xamarin? - Santo Domingo
What's New in Xamarin? - Santo Domingo
James Montemagno
 
Optimizing and Extending Xamarin.Forms iOS, Android, and UWP Apps
Optimizing and Extending Xamarin.Forms iOS, Android, and UWP AppsOptimizing and Extending Xamarin.Forms iOS, Android, and UWP Apps
Optimizing and Extending Xamarin.Forms iOS, Android, and UWP Apps
James Montemagno
 
.NET Everywhere and for Everyone
.NET Everywhere and for Everyone.NET Everywhere and for Everyone
.NET Everywhere and for Everyone
James Montemagno
 
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
James Montemagno
 
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
James Montemagno
 
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
James Montemagno
 
Visual Studio 2017 Launch Event
Visual Studio 2017 Launch EventVisual Studio 2017 Launch Event
Visual Studio 2017 Launch Event
James Montemagno
 
.Net Standard Libraries and Xamarin
.Net Standard Libraries and Xamarin.Net Standard Libraries and Xamarin
.Net Standard Libraries and Xamarin
James Montemagno
 
What's new in Xamarin.Forms?
What's new in Xamarin.Forms?What's new in Xamarin.Forms?
What's new in Xamarin.Forms?
James Montemagno
 
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
James Montemagno
 
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
James Montemagno
 

More from James Montemagno (17)

Building Stream Deck Plugins in C#
Building Stream Deck Plugins in C#Building Stream Deck Plugins in C#
Building Stream Deck Plugins in C#
 
Xamarin.forms Shell + Navigation
Xamarin.forms Shell + NavigationXamarin.forms Shell + Navigation
Xamarin.forms Shell + Navigation
 
Seattle Mobile .NET User Group - Nov. 13th 2019
Seattle Mobile .NET User Group - Nov. 13th 2019Seattle Mobile .NET User Group - Nov. 13th 2019
Seattle Mobile .NET User Group - Nov. 13th 2019
 
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
 
What's New in Xamarin? - Santo Domingo
What's New in Xamarin? - Santo DomingoWhat's New in Xamarin? - Santo Domingo
What's New in Xamarin? - Santo Domingo
 
Optimizing and Extending Xamarin.Forms iOS, Android, and UWP Apps
Optimizing and Extending Xamarin.Forms iOS, Android, and UWP AppsOptimizing and Extending Xamarin.Forms iOS, Android, and UWP Apps
Optimizing and Extending Xamarin.Forms iOS, Android, and UWP Apps
 
.NET Everywhere and for Everyone
.NET Everywhere and for Everyone.NET Everywhere and for Everyone
.NET Everywhere and for Everyone
 
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
 
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
 
Visual Studio 2017 Launch Event
Visual Studio 2017 Launch EventVisual Studio 2017 Launch Event
Visual Studio 2017 Launch Event
 
.Net Standard Libraries and Xamarin
.Net Standard Libraries and Xamarin.Net Standard Libraries and Xamarin
.Net Standard Libraries and Xamarin
 
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
 

Recently uploaded

Ericsson LTE Throughput Troubleshooting Techniques.ppt
Ericsson LTE Throughput Troubleshooting Techniques.pptEricsson LTE Throughput Troubleshooting Techniques.ppt
Ericsson LTE Throughput Troubleshooting Techniques.ppt
wafawafa52
 
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
ydzowc
 
Object Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOADObject Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOAD
PreethaV16
 
Bituminous road construction project based learning report
Bituminous road construction project based learning reportBituminous road construction project based learning report
Bituminous road construction project based learning report
CE19KaushlendraKumar
 
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
MadhavJungKarki
 
Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
Atif Razi
 
An Introduction to the Compiler Designss
An Introduction to the Compiler DesignssAn Introduction to the Compiler Designss
An Introduction to the Compiler Designss
ElakkiaU
 
ITSM Integration with MuleSoft.pptx
ITSM  Integration with MuleSoft.pptxITSM  Integration with MuleSoft.pptx
ITSM Integration with MuleSoft.pptx
VANDANAMOHANGOUDA
 
Call For Paper -3rd International Conference on Artificial Intelligence Advan...
Call For Paper -3rd International Conference on Artificial Intelligence Advan...Call For Paper -3rd International Conference on Artificial Intelligence Advan...
Call For Paper -3rd International Conference on Artificial Intelligence Advan...
ijseajournal
 
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICSUNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
vmspraneeth
 
Power Electronics- AC -AC Converters.pptx
Power Electronics- AC -AC Converters.pptxPower Electronics- AC -AC Converters.pptx
Power Electronics- AC -AC Converters.pptx
Poornima D
 
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
ecqow
 
一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理
一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理
一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理
sydezfe
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
aryanpankaj78
 
Determination of Equivalent Circuit parameters and performance characteristic...
Determination of Equivalent Circuit parameters and performance characteristic...Determination of Equivalent Circuit parameters and performance characteristic...
Determination of Equivalent Circuit parameters and performance characteristic...
pvpriya2
 
A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...
A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...
A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...
DharmaBanothu
 
Introduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.pptIntroduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.ppt
Dwarkadas J Sanghvi College of Engineering
 
Supermarket Management System Project Report.pdf
Supermarket Management System Project Report.pdfSupermarket Management System Project Report.pdf
Supermarket Management System Project Report.pdf
Kamal Acharya
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
Divyanshu
 
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
Paris Salesforce Developer Group
 

Recently uploaded (20)

Ericsson LTE Throughput Troubleshooting Techniques.ppt
Ericsson LTE Throughput Troubleshooting Techniques.pptEricsson LTE Throughput Troubleshooting Techniques.ppt
Ericsson LTE Throughput Troubleshooting Techniques.ppt
 
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
 
Object Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOADObject Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOAD
 
Bituminous road construction project based learning report
Bituminous road construction project based learning reportBituminous road construction project based learning report
Bituminous road construction project based learning report
 
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
 
Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
 
An Introduction to the Compiler Designss
An Introduction to the Compiler DesignssAn Introduction to the Compiler Designss
An Introduction to the Compiler Designss
 
ITSM Integration with MuleSoft.pptx
ITSM  Integration with MuleSoft.pptxITSM  Integration with MuleSoft.pptx
ITSM Integration with MuleSoft.pptx
 
Call For Paper -3rd International Conference on Artificial Intelligence Advan...
Call For Paper -3rd International Conference on Artificial Intelligence Advan...Call For Paper -3rd International Conference on Artificial Intelligence Advan...
Call For Paper -3rd International Conference on Artificial Intelligence Advan...
 
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICSUNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
 
Power Electronics- AC -AC Converters.pptx
Power Electronics- AC -AC Converters.pptxPower Electronics- AC -AC Converters.pptx
Power Electronics- AC -AC Converters.pptx
 
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
 
一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理
一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理
一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
 
Determination of Equivalent Circuit parameters and performance characteristic...
Determination of Equivalent Circuit parameters and performance characteristic...Determination of Equivalent Circuit parameters and performance characteristic...
Determination of Equivalent Circuit parameters and performance characteristic...
 
A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...
A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...
A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...
 
Introduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.pptIntroduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.ppt
 
Supermarket Management System Project Report.pdf
Supermarket Management System Project Report.pdfSupermarket Management System Project Report.pdf
Supermarket Management System Project Report.pdf
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
 
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
 

Stunning Mobile Apps with the Xamarin Visual Design System​

Editor's Notes

  1. As developers we need to be able to reach every platform on the planet. And that is the goal of .NET enabling developers to build for these devices with unique frameworks optimized for each. Today, we will look at what the Xamarin platform and framework, which are part of .NET offer.
  2. So, let’s start with exactly what Xamarin is.
  3. In fact there are tons of companies that entrust Xamarin and .NET today. These companies leverage Xamarin and .NET across all verticals and all different types of platforms.
  4. First, it is with it’s unique application architecture. In fact it is the .NET architecture itself. You decided what platforms you want your apps to run on, we call them head projects. You can access all of the native APIs for each and share a bulk of the C# logic. Here we see business logic, platform APIs, and user interfaces. This can scale to a lot or a little based on what you are trying to achieve. So how exactly does this work?
  5. First is the core architecture which enables huge amount of code sharing across apps. You can build stunning applications with high fidelity. Let’s talk about what is in each of these blocks, first with the head projects, platform APIs, and user interface. The business logic is just .NET code that can always be shared with other .NET platforms.
  6. The first part in the head projects is access to any of the unique APIs in iOS and Android. You have access to them all in C#. Now, these do have to be written in the head project and aren’t shared since they are unique to each platform. However, the Xamarin team has a way to help us out there.
  7. Which is Xamarin.Essentials. An open source library that abstracts common native features into a single cross platform API for iOS, Android, and Windows. These are APIs that exist across each platform so why not bring them together.
  8. So now, if we look a bit further, this is what our app architecture looks like.
  9. What about the user interface? Just like APIs you can build the native UI for each platform. However, many developers choose to share all or most of the UI with Xamarin.Forms
  10. Miguel
  11. We will look more at Xamarin.Forms, but now we can see a full picture of what goes into our app.
  12. Miguel
  13. Miguel
  14. Miguel
  15. http://www.jackrabbitmobile.com/wp-content/uploads/2014/12/ios_vs_android.pdf
  16. What Material provides, how it works What’s next for Material Properties for styling What additional controls are needed/desired
  17. What Visual is by itself
  18. ## Objects 1. Forms VisualElement 2. Platform Renderer ## How a Button makes it to the screen: 1. Forms.Init - registers Button renderers by type (Button) and visual (Default|Material) 2. App parses UI graph, get's ContentPage with a Button 3. Looks up renderer by type & visual 4. Creates detached renderer instance 5. Populates properties 6. Attaches to visual tree Where does measuring and layout happen? In the above? When does the below happen, before or after the UI is attached to the visual tree? ## Invalidation 1. InvalidateMeasure Called 2. Call InvalidateMeasure on Parent 3. Has Parent? a. Yes Return to 2. b. No. Continue. 4. Queue Delay layout ## Layout 5. Event callback triggers layout (What event?) 6. Layout Called 7. LayoutChildren Invoked 8. Has Children? a. Yes. Return to 6. b. No. Continue. 9. Layout Cycle Completed
  19. What Material provides, how it works What’s next for Material Properties for styling What additional controls are needed/desired
  20. What Material provides, how it works What’s next for Material Properties for styling What additional controls are needed/desired
  21. What Material provides, how it works What’s next for Material Properties for styling What additional controls are needed/desired
  22. What Material provides, how it works What’s next for Material Properties for styling What additional controls are needed/desired
  23. In each platform project to ensure the dll isn’t linked out.
  24. Miguel
  25. James
  26. James
  27. James
  28. If 15 minutes left James does demo James
  29. Miguel ->James