SlideShare a Scribd company logo
1 of 36
Download to read offline
Your First 
Xamarin.Forms 
App 
Craig Dunn 
Developer Evangelist 
@conceptdev
Forget Everything!
Meet Xamarin.Forms 
Build native UIs for iOS, Android and Windows Phone 
from a single, shared C# codebase.
Meet Xamarin.Forms 
Build native UIs for iOS, Android and Windows Phone 
from a single, shared C# codebase.
Meet Xamarin.Forms 
Build native UIs for iOS, Android and Windows Phone 
from a single, shared C# codebase.
Meet Xamarin.Forms 
C# XAML 
public class HelloWorld : ContentPage 
{ 
public HelloWorld () 
{ 
var button = new Button 
{ Text = "Say Hello" } ; 
button.Clicked += SayHelloClicked; 
Content = new StackLayout { 
new Label { Text = "Hello World" } , 
button 
}; 
} 
! 
void SayHelloClicked (object s, EventArgs e) 
{ 
// do something 
} 
} 
<?xml version="1.0" encoding="UTF-8"?> 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
x:Class="HelloForms.HelloWorld"> 
<StackLayout> 
<Label Text="Hello World" /> 
<Button Text="Say Hello" 
OnClick="SayHelloClicked" /> 
</StackLayout> 
</ContentPage> 
! 
public partial class HelloWorld : ContentPage 
{ 
public HelloWorld () 
{ 
InitializeComponent (); 
} 
void SayHelloClicked (object s, EventArgs e) 
{ 
// do something 
} 
}
Your first Xamarin.Forms app 
■ File > New Project 
■ Design a screen 
■ Add some code 
■ Run on iOS, Android, 
& Windows Phone
Traditional Xamarin Development 
Using the native UI SDKs 
■ Write shared C# code 
■ Database, Web Services 
■ Business Logic 
■ Build native UIs 
■ UIKit & Storyboards on iOS 
■ AXML for Android 
■ XAML for Windows Phone 
■ Share 60-‐80% of the code 
UIKit Layout XAML 
SharedS Ch#a rAepdp A Lpopg iLcogic
UIKit Layout XAML 
Shared C# User Interface Code 
Shared C# App Logic 
Shared App Logic 
Using Xamarin.Forms 
To build the User Interface 
■ Use the same strategies for sharing 
■ Database, Web Services 
■ Business Logic 
■ Build the UI with a single shared 
codebase 
! 
■ Share 99% of the code
Using Xamarin.Forms 
Benefits 
■ Native look and feel 
■ Code sharing/re-‐use 
■ Access to native SDKs using Custom 
Renderers and DependencyService 
■ Camera, accelerometer, GPS, 
■ NFC & more on Android 
■ PassKit & more on iOS 
■ Tiles & more on Windows Phone 
Shared C# User Interface Code 
Shared App Logic 
Shared C# App Logic
How Xamarin.Forms works 
■ Anatomy of a Xamarin.Forms solution 
■ Controls 
■ Layouts 
■ Pages
How Xamarin.Forms works 
Anatomy of a Xamarin.Forms Solution 
■ PCL or Shared Project
How Xamarin.Forms works 
Anatomy of a Xamarin.Forms Solution 
■ PCL or Shared Project 
■ NuGet Package
How Xamarin.Forms works 
Anatomy of a Xamarin.Forms Solution 
■ PCL or Shared Project 
■ NuGet Package 
■ App.cs
How Xamarin.Forms works 
Anatomy of a Xamarin.Forms Solution 
■ PCL or Shared Project 
■ NuGet Package 
■ App.cs 
■ Android app
How Xamarin.Forms works 
Anatomy of a Xamarin.Forms Solution 
■ PCL or Shared Project 
■ NuGet Package 
■ App.cs 
■ Android app 
■ iOS app
How Xamarin.Forms works 
Anatomy of a Xamarin.Forms Solution 
■ PCL or Shared Project 
■ NuGet Package 
■ App.cs 
■ Android app 
■ iOS app 
■ Windows Phone app
How Xamarin.Forms works 
Controls 
var hello = new Label { 
Text = "Hello World" 
}; 
var ok = new Button { Text = "OK" }; 
ok.Clicked += async (sender, e) => { 
await DisplayAlert("OK", 
"You said OK", 
"Done"); 
}; 
! 
! 
<Label Text="Hello World" /> 
<Button Text="OK" 
OnClick="OkClicked" /> 
image: Balsamiq
How Xamarin.Forms works 
Layouts 
var layout = new StackLayout { 
Orientation = StackOrientation.Vertical, 
Children = { 
hello, ok 
} 
}; 
<StackLayout 
Orientation="Vertical"> 
<Label x:Name="hello" 
Text="Hello World" /> 
<Button x:Name="ok" 
Text="OK" 
OnClick="OkClicked"/> 
</StackLayout> 
image: Balsamiq
How Xamarin.Forms works 
Pages 
public class HelloWorld : ContentPage 
{ 
public HelloWorld () 
{ 
var button = new Button { Text = "OK" } ; 
button.Clicked += SayHelloClicked; 
Content = new StackLayout { 
new Label { Text = "Hello World" } , 
button 
}; 
} 
void SayHelloClicked (object s, EventArgs e) 
{ 
// display an alert 
} 
} 
! 
<?xml version="1.0" encoding="UTF-8"?> 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
xmlns:x="http://schemas.microsoft.com/winfx/2009 
x:Class="HelloForms.HelloWorld"> 
<StackLayout Orientation="Vertical"> 
<Label x:Name="hello" Text="Hello World" /> 
<Button x:Name="ok" Text="OK" 
OnClick="OkClicked" /> 
</StackLayout> 
</ContentPage> 
image: Balsamiq
Platform Renderers 
Taking Xamarin.Forms UI to the people (﴾devices)﴿ 
? 
? 
?
Platform Renderers 
Taking Xamarin.Forms UI to the people
Xamarin.Forms brings common UX to everyone 
iOS does not have a native control 
for the iPhone, however 
Xamarin.Forms uses 
UISplitViewController on iPad. 
Android has a native 'drawer' 
control which Xamarin.Forms uses. 
Windows Phone doesn’t have a 
comparable UI metaphor, so 
Xamarin.Forms provides an 
implementation. 
MasterDetailPage
Xamarin.Forms brings common UX to everyone 
iOS has the UINavigationController 
which Xamarin.Forms leverages. 
Android has the navigation stack 
built in, but Xamarin.Forms adds 
the automatic 'back' button for API 
consistency. 
Windows Phone also has a back-‐ 
stack with hardware button, so 
Xamarin.Forms takes advantage of 
that. 
NavigationPage
140 new Controls! 
Welcome to our new Xamarin.Forms partners 
http://blog.xamarin.com/enterprise-‐component-‐ 
vendors-‐join-‐xamarin.forms-‐ecosystem/
Your second Xamarin.Forms app 
■ File > New Project 
■ Design some screens 
■ Add some code 
■ Run on iOS, Android, 
& Windows Phone
Dependency Service 
Easily call into platform-‐specific code 
■ In the common code 
■ Code to an Interface 
public interface ITextToSpeech 
{ 
void Speak (string text); 
} 
! 
! 
DependencyService.Get<ITextToSpeech>().Speak("Hello from Xamarin Forms"); 
! 
! 
!
Dependency Service 
Easily call into platform-‐specific code 
■ In the common code 
■ Code to an Interface 
■ Use DependencyService 
public interface ITextToSpeech 
{ 
void Speak (string text); 
} 
! 
! 
DependencyService.Get<ITextToSpeech>().Speak("Hello from Xamarin Forms"); 
! 
! 
!
Dependency Service 
Easily call into platform-‐specific code 
■ In the common code 
■ Code to an Interface 
■ Use DependencyService 
■ For each platform 
■ implement the Interface 
[assembly: Xamarin.Forms.Dependency (typeof (Speech))] 
public class Speech : ITextToSpeech 
{ 
public Speech () { } 
public void Speak (string text) 
{ 
var speechSynthesizer = new AVSpeechSynthesizer (); 
var speechUtterance = new AVSpeechUtterance (text) { 
Rate = AVSpeechUtterance.MaximumSpeechRate/4, 
Voice = AVSpeechSynthesisVoice.FromLanguage ("en-US"), 
Volume = 0.5f, 
PitchMultiplier = 1.0f 
} ; 
speechSynthesizer.SpeakUtterance (speechUtterance); 
} 
}
Dependency Service 
Easily call into platform-‐specific code 
■ In the common code 
■ Code to an Interface 
■ Use DependencyService 
■ For each platform 
■ implement the Interface 
■ use Dependency 
attribute on the 
assembly 
[assembly: Xamarin.Forms.Dependency (typeof (Speech))] 
public class Speech : ITextToSpeech 
{ 
public Speech () { } 
public void Speak (string text) 
{ 
var speechSynthesizer = new AVSpeechSynthesizer (); 
var speechUtterance = new AVSpeechUtterance (text) { 
Rate = AVSpeechUtterance.MaximumSpeechRate/4, 
Voice = AVSpeechSynthesisVoice.FromLanguage ("en-US"), 
Volume = 0.5f, 
PitchMultiplier = 1.0f 
} ; 
speechSynthesizer.SpeakUtterance (speechUtterance); 
} 
}
Data Binding 
Sync views and models 
■ Enables MVVM-‐style development 
■ SetBinding in C# 
■ {Binding} in XAML 
■ also supports the Command pattern
Messaging Center 
Loosely-‐coupled publish and subscribe 
Subscriber Messaging Publisher 
Center 
1. Register 
3. Receive 
2. Send Message
Custom Renderers 
Extend or Create Xamarin.Forms Controls 
■ Subclass the built-‐in Platform Renderers 
! 
■ Build your own Xamarin.Forms 
control and renderers 
(﴾eg. OxyPlot)﴿ 
! 
■ Attend Jason’s 
Extending Xamarin.Forms talk 
on Thursday
Further Reading… 
■ developer.xamarin.com 
■ forums.xamarin.com 
■ Creating Mobile Apps with 
Xamarin.Forms -‐ Charles Petzold 
PREVIEW EDITION available for 
all Evolve 2014 attendees
What’s next? 
Today 
• Building cross platform applications -‐ Laurent Bugnion 
Tomorrow 
• XAML for Xamarin.Forms -‐ Charles Petzold 
• Extending Xamarin.Forms -‐ Jason Smith 
Friday 
• Xamarin.Forms is Cooler Than You Think -‐ Charles Petzold 
! 
Mini-‐hacks 
• Visit the Darwin Lounge
Your First 
Xamarin.Forms 
App 
Craig Dunn 
@conceptdev 
craig@xamarin.com

More Related Content

What's hot

ANUG - intro to Xamarin and Xamarin.Forms
ANUG - intro to Xamarin and Xamarin.FormsANUG - intro to Xamarin and Xamarin.Forms
ANUG - intro to Xamarin and Xamarin.FormsJames Montemagno
 
Introduction to Xamarin 3 Seattle Mobile .NET Developers Group
Introduction to Xamarin 3 Seattle Mobile .NET Developers GroupIntroduction to Xamarin 3 Seattle Mobile .NET Developers Group
Introduction to Xamarin 3 Seattle Mobile .NET Developers GroupJames 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
 
Deep Dive in Xamarin.Forms
Deep Dive in Xamarin.FormsDeep Dive in Xamarin.Forms
Deep Dive in Xamarin.FormsJames Montemagno
 
Dallas Android - Android & iOS Development in C# with Xamarin
Dallas Android - Android & iOS Development in C# with XamarinDallas Android - Android & iOS Development in C# with Xamarin
Dallas Android - Android & iOS Development in C# with XamarinJames Montemagno
 
Introduction to Xamarin Philly Code Camp 2014
Introduction to Xamarin Philly Code Camp 2014Introduction to Xamarin Philly Code Camp 2014
Introduction to Xamarin Philly Code Camp 2014James Montemagno
 
Xamarin.Forms: a cross-platform mobile UI toolkit - ConFoo 2016
Xamarin.Forms:  a cross-platform mobile UI toolkit - ConFoo 2016Xamarin.Forms:  a cross-platform mobile UI toolkit - ConFoo 2016
Xamarin.Forms: a cross-platform mobile UI toolkit - ConFoo 2016Guy Barrette
 
Introduction to Mobile Development with Xamarin -DotNet Westide
Introduction to Mobile Development with Xamarin -DotNet WestideIntroduction to Mobile Development with Xamarin -DotNet Westide
Introduction to Mobile Development with Xamarin -DotNet WestideJames Montemagno
 
Xamarin overview droidcon.tn
Xamarin overview   droidcon.tnXamarin overview   droidcon.tn
Xamarin overview droidcon.tnHoussem Dellai
 
Xamarin for iOS developers
Xamarin for iOS developersXamarin for iOS developers
Xamarin for iOS developersCraig Dunn
 
Lessons Learned: 4 Months of Xamarin.Forms
Lessons Learned: 4 Months of Xamarin.FormsLessons Learned: 4 Months of Xamarin.Forms
Lessons Learned: 4 Months of Xamarin.FormsEric Polerecky
 
Connected & Disconnected Apps with Xamarin
Connected & Disconnected Apps with XamarinConnected & Disconnected Apps with Xamarin
Connected & Disconnected Apps with XamarinRui Marinho
 
Designing cross-platform User Interface with native performance using Xamarin...
Designing cross-platform User Interface with native performance using Xamarin...Designing cross-platform User Interface with native performance using Xamarin...
Designing cross-platform User Interface with native performance using Xamarin...Pranav Ainavolu
 
Xamarin Overview by Houssem Dellai
Xamarin Overview by Houssem DellaiXamarin Overview by Houssem Dellai
Xamarin Overview by Houssem DellaiHoussem Dellai
 
Xamarin DevDays Portland - iOS 9
Xamarin DevDays Portland - iOS 9Xamarin DevDays Portland - iOS 9
Xamarin DevDays Portland - iOS 9Craig Dunn
 
Introduction to Xamarin.Forms 2.x
Introduction to Xamarin.Forms 2.xIntroduction to Xamarin.Forms 2.x
Introduction to Xamarin.Forms 2.xCraig Dunn
 
MVP Mix 2015 - Introduction to Xamarin Development
MVP Mix 2015 - Introduction to Xamarin DevelopmentMVP Mix 2015 - Introduction to Xamarin Development
MVP Mix 2015 - Introduction to Xamarin DevelopmentJames Montemagno
 
Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app develop...
Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app develop...Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app develop...
Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app develop...James Montemagno
 

What's hot (20)

ANUG - intro to Xamarin and Xamarin.Forms
ANUG - intro to Xamarin and Xamarin.FormsANUG - intro to Xamarin and Xamarin.Forms
ANUG - intro to Xamarin and Xamarin.Forms
 
Introduction to Xamarin 3 Seattle Mobile .NET Developers Group
Introduction to Xamarin 3 Seattle Mobile .NET Developers GroupIntroduction to Xamarin 3 Seattle Mobile .NET Developers Group
Introduction to Xamarin 3 Seattle Mobile .NET Developers Group
 
Xamarin Forms
Xamarin FormsXamarin Forms
Xamarin Forms
 
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 Forms
Xamarin FormsXamarin Forms
Xamarin Forms
 
Deep Dive in Xamarin.Forms
Deep Dive in Xamarin.FormsDeep Dive in Xamarin.Forms
Deep Dive in Xamarin.Forms
 
Dallas Android - Android & iOS Development in C# with Xamarin
Dallas Android - Android & iOS Development in C# with XamarinDallas Android - Android & iOS Development in C# with Xamarin
Dallas Android - Android & iOS Development in C# with Xamarin
 
Introduction to Xamarin Philly Code Camp 2014
Introduction to Xamarin Philly Code Camp 2014Introduction to Xamarin Philly Code Camp 2014
Introduction to Xamarin Philly Code Camp 2014
 
Xamarin.Forms: a cross-platform mobile UI toolkit - ConFoo 2016
Xamarin.Forms:  a cross-platform mobile UI toolkit - ConFoo 2016Xamarin.Forms:  a cross-platform mobile UI toolkit - ConFoo 2016
Xamarin.Forms: a cross-platform mobile UI toolkit - ConFoo 2016
 
Introduction to Mobile Development with Xamarin -DotNet Westide
Introduction to Mobile Development with Xamarin -DotNet WestideIntroduction to Mobile Development with Xamarin -DotNet Westide
Introduction to Mobile Development with Xamarin -DotNet Westide
 
Xamarin overview droidcon.tn
Xamarin overview   droidcon.tnXamarin overview   droidcon.tn
Xamarin overview droidcon.tn
 
Xamarin for iOS developers
Xamarin for iOS developersXamarin for iOS developers
Xamarin for iOS developers
 
Lessons Learned: 4 Months of Xamarin.Forms
Lessons Learned: 4 Months of Xamarin.FormsLessons Learned: 4 Months of Xamarin.Forms
Lessons Learned: 4 Months of Xamarin.Forms
 
Connected & Disconnected Apps with Xamarin
Connected & Disconnected Apps with XamarinConnected & Disconnected Apps with Xamarin
Connected & Disconnected Apps with Xamarin
 
Designing cross-platform User Interface with native performance using Xamarin...
Designing cross-platform User Interface with native performance using Xamarin...Designing cross-platform User Interface with native performance using Xamarin...
Designing cross-platform User Interface with native performance using Xamarin...
 
Xamarin Overview by Houssem Dellai
Xamarin Overview by Houssem DellaiXamarin Overview by Houssem Dellai
Xamarin Overview by Houssem Dellai
 
Xamarin DevDays Portland - iOS 9
Xamarin DevDays Portland - iOS 9Xamarin DevDays Portland - iOS 9
Xamarin DevDays Portland - iOS 9
 
Introduction to Xamarin.Forms 2.x
Introduction to Xamarin.Forms 2.xIntroduction to Xamarin.Forms 2.x
Introduction to Xamarin.Forms 2.x
 
MVP Mix 2015 - Introduction to Xamarin Development
MVP Mix 2015 - Introduction to Xamarin DevelopmentMVP Mix 2015 - Introduction to Xamarin Development
MVP Mix 2015 - Introduction to Xamarin Development
 
Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app develop...
Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app develop...Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app develop...
Extending, optimizing, and accelerating Xamarin and Xamarin.Forms app develop...
 

Viewers also liked

Navigation in Xamarin.Forms
Navigation in Xamarin.FormsNavigation in Xamarin.Forms
Navigation in Xamarin.FormsKym Phillpotts
 
SydMobNet July 2014: Xamarin 3 & Xamarin Forms
SydMobNet July 2014: Xamarin 3 & Xamarin FormsSydMobNet July 2014: Xamarin 3 & Xamarin Forms
SydMobNet July 2014: Xamarin 3 & Xamarin FormsAlec Tucker
 
Modern .NET Apps - Telerik Webinar
Modern .NET Apps - Telerik WebinarModern .NET Apps - Telerik Webinar
Modern .NET Apps - Telerik WebinarSam Basu
 
Xamarin day9 - Advance Xamarin Forms
Xamarin day9 - Advance Xamarin FormsXamarin day9 - Advance Xamarin Forms
Xamarin day9 - Advance Xamarin FormsSubodh Pushpak
 
C# Exceptions Handling
C# Exceptions Handling C# Exceptions Handling
C# Exceptions Handling sharqiyem
 
Xamarin 2017 : découverte et tips
Xamarin 2017 : découverte et tipsXamarin 2017 : découverte et tips
Xamarin 2017 : découverte et tipsEdwige Seminara
 
Intro to Xamarin.Forms : A C# way to develop mobile app
Intro to Xamarin.Forms : A C# way to develop mobile appIntro to Xamarin.Forms : A C# way to develop mobile app
Intro to Xamarin.Forms : A C# way to develop mobile appMindfire Solutions
 
Native cross-platform mobile apps with C# and Xamarin.Forms
Native cross-platform mobile apps with C# and Xamarin.FormsNative cross-platform mobile apps with C# and Xamarin.Forms
Native cross-platform mobile apps with C# and Xamarin.FormsPeter Major
 
DevDay Salerno - Introduzione a Xamarin
DevDay Salerno - Introduzione a XamarinDevDay Salerno - Introduzione a Xamarin
DevDay Salerno - Introduzione a XamarinAntonio Liccardi
 
Introducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLIntroducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLSorey García
 
Developing and Designing Native Mobile Apps in Visual Studio
Developing and Designing Native Mobile Apps in Visual StudioDeveloping and Designing Native Mobile Apps in Visual Studio
Developing and Designing Native Mobile Apps in Visual StudioXamarin
 
Introduction to Xamarin 2.0
Introduction to Xamarin 2.0Introduction to Xamarin 2.0
Introduction to Xamarin 2.0Xamarin
 
Introduction to cross platform natitve mobile development with c# and xamarin
Introduction to cross platform natitve mobile development with c# and xamarinIntroduction to cross platform natitve mobile development with c# and xamarin
Introduction to cross platform natitve mobile development with c# and xamarinJames Montemagno
 
Xamarin Mobile Leaders Summit: The Mobile Mind Shift: Opportunities, Challeng...
Xamarin Mobile Leaders Summit: The Mobile Mind Shift: Opportunities, Challeng...Xamarin Mobile Leaders Summit: The Mobile Mind Shift: Opportunities, Challeng...
Xamarin Mobile Leaders Summit: The Mobile Mind Shift: Opportunities, Challeng...Xamarin
 
Visual studio enterprise 2017 mobile by Russ Fustino
Visual studio enterprise 2017 mobile by Russ FustinoVisual studio enterprise 2017 mobile by Russ Fustino
Visual studio enterprise 2017 mobile by Russ FustinoRuss Fustino
 

Viewers also liked (20)

Navigation in Xamarin.Forms
Navigation in Xamarin.FormsNavigation in Xamarin.Forms
Navigation in Xamarin.Forms
 
SydMobNet July 2014: Xamarin 3 & Xamarin Forms
SydMobNet July 2014: Xamarin 3 & Xamarin FormsSydMobNet July 2014: Xamarin 3 & Xamarin Forms
SydMobNet July 2014: Xamarin 3 & Xamarin Forms
 
Xamarin Forms
Xamarin FormsXamarin Forms
Xamarin Forms
 
Modern .NET Apps - Telerik Webinar
Modern .NET Apps - Telerik WebinarModern .NET Apps - Telerik Webinar
Modern .NET Apps - Telerik Webinar
 
Xamarin day9 - Advance Xamarin Forms
Xamarin day9 - Advance Xamarin FormsXamarin day9 - Advance Xamarin Forms
Xamarin day9 - Advance Xamarin Forms
 
C# Exceptions Handling
C# Exceptions Handling C# Exceptions Handling
C# Exceptions Handling
 
Xamarin Forms
Xamarin FormsXamarin Forms
Xamarin Forms
 
Xamarin 2017 : découverte et tips
Xamarin 2017 : découverte et tipsXamarin 2017 : découverte et tips
Xamarin 2017 : découverte et tips
 
Xamarin forms Xaml + C#
Xamarin forms Xaml + C#Xamarin forms Xaml + C#
Xamarin forms Xaml + C#
 
Intro to Xamarin.Forms : A C# way to develop mobile app
Intro to Xamarin.Forms : A C# way to develop mobile appIntro to Xamarin.Forms : A C# way to develop mobile app
Intro to Xamarin.Forms : A C# way to develop mobile app
 
Native cross-platform mobile apps with C# and Xamarin.Forms
Native cross-platform mobile apps with C# and Xamarin.FormsNative cross-platform mobile apps with C# and Xamarin.Forms
Native cross-platform mobile apps with C# and Xamarin.Forms
 
DevDay Salerno - Introduzione a Xamarin
DevDay Salerno - Introduzione a XamarinDevDay Salerno - Introduzione a Xamarin
DevDay Salerno - Introduzione a Xamarin
 
Introducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLIntroducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAML
 
Developing and Designing Native Mobile Apps in Visual Studio
Developing and Designing Native Mobile Apps in Visual StudioDeveloping and Designing Native Mobile Apps in Visual Studio
Developing and Designing Native Mobile Apps in Visual Studio
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Xamarin Forms
Xamarin FormsXamarin Forms
Xamarin Forms
 
Introduction to Xamarin 2.0
Introduction to Xamarin 2.0Introduction to Xamarin 2.0
Introduction to Xamarin 2.0
 
Introduction to cross platform natitve mobile development with c# and xamarin
Introduction to cross platform natitve mobile development with c# and xamarinIntroduction to cross platform natitve mobile development with c# and xamarin
Introduction to cross platform natitve mobile development with c# and xamarin
 
Xamarin Mobile Leaders Summit: The Mobile Mind Shift: Opportunities, Challeng...
Xamarin Mobile Leaders Summit: The Mobile Mind Shift: Opportunities, Challeng...Xamarin Mobile Leaders Summit: The Mobile Mind Shift: Opportunities, Challeng...
Xamarin Mobile Leaders Summit: The Mobile Mind Shift: Opportunities, Challeng...
 
Visual studio enterprise 2017 mobile by Russ Fustino
Visual studio enterprise 2017 mobile by Russ FustinoVisual studio enterprise 2017 mobile by Russ Fustino
Visual studio enterprise 2017 mobile by Russ Fustino
 

Similar to Your First Xamarin.Forms App

APAC Webinar: Say Hello To Xamarin.Forms
APAC Webinar: Say Hello To Xamarin.FormsAPAC Webinar: Say Hello To Xamarin.Forms
APAC Webinar: Say Hello To Xamarin.FormsNish Anil
 
Introduction to Xamarin - Confoo 2015
Introduction to Xamarin - Confoo 2015Introduction to Xamarin - Confoo 2015
Introduction to Xamarin - Confoo 2015Guy Barrette
 
State of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and BeyondState of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and BeyondNick Landry
 
Tips & tricks for sharing C# code on iOS, Android and Windows Phone by Jaime ...
Tips & tricks for sharing C# code on iOS, Android and Windows Phone by Jaime ...Tips & tricks for sharing C# code on iOS, Android and Windows Phone by Jaime ...
Tips & tricks for sharing C# code on iOS, Android and Windows Phone by Jaime ....NET Conf UY
 
20141216 멜팅팟 부산 세션 ii - cross platform 개발
20141216 멜팅팟 부산   세션 ii - cross platform 개발20141216 멜팅팟 부산   세션 ii - cross platform 개발
20141216 멜팅팟 부산 세션 ii - cross platform 개발영욱 김
 
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 CloudJames Montemagno
 
Mobile Cross-Platform App Development in C# with Xamarin
Mobile Cross-Platform App Development in C# with XamarinMobile Cross-Platform App Development in C# with Xamarin
Mobile Cross-Platform App Development in C# with XamarinNick Landry
 
App innovationcircles xamarin
App innovationcircles xamarinApp innovationcircles xamarin
App innovationcircles xamarinMohit Chhabra
 
Cross platform mobile app development with Xamarin
Cross platform mobile app development with XamarinCross platform mobile app development with Xamarin
Cross platform mobile app development with XamarinPranav Ainavolu
 
Xamarin Open House talk - Sela Group - Ofir Makmal
Xamarin Open House talk - Sela Group - Ofir MakmalXamarin Open House talk - Sela Group - Ofir Makmal
Xamarin Open House talk - Sela Group - Ofir MakmalOfir Makmal
 
[MobConf] Go mobile with C#, Visual Studio & Xamarin
[MobConf] Go mobile with C#, Visual Studio & Xamarin[MobConf] Go mobile with C#, Visual Studio & Xamarin
[MobConf] Go mobile with C#, Visual Studio & XamarinNish Anil
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin PlatformRui Marinho
 
Designing mobile applications with xamarin
Designing mobile applications with xamarinDesigning mobile applications with xamarin
Designing mobile applications with xamarinJerel Hass
 
Xamarin.Forms a different approach to cross platform natove mobile development
Xamarin.Forms a different approach to cross platform natove mobile developmentXamarin.Forms a different approach to cross platform natove mobile development
Xamarin.Forms a different approach to cross platform natove mobile developmentDan Ardelean
 
20150812 4시간만에 따라해보는 windows 10 앱 개발
20150812  4시간만에 따라해보는 windows 10 앱 개발20150812  4시간만에 따라해보는 windows 10 앱 개발
20150812 4시간만에 따라해보는 windows 10 앱 개발영욱 김
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin PlatformLiddle Fang
 
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...Nick Landry
 

Similar to Your First Xamarin.Forms App (20)

APAC Webinar: Say Hello To Xamarin.Forms
APAC Webinar: Say Hello To Xamarin.FormsAPAC Webinar: Say Hello To Xamarin.Forms
APAC Webinar: Say Hello To Xamarin.Forms
 
Introduction to Xamarin - Confoo 2015
Introduction to Xamarin - Confoo 2015Introduction to Xamarin - Confoo 2015
Introduction to Xamarin - Confoo 2015
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
 
State of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and BeyondState of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
 
Tips & tricks for sharing C# code on iOS, Android and Windows Phone by Jaime ...
Tips & tricks for sharing C# code on iOS, Android and Windows Phone by Jaime ...Tips & tricks for sharing C# code on iOS, Android and Windows Phone by Jaime ...
Tips & tricks for sharing C# code on iOS, Android and Windows Phone by Jaime ...
 
20141216 멜팅팟 부산 세션 ii - cross platform 개발
20141216 멜팅팟 부산   세션 ii - cross platform 개발20141216 멜팅팟 부산   세션 ii - cross platform 개발
20141216 멜팅팟 부산 세션 ii - cross platform 개발
 
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
 
Mobile Cross-Platform App Development in C# with Xamarin
Mobile Cross-Platform App Development in C# with XamarinMobile Cross-Platform App Development in C# with Xamarin
Mobile Cross-Platform App Development in C# with Xamarin
 
App innovationcircles xamarin
App innovationcircles xamarinApp innovationcircles xamarin
App innovationcircles xamarin
 
Cross platform mobile app development with Xamarin
Cross platform mobile app development with XamarinCross platform mobile app development with Xamarin
Cross platform mobile app development with Xamarin
 
Xamarin Open House talk - Sela Group - Ofir Makmal
Xamarin Open House talk - Sela Group - Ofir MakmalXamarin Open House talk - Sela Group - Ofir Makmal
Xamarin Open House talk - Sela Group - Ofir Makmal
 
[MobConf] Go mobile with C#, Visual Studio & Xamarin
[MobConf] Go mobile with C#, Visual Studio & Xamarin[MobConf] Go mobile with C#, Visual Studio & Xamarin
[MobConf] Go mobile with C#, Visual Studio & Xamarin
 
Xamarin Development
Xamarin DevelopmentXamarin Development
Xamarin Development
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin Platform
 
Designing mobile applications with xamarin
Designing mobile applications with xamarinDesigning mobile applications with xamarin
Designing mobile applications with xamarin
 
Xamarin.Forms a different approach to cross platform natove mobile development
Xamarin.Forms a different approach to cross platform natove mobile developmentXamarin.Forms a different approach to cross platform natove mobile development
Xamarin.Forms a different approach to cross platform natove mobile development
 
20150812 4시간만에 따라해보는 windows 10 앱 개발
20150812  4시간만에 따라해보는 windows 10 앱 개발20150812  4시간만에 따라해보는 windows 10 앱 개발
20150812 4시간만에 따라해보는 windows 10 앱 개발
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin Platform
 
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile Development
 

More from Craig Dunn

Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)Craig Dunn
 
EastBay.net Building Mobile Apps with Xamarin and Visual Studio
EastBay.net Building Mobile Apps with Xamarin and Visual StudioEastBay.net Building Mobile Apps with Xamarin and Visual Studio
EastBay.net Building Mobile Apps with Xamarin and Visual StudioCraig Dunn
 
Introduction to iOS 9 (Xamarin Evolve 2016)
Introduction to iOS 9 (Xamarin Evolve 2016)Introduction to iOS 9 (Xamarin Evolve 2016)
Introduction to iOS 9 (Xamarin Evolve 2016)Craig Dunn
 
Wearables with C# and Xamarin
Wearables with C# and XamarinWearables with C# and Xamarin
Wearables with C# and XamarinCraig Dunn
 
What's New Xamarin.Forms 1.3
What's New Xamarin.Forms 1.3What's New Xamarin.Forms 1.3
What's New Xamarin.Forms 1.3Craig Dunn
 
Introduction to iOS with C# using Xamarin
Introduction to iOS with C# using XamarinIntroduction to iOS with C# using Xamarin
Introduction to iOS with C# using XamarinCraig Dunn
 
Introduction to Android with C# using Xamarin
Introduction to Android with C# using XamarinIntroduction to Android with C# using Xamarin
Introduction to Android with C# using XamarinCraig Dunn
 
iOS & Android apps using Parse and Xamarin
iOS & Android apps using Parse and XamariniOS & Android apps using Parse and Xamarin
iOS & Android apps using Parse and XamarinCraig Dunn
 
Azure Mobile Services - more than just cloud data
Azure Mobile Services - more than just cloud dataAzure Mobile Services - more than just cloud data
Azure Mobile Services - more than just cloud dataCraig Dunn
 
Cloud-enabling iOS & Android apps with C# (using Xamarin)
Cloud-enabling iOS & Android apps with C# (using Xamarin)Cloud-enabling iOS & Android apps with C# (using Xamarin)
Cloud-enabling iOS & Android apps with C# (using Xamarin)Craig Dunn
 
Cloudy with a Chance of Cross Platform (for Bay.NET)
Cloudy with a Chance of Cross Platform (for Bay.NET)Cloudy with a Chance of Cross Platform (for Bay.NET)
Cloudy with a Chance of Cross Platform (for Bay.NET)Craig Dunn
 
Async Await for Mobile Apps
Async Await for Mobile AppsAsync Await for Mobile Apps
Async Await for Mobile AppsCraig Dunn
 
Mono for Android... for Google Devs
Mono for Android... for Google DevsMono for Android... for Google Devs
Mono for Android... for Google DevsCraig Dunn
 
PassKit on iOS6
PassKit on iOS6PassKit on iOS6
PassKit on iOS6Craig Dunn
 
OzAltNet Fast-ANDroid-furious
OzAltNet Fast-ANDroid-furiousOzAltNet Fast-ANDroid-furious
OzAltNet Fast-ANDroid-furiousCraig Dunn
 
OzAltNet Fast-ANDroid-furious
OzAltNet Fast-ANDroid-furiousOzAltNet Fast-ANDroid-furious
OzAltNet Fast-ANDroid-furiousCraig Dunn
 
Cross-platform mobile dev with Mono
Cross-platform mobile dev with MonoCross-platform mobile dev with Mono
Cross-platform mobile dev with MonoCraig Dunn
 

More from Craig Dunn (19)

Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)
 
EastBay.net Building Mobile Apps with Xamarin and Visual Studio
EastBay.net Building Mobile Apps with Xamarin and Visual StudioEastBay.net Building Mobile Apps with Xamarin and Visual Studio
EastBay.net Building Mobile Apps with Xamarin and Visual Studio
 
Introduction to iOS 9 (Xamarin Evolve 2016)
Introduction to iOS 9 (Xamarin Evolve 2016)Introduction to iOS 9 (Xamarin Evolve 2016)
Introduction to iOS 9 (Xamarin Evolve 2016)
 
Wearables with C# and Xamarin
Wearables with C# and XamarinWearables with C# and Xamarin
Wearables with C# and Xamarin
 
What's New Xamarin.Forms 1.3
What's New Xamarin.Forms 1.3What's New Xamarin.Forms 1.3
What's New Xamarin.Forms 1.3
 
Introduction to iOS with C# using Xamarin
Introduction to iOS with C# using XamarinIntroduction to iOS with C# using Xamarin
Introduction to iOS with C# using Xamarin
 
Introduction to Android with C# using Xamarin
Introduction to Android with C# using XamarinIntroduction to Android with C# using Xamarin
Introduction to Android with C# using Xamarin
 
iOS & Android apps using Parse and Xamarin
iOS & Android apps using Parse and XamariniOS & Android apps using Parse and Xamarin
iOS & Android apps using Parse and Xamarin
 
Azure Mobile Services - more than just cloud data
Azure Mobile Services - more than just cloud dataAzure Mobile Services - more than just cloud data
Azure Mobile Services - more than just cloud data
 
Cloud-enabling iOS & Android apps with C# (using Xamarin)
Cloud-enabling iOS & Android apps with C# (using Xamarin)Cloud-enabling iOS & Android apps with C# (using Xamarin)
Cloud-enabling iOS & Android apps with C# (using Xamarin)
 
Cloudy with a Chance of Cross Platform (for Bay.NET)
Cloudy with a Chance of Cross Platform (for Bay.NET)Cloudy with a Chance of Cross Platform (for Bay.NET)
Cloudy with a Chance of Cross Platform (for Bay.NET)
 
Async Await for Mobile Apps
Async Await for Mobile AppsAsync Await for Mobile Apps
Async Await for Mobile Apps
 
Xamarin v.Now
Xamarin v.NowXamarin v.Now
Xamarin v.Now
 
C# everywhere
C# everywhereC# everywhere
C# everywhere
 
Mono for Android... for Google Devs
Mono for Android... for Google DevsMono for Android... for Google Devs
Mono for Android... for Google Devs
 
PassKit on iOS6
PassKit on iOS6PassKit on iOS6
PassKit on iOS6
 
OzAltNet Fast-ANDroid-furious
OzAltNet Fast-ANDroid-furiousOzAltNet Fast-ANDroid-furious
OzAltNet Fast-ANDroid-furious
 
OzAltNet Fast-ANDroid-furious
OzAltNet Fast-ANDroid-furiousOzAltNet Fast-ANDroid-furious
OzAltNet Fast-ANDroid-furious
 
Cross-platform mobile dev with Mono
Cross-platform mobile dev with MonoCross-platform mobile dev with Mono
Cross-platform mobile dev with Mono
 

Recently uploaded

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 

Recently uploaded (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 

Your First Xamarin.Forms App

  • 1. Your First Xamarin.Forms App Craig Dunn Developer Evangelist @conceptdev
  • 3. Meet Xamarin.Forms Build native UIs for iOS, Android and Windows Phone from a single, shared C# codebase.
  • 4. Meet Xamarin.Forms Build native UIs for iOS, Android and Windows Phone from a single, shared C# codebase.
  • 5. Meet Xamarin.Forms Build native UIs for iOS, Android and Windows Phone from a single, shared C# codebase.
  • 6. Meet Xamarin.Forms C# XAML public class HelloWorld : ContentPage { public HelloWorld () { var button = new Button { Text = "Say Hello" } ; button.Clicked += SayHelloClicked; Content = new StackLayout { new Label { Text = "Hello World" } , button }; } ! void SayHelloClicked (object s, EventArgs e) { // do something } } <?xml version="1.0" encoding="UTF-8"?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" x:Class="HelloForms.HelloWorld"> <StackLayout> <Label Text="Hello World" /> <Button Text="Say Hello" OnClick="SayHelloClicked" /> </StackLayout> </ContentPage> ! public partial class HelloWorld : ContentPage { public HelloWorld () { InitializeComponent (); } void SayHelloClicked (object s, EventArgs e) { // do something } }
  • 7. Your first Xamarin.Forms app ■ File > New Project ■ Design a screen ■ Add some code ■ Run on iOS, Android, & Windows Phone
  • 8. Traditional Xamarin Development Using the native UI SDKs ■ Write shared C# code ■ Database, Web Services ■ Business Logic ■ Build native UIs ■ UIKit & Storyboards on iOS ■ AXML for Android ■ XAML for Windows Phone ■ Share 60-‐80% of the code UIKit Layout XAML SharedS Ch#a rAepdp A Lpopg iLcogic
  • 9. UIKit Layout XAML Shared C# User Interface Code Shared C# App Logic Shared App Logic Using Xamarin.Forms To build the User Interface ■ Use the same strategies for sharing ■ Database, Web Services ■ Business Logic ■ Build the UI with a single shared codebase ! ■ Share 99% of the code
  • 10. Using Xamarin.Forms Benefits ■ Native look and feel ■ Code sharing/re-‐use ■ Access to native SDKs using Custom Renderers and DependencyService ■ Camera, accelerometer, GPS, ■ NFC & more on Android ■ PassKit & more on iOS ■ Tiles & more on Windows Phone Shared C# User Interface Code Shared App Logic Shared C# App Logic
  • 11. How Xamarin.Forms works ■ Anatomy of a Xamarin.Forms solution ■ Controls ■ Layouts ■ Pages
  • 12. How Xamarin.Forms works Anatomy of a Xamarin.Forms Solution ■ PCL or Shared Project
  • 13. How Xamarin.Forms works Anatomy of a Xamarin.Forms Solution ■ PCL or Shared Project ■ NuGet Package
  • 14. How Xamarin.Forms works Anatomy of a Xamarin.Forms Solution ■ PCL or Shared Project ■ NuGet Package ■ App.cs
  • 15. How Xamarin.Forms works Anatomy of a Xamarin.Forms Solution ■ PCL or Shared Project ■ NuGet Package ■ App.cs ■ Android app
  • 16. How Xamarin.Forms works Anatomy of a Xamarin.Forms Solution ■ PCL or Shared Project ■ NuGet Package ■ App.cs ■ Android app ■ iOS app
  • 17. How Xamarin.Forms works Anatomy of a Xamarin.Forms Solution ■ PCL or Shared Project ■ NuGet Package ■ App.cs ■ Android app ■ iOS app ■ Windows Phone app
  • 18. How Xamarin.Forms works Controls var hello = new Label { Text = "Hello World" }; var ok = new Button { Text = "OK" }; ok.Clicked += async (sender, e) => { await DisplayAlert("OK", "You said OK", "Done"); }; ! ! <Label Text="Hello World" /> <Button Text="OK" OnClick="OkClicked" /> image: Balsamiq
  • 19. How Xamarin.Forms works Layouts var layout = new StackLayout { Orientation = StackOrientation.Vertical, Children = { hello, ok } }; <StackLayout Orientation="Vertical"> <Label x:Name="hello" Text="Hello World" /> <Button x:Name="ok" Text="OK" OnClick="OkClicked"/> </StackLayout> image: Balsamiq
  • 20. How Xamarin.Forms works Pages public class HelloWorld : ContentPage { public HelloWorld () { var button = new Button { Text = "OK" } ; button.Clicked += SayHelloClicked; Content = new StackLayout { new Label { Text = "Hello World" } , button }; } void SayHelloClicked (object s, EventArgs e) { // display an alert } } ! <?xml version="1.0" encoding="UTF-8"?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009 x:Class="HelloForms.HelloWorld"> <StackLayout Orientation="Vertical"> <Label x:Name="hello" Text="Hello World" /> <Button x:Name="ok" Text="OK" OnClick="OkClicked" /> </StackLayout> </ContentPage> image: Balsamiq
  • 21. Platform Renderers Taking Xamarin.Forms UI to the people (﴾devices)﴿ ? ? ?
  • 22. Platform Renderers Taking Xamarin.Forms UI to the people
  • 23. Xamarin.Forms brings common UX to everyone iOS does not have a native control for the iPhone, however Xamarin.Forms uses UISplitViewController on iPad. Android has a native 'drawer' control which Xamarin.Forms uses. Windows Phone doesn’t have a comparable UI metaphor, so Xamarin.Forms provides an implementation. MasterDetailPage
  • 24. Xamarin.Forms brings common UX to everyone iOS has the UINavigationController which Xamarin.Forms leverages. Android has the navigation stack built in, but Xamarin.Forms adds the automatic 'back' button for API consistency. Windows Phone also has a back-‐ stack with hardware button, so Xamarin.Forms takes advantage of that. NavigationPage
  • 25. 140 new Controls! Welcome to our new Xamarin.Forms partners http://blog.xamarin.com/enterprise-‐component-‐ vendors-‐join-‐xamarin.forms-‐ecosystem/
  • 26. Your second Xamarin.Forms app ■ File > New Project ■ Design some screens ■ Add some code ■ Run on iOS, Android, & Windows Phone
  • 27. Dependency Service Easily call into platform-‐specific code ■ In the common code ■ Code to an Interface public interface ITextToSpeech { void Speak (string text); } ! ! DependencyService.Get<ITextToSpeech>().Speak("Hello from Xamarin Forms"); ! ! !
  • 28. Dependency Service Easily call into platform-‐specific code ■ In the common code ■ Code to an Interface ■ Use DependencyService public interface ITextToSpeech { void Speak (string text); } ! ! DependencyService.Get<ITextToSpeech>().Speak("Hello from Xamarin Forms"); ! ! !
  • 29. Dependency Service Easily call into platform-‐specific code ■ In the common code ■ Code to an Interface ■ Use DependencyService ■ For each platform ■ implement the Interface [assembly: Xamarin.Forms.Dependency (typeof (Speech))] public class Speech : ITextToSpeech { public Speech () { } public void Speak (string text) { var speechSynthesizer = new AVSpeechSynthesizer (); var speechUtterance = new AVSpeechUtterance (text) { Rate = AVSpeechUtterance.MaximumSpeechRate/4, Voice = AVSpeechSynthesisVoice.FromLanguage ("en-US"), Volume = 0.5f, PitchMultiplier = 1.0f } ; speechSynthesizer.SpeakUtterance (speechUtterance); } }
  • 30. Dependency Service Easily call into platform-‐specific code ■ In the common code ■ Code to an Interface ■ Use DependencyService ■ For each platform ■ implement the Interface ■ use Dependency attribute on the assembly [assembly: Xamarin.Forms.Dependency (typeof (Speech))] public class Speech : ITextToSpeech { public Speech () { } public void Speak (string text) { var speechSynthesizer = new AVSpeechSynthesizer (); var speechUtterance = new AVSpeechUtterance (text) { Rate = AVSpeechUtterance.MaximumSpeechRate/4, Voice = AVSpeechSynthesisVoice.FromLanguage ("en-US"), Volume = 0.5f, PitchMultiplier = 1.0f } ; speechSynthesizer.SpeakUtterance (speechUtterance); } }
  • 31. Data Binding Sync views and models ■ Enables MVVM-‐style development ■ SetBinding in C# ■ {Binding} in XAML ■ also supports the Command pattern
  • 32. Messaging Center Loosely-‐coupled publish and subscribe Subscriber Messaging Publisher Center 1. Register 3. Receive 2. Send Message
  • 33. Custom Renderers Extend or Create Xamarin.Forms Controls ■ Subclass the built-‐in Platform Renderers ! ■ Build your own Xamarin.Forms control and renderers (﴾eg. OxyPlot)﴿ ! ■ Attend Jason’s Extending Xamarin.Forms talk on Thursday
  • 34. Further Reading… ■ developer.xamarin.com ■ forums.xamarin.com ■ Creating Mobile Apps with Xamarin.Forms -‐ Charles Petzold PREVIEW EDITION available for all Evolve 2014 attendees
  • 35. What’s next? Today • Building cross platform applications -‐ Laurent Bugnion Tomorrow • XAML for Xamarin.Forms -‐ Charles Petzold • Extending Xamarin.Forms -‐ Jason Smith Friday • Xamarin.Forms is Cooler Than You Think -‐ Charles Petzold ! Mini-‐hacks • Visit the Darwin Lounge
  • 36. Your First Xamarin.Forms App Craig Dunn @conceptdev craig@xamarin.com