SlideShare a Scribd company logo
Xamarin 101
WHAT YOU NEED TO KNOW TO GET STARTED WITH XAMARIN.FORMS
TODAY!
About Me Chester (Chet) Hartin
Technical Architect @ Concurrency
Focus: C#, APIs, Messaging services, Xamarin.
GitHub: https://github.com/chesterhartin
Twitter: @ChetHartin
About Me
Chester (Chet) Hartin
Tec hnic al Architec t @Concurrency
Foc us: C# , APIs, Messaging servic es, Xamarin.
GitHub: https:/ / github.c om/ c hesterhartin
Twitter: @ChetHartin
Syllabus
Intro To Xamarin
Basic building blocks of Xamarin.Forms
XAML Introduction
Databinding
View Customization
What to do next?
Intro To Xamarin
Why Xamarin when we have Java, Objective-C, Swift?
• This leads to Write Everything Twice (WET) Development
• Xamarin allows us to write for the iOS (8 and up), Android (API 15 / 4.0.3
and up), WFP, MacOS, Smart watches (iOS/Android), Samsung Smart
devices
When should
I use it?
Why Xamarin when we have Flutter, PhoneGap,
Corona, React Native...
• All of these are great tools!
But…
• Your team knows C#/.Net
• You need multiple-platform apps
• You want a native app performance and/or look &
feel
1000 Feet Above
Xamarin.Forms
XAMARIN.FORMS SHARE A UI
DEFINITION*
History Recap
2011
Founded in 2011 as
MonoTouch/Mono For
Android
2013
Renamed & integration into
Visual Studio / Launch Of
Xamarin Studio
2016
Purchased by Microsoft
•Full time development / support
•Free & 100% open-sourced
What Do I
need?
 PC
 Visual Studio 2017 / 2019
 Mac
 Visual Studio for Mac
 Note: iOS development REQUIRES a
Mac to build/test
Basic Building Blocks
Pages
Layouts
Views
Cells
Flexible
Layout
Standard
Controls
Navigation
Custom
Controls
Data
Binding
XAML
Styles +
Triggers
Maps
Pages – Building Block 1
Layouts –
Building
Block 2
Views – Building
Block 3
Button
Label
Entry
Switch
Activity Indicator
Views – Building Block 3 (cont)
Views Android iOS
Button
Label
Entry
Switch
Activity Indicator
Views – Building Block 3 (cont)
 List View
 Table View
 Image
 Slider
 Date Picker
 Progress bar
 Editor
 Map
 Web View
 Open GL View
 Frame
 … And more!
Cells – Building Block 4
 A View Cell (Cell) is a view optimized for data
templates
 Can use layouts
 Great for a reusable template in a List.
XAML
Introduction
 Code time!
 Anatomy of a Xamarin.Forms App
 Content Page
 Views
 Styles
 Layouts
 Stack
 Grid
 Absolute
Databinding
 How do we show information to the
user?
 How do we get user input?
 Model-View-ViewModel (MVVM)
Basics
 View: knows how to display
 ViewModel: knows what data to
display
 Model: the nouns of the system
Flexible
Layout
Standard
Controls
Navigation
Custom
Controls
Data
Binding
XAML
Styles +
Triggers
Maps
Databinding (cont.)
View
XF Content
Page
ViewModel
Class
Model
Class
Data Data
Events
• View: knows how to display data
• ViewModel: knows what data to display
• Model: the nouns of the system. Data Objects
Databinding
(cont.)
 Code Time!
 Bindable Properties
 Binding a Context
 Converters
View Customization
 What if Xamarin.Forms doesn’t behave
the way I want it to?
 Platform Specific Changes
 Effects
 Behaviors
 Custom Renderers
View Customization (cont.)
 Platform-Specifics
 Use functionality that’s only available on
a specific platform
iOS Android
VisualElement.BlurEffect VisualElement.Elevation
VisualElement.IsShadowEnabled Button.UseDefaultPadding
Entry.AdjustsFontSizeToFitWidth Button.UseDefaultShadow
Entry.CursorColor Entry.ImeOptions (set action)
ListView.SeparatorStyle ListView.IsFastScrollEnabled
NavigationPage.HideNavigationBarSeparator NavigationPage.BarHeight
View
Customization
(cont)
 Effects
 AKA “Custom Renderers Lite”
 Allow the native controls on each platform to be
customized
 Typically used for small styling changes
 Benefits:
 Simplify the customization of a control
 Are reusable
 Can be passed as parameters for increased reuse
View
Customization
(cont.)
 Behaviors
 Attach additional functionality to any
Xamarin.Forms View
 Examples
 Allow n-characters in an entry
 Only allow integers to be entered into an entry
View Customization (cont.)
 Custom Renderers
 Lets developers override the out-of-the-box renderers to customize the
appearance/behavior of Xamarin.Forms on each platform
 Think “can I do this with an effect?” first
 Extend a Xamarin.Forms View
 Required when there’s a need to override methods of a platform-specific
control.
View Customization (cont.)
 Code Time!
 Platform-specific
 Effects
 Behaviors
 Custom Renderers
What to do next?
 Try out these device features:
 Accelerometer, Barometer, Battery, Compass, Connectivity State, etc
 Use plugins
 NuGet packages implement and provide a lot of features!
 Xamarin.Essentials - a must for an interactive app
 Microsoft Learn (or Xamarin University until June 2019)
 https://docs.microsoft.com/en-
us/learn/browse/?roles=developer&term=xamarin
 I recommend all the Xamarin.Forms courses
References
 Documentation
 All available online:
 https://docs.microsoft.com/en-us/xamarin/
 Slack
 Get involved
 https://xamarinchat.herokuapp.com/
 Learn the hot MVVM frameworks
 Prism https://prismlibrary.github.io/
 ReactiveUI https://reactiveui.net/
 MVVMCross https://www.mvvmcross.com/
Resources
 Installing Xamarin: https://docs.microsoft.com/en-us/xamarin/get-
started/installation/?pivots=windows
 Build your first app with Xamarin.Forms:
https://www.youtube.com/watch?v=NGvn-pGZFPA
 Xamarin.Forms roadmap:
https://github.com/xamarin/Xamarin.Forms/wiki/Feature-Roadmap
About Me Chester (Chet) Hartin
Technical Architect @ Concurrency
Focus: C#, APIs, Messaging services, Xamarin.
GitHub: https://github.com/chesterhartin
Twitter: @ChetHartin

More Related Content

What's hot

Xamarin Forms
Xamarin FormsXamarin Forms
Xamarin Forms
Rui Marinho
 
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 Dev Days Madrid 2017 - Xamarin.Forms
Xamarin Dev Days Madrid 2017 -  Xamarin.FormsXamarin Dev Days Madrid 2017 -  Xamarin.Forms
Xamarin Dev Days Madrid 2017 - Xamarin.Forms
Javier Suárez Ruiz
 
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
Nick Landry
 
Xamarin overview droidcon.tn
Xamarin overview   droidcon.tnXamarin overview   droidcon.tn
Xamarin overview droidcon.tn
Houssem Dellai
 
The very first steps to make my first Mobile App with Xamarin
The very first steps to make my first Mobile App with XamarinThe very first steps to make my first Mobile App with Xamarin
The very first steps to make my first Mobile App with Xamarin
Zayen Chagra
 
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
 
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
 
Customizing Xamarin.Forms UI
Customizing Xamarin.Forms UICustomizing Xamarin.Forms UI
Customizing Xamarin.Forms UI
Xamarin
 
Xamarin introduction
Xamarin introductionXamarin introduction
Xamarin introduction
Anas El Hajjaji
 
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
 
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
Nick Landry
 
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
 
Creating 3 Beautiful Apps At Once - Intro To Xamarin.Forms
Creating 3 Beautiful Apps At Once - Intro To Xamarin.FormsCreating 3 Beautiful Apps At Once - Intro To Xamarin.Forms
Creating 3 Beautiful Apps At Once - Intro To Xamarin.Forms
Matthew Soucoup
 
Xamarin Roadshow
Xamarin RoadshowXamarin Roadshow
Xamarin Roadshow
Sam Basu
 
#XamarinDevDays - Cross Platform Native UI with Xamarin.Forms
#XamarinDevDays - Cross Platform Native UI with Xamarin.Forms#XamarinDevDays - Cross Platform Native UI with Xamarin.Forms
#XamarinDevDays - Cross Platform Native UI with Xamarin.Forms
Udara Alwis
 
Xamarin Forms
Xamarin FormsXamarin Forms
Xamarin Forms
Pranav Ainavolu
 
Visual Studio Toolbox - Introduction To Xamarin.Forms
Visual Studio Toolbox - Introduction To Xamarin.FormsVisual Studio Toolbox - Introduction To Xamarin.Forms
Visual Studio Toolbox - Introduction To Xamarin.Forms
James Montemagno
 
Xamarin first mobile application
Xamarin first mobile applicationXamarin first mobile application
Xamarin first mobile application
Zayen Chagra
 
Xamarin Dev Days - Xamarin.Forms
Xamarin Dev Days -  Xamarin.FormsXamarin Dev Days -  Xamarin.Forms
Xamarin Dev Days - Xamarin.Forms
Javier Suárez Ruiz
 

What's hot (20)

Xamarin Forms
Xamarin FormsXamarin Forms
Xamarin Forms
 
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 Dev Days Madrid 2017 - Xamarin.Forms
Xamarin Dev Days Madrid 2017 -  Xamarin.FormsXamarin Dev Days Madrid 2017 -  Xamarin.Forms
Xamarin Dev Days Madrid 2017 - Xamarin.Forms
 
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
 
Xamarin overview droidcon.tn
Xamarin overview   droidcon.tnXamarin overview   droidcon.tn
Xamarin overview droidcon.tn
 
The very first steps to make my first Mobile App with Xamarin
The very first steps to make my first Mobile App with XamarinThe very first steps to make my first Mobile App with Xamarin
The very first steps to make my first Mobile App with 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?
 
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
 
Customizing Xamarin.Forms UI
Customizing Xamarin.Forms UICustomizing Xamarin.Forms UI
Customizing Xamarin.Forms UI
 
Xamarin introduction
Xamarin introductionXamarin introduction
Xamarin introduction
 
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
 
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
 
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
 
Creating 3 Beautiful Apps At Once - Intro To Xamarin.Forms
Creating 3 Beautiful Apps At Once - Intro To Xamarin.FormsCreating 3 Beautiful Apps At Once - Intro To Xamarin.Forms
Creating 3 Beautiful Apps At Once - Intro To Xamarin.Forms
 
Xamarin Roadshow
Xamarin RoadshowXamarin Roadshow
Xamarin Roadshow
 
#XamarinDevDays - Cross Platform Native UI with Xamarin.Forms
#XamarinDevDays - Cross Platform Native UI with Xamarin.Forms#XamarinDevDays - Cross Platform Native UI with Xamarin.Forms
#XamarinDevDays - Cross Platform Native UI with Xamarin.Forms
 
Xamarin Forms
Xamarin FormsXamarin Forms
Xamarin Forms
 
Visual Studio Toolbox - Introduction To Xamarin.Forms
Visual Studio Toolbox - Introduction To Xamarin.FormsVisual Studio Toolbox - Introduction To Xamarin.Forms
Visual Studio Toolbox - Introduction To Xamarin.Forms
 
Xamarin first mobile application
Xamarin first mobile applicationXamarin first mobile application
Xamarin first mobile application
 
Xamarin Dev Days - Xamarin.Forms
Xamarin Dev Days -  Xamarin.FormsXamarin Dev Days -  Xamarin.Forms
Xamarin Dev Days - Xamarin.Forms
 

Similar to Xamarin 101

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.Forms
Introduction to Xamarin.FormsIntroduction to Xamarin.Forms
Introduction to Xamarin.Forms
Brad Pillow
 
SharePoint Mobile App Development with Xmarin
SharePoint Mobile App Development with XmarinSharePoint Mobile App Development with Xmarin
SharePoint Mobile App Development with Xmarin
Hector Luciano Jr
 
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
 
Xamarin workshop
Xamarin workshopXamarin workshop
Xamarin workshopNguyen Hieu
 
Mike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and PatternsMike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and Patterns
ukdpe
 
Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with SilverlightRe-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with SilverlightFrank La Vigne
 
What's new and next for mobile development with .NET
What's new and next for mobile development with .NETWhat's new and next for mobile development with .NET
What's new and next for mobile development with .NET
James Montemagno
 
Getting started with Xamarin Forms
Getting started with Xamarin FormsGetting started with Xamarin Forms
Getting started with Xamarin Forms
Leomaris Reyes
 
Xamarin the good, the bad and the ugly
Xamarin  the good, the bad and the uglyXamarin  the good, the bad and the ugly
Xamarin the good, the bad and the ugly
Azilen Technologies Pvt. Ltd.
 
Top reasons why to choose xamarin for mobile app development
Top reasons why to choose xamarin for mobile app developmentTop reasons why to choose xamarin for mobile app development
Top reasons why to choose xamarin for mobile app development
FugenX
 
Stunning Mobile Apps with the Xamarin Visual Design System​
Stunning Mobile Apps with the Xamarin Visual Design System​Stunning Mobile Apps with the Xamarin Visual Design System​
Stunning Mobile Apps with the Xamarin Visual Design System​
James Montemagno
 
How Xamarin Is Revolutionizing Mobile Development
How Xamarin Is Revolutionizing Mobile DevelopmentHow Xamarin Is Revolutionizing Mobile Development
How Xamarin Is Revolutionizing Mobile Development
MentorMate
 
Flying High with Xamarin!
Flying High with Xamarin!Flying High with Xamarin!
Flying High with Xamarin!
Sam Basu
 
Best practices in using Salesforce Metadata API
Best practices in using Salesforce Metadata APIBest practices in using Salesforce Metadata API
Best practices in using Salesforce Metadata API
Sanchit Dua
 
A Lap Around Visual Studio 2010
A Lap Around Visual Studio 2010A Lap Around Visual Studio 2010
A Lap Around Visual Studio 2010
Abram John Limpin
 
Xamarin.Forms Hands On Lab (Begineer)
Xamarin.Forms Hands On Lab (Begineer)Xamarin.Forms Hands On Lab (Begineer)
Xamarin.Forms Hands On Lab (Begineer)
Cheah Eng Soon
 
Serverless Computing with Azure Functions and Xamarin
Serverless Computing with Azure Functions and XamarinServerless Computing with Azure Functions and Xamarin
Serverless Computing with Azure Functions and Xamarin
Mark Arteaga
 
Designing mobile applications with xamarin
Designing mobile applications with xamarinDesigning mobile applications with xamarin
Designing mobile applications with xamarin
Jerel Hass
 
RUG-Asia - ALM
RUG-Asia - ALMRUG-Asia - ALM

Similar to Xamarin 101 (20)

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.Forms
Introduction to Xamarin.FormsIntroduction to Xamarin.Forms
Introduction to Xamarin.Forms
 
SharePoint Mobile App Development with Xmarin
SharePoint Mobile App Development with XmarinSharePoint Mobile App Development with Xmarin
SharePoint Mobile App Development with Xmarin
 
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)
 
Xamarin workshop
Xamarin workshopXamarin workshop
Xamarin workshop
 
Mike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and PatternsMike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and Patterns
 
Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with SilverlightRe-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
 
What's new and next for mobile development with .NET
What's new and next for mobile development with .NETWhat's new and next for mobile development with .NET
What's new and next for mobile development with .NET
 
Getting started with Xamarin Forms
Getting started with Xamarin FormsGetting started with Xamarin Forms
Getting started with Xamarin Forms
 
Xamarin the good, the bad and the ugly
Xamarin  the good, the bad and the uglyXamarin  the good, the bad and the ugly
Xamarin the good, the bad and the ugly
 
Top reasons why to choose xamarin for mobile app development
Top reasons why to choose xamarin for mobile app developmentTop reasons why to choose xamarin for mobile app development
Top reasons why to choose xamarin for mobile app development
 
Stunning Mobile Apps with the Xamarin Visual Design System​
Stunning Mobile Apps with the Xamarin Visual Design System​Stunning Mobile Apps with the Xamarin Visual Design System​
Stunning Mobile Apps with the Xamarin Visual Design System​
 
How Xamarin Is Revolutionizing Mobile Development
How Xamarin Is Revolutionizing Mobile DevelopmentHow Xamarin Is Revolutionizing Mobile Development
How Xamarin Is Revolutionizing Mobile Development
 
Flying High with Xamarin!
Flying High with Xamarin!Flying High with Xamarin!
Flying High with Xamarin!
 
Best practices in using Salesforce Metadata API
Best practices in using Salesforce Metadata APIBest practices in using Salesforce Metadata API
Best practices in using Salesforce Metadata API
 
A Lap Around Visual Studio 2010
A Lap Around Visual Studio 2010A Lap Around Visual Studio 2010
A Lap Around Visual Studio 2010
 
Xamarin.Forms Hands On Lab (Begineer)
Xamarin.Forms Hands On Lab (Begineer)Xamarin.Forms Hands On Lab (Begineer)
Xamarin.Forms Hands On Lab (Begineer)
 
Serverless Computing with Azure Functions and Xamarin
Serverless Computing with Azure Functions and XamarinServerless Computing with Azure Functions and Xamarin
Serverless Computing with Azure Functions and Xamarin
 
Designing mobile applications with xamarin
Designing mobile applications with xamarinDesigning mobile applications with xamarin
Designing mobile applications with xamarin
 
RUG-Asia - ALM
RUG-Asia - ALMRUG-Asia - ALM
RUG-Asia - ALM
 

More from Chester Hartin

Asynchronous programming
Asynchronous programmingAsynchronous programming
Asynchronous programmingChester Hartin
 

More from Chester Hartin (8)

Proxy pattern
Proxy patternProxy pattern
Proxy pattern
 
Asynchronous programming
Asynchronous programmingAsynchronous programming
Asynchronous programming
 
Elapsed time
Elapsed timeElapsed time
Elapsed time
 
Dependency injection
Dependency injectionDependency injection
Dependency injection
 
Map kit
Map kitMap kit
Map kit
 
Hash tables
Hash tablesHash tables
Hash tables
 
Parallel extensions
Parallel extensionsParallel extensions
Parallel extensions
 
Reflection
ReflectionReflection
Reflection
 

Recently uploaded

Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 

Recently uploaded (20)

Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 

Xamarin 101

  • 1. Xamarin 101 WHAT YOU NEED TO KNOW TO GET STARTED WITH XAMARIN.FORMS TODAY!
  • 2. About Me Chester (Chet) Hartin Technical Architect @ Concurrency Focus: C#, APIs, Messaging services, Xamarin. GitHub: https://github.com/chesterhartin Twitter: @ChetHartin About Me Chester (Chet) Hartin Tec hnic al Architec t @Concurrency Foc us: C# , APIs, Messaging servic es, Xamarin. GitHub: https:/ / github.c om/ c hesterhartin Twitter: @ChetHartin
  • 3.
  • 4. Syllabus Intro To Xamarin Basic building blocks of Xamarin.Forms XAML Introduction Databinding View Customization What to do next?
  • 5. Intro To Xamarin Why Xamarin when we have Java, Objective-C, Swift? • This leads to Write Everything Twice (WET) Development • Xamarin allows us to write for the iOS (8 and up), Android (API 15 / 4.0.3 and up), WFP, MacOS, Smart watches (iOS/Android), Samsung Smart devices
  • 6. When should I use it? Why Xamarin when we have Flutter, PhoneGap, Corona, React Native... • All of these are great tools! But… • Your team knows C#/.Net • You need multiple-platform apps • You want a native app performance and/or look & feel
  • 9. History Recap 2011 Founded in 2011 as MonoTouch/Mono For Android 2013 Renamed & integration into Visual Studio / Launch Of Xamarin Studio 2016 Purchased by Microsoft •Full time development / support •Free & 100% open-sourced
  • 10. What Do I need?  PC  Visual Studio 2017 / 2019  Mac  Visual Studio for Mac  Note: iOS development REQUIRES a Mac to build/test
  • 14. Views – Building Block 3 Button Label Entry Switch Activity Indicator
  • 15. Views – Building Block 3 (cont) Views Android iOS Button Label Entry Switch Activity Indicator
  • 16. Views – Building Block 3 (cont)  List View  Table View  Image  Slider  Date Picker  Progress bar  Editor  Map  Web View  Open GL View  Frame  … And more!
  • 17. Cells – Building Block 4  A View Cell (Cell) is a view optimized for data templates  Can use layouts  Great for a reusable template in a List.
  • 18. XAML Introduction  Code time!  Anatomy of a Xamarin.Forms App  Content Page  Views  Styles  Layouts  Stack  Grid  Absolute
  • 19.
  • 20. Databinding  How do we show information to the user?  How do we get user input?  Model-View-ViewModel (MVVM) Basics  View: knows how to display  ViewModel: knows what data to display  Model: the nouns of the system Flexible Layout Standard Controls Navigation Custom Controls Data Binding XAML Styles + Triggers Maps
  • 21. Databinding (cont.) View XF Content Page ViewModel Class Model Class Data Data Events • View: knows how to display data • ViewModel: knows what data to display • Model: the nouns of the system. Data Objects
  • 22. Databinding (cont.)  Code Time!  Bindable Properties  Binding a Context  Converters
  • 23.
  • 24. View Customization  What if Xamarin.Forms doesn’t behave the way I want it to?  Platform Specific Changes  Effects  Behaviors  Custom Renderers
  • 25. View Customization (cont.)  Platform-Specifics  Use functionality that’s only available on a specific platform iOS Android VisualElement.BlurEffect VisualElement.Elevation VisualElement.IsShadowEnabled Button.UseDefaultPadding Entry.AdjustsFontSizeToFitWidth Button.UseDefaultShadow Entry.CursorColor Entry.ImeOptions (set action) ListView.SeparatorStyle ListView.IsFastScrollEnabled NavigationPage.HideNavigationBarSeparator NavigationPage.BarHeight
  • 26. View Customization (cont)  Effects  AKA “Custom Renderers Lite”  Allow the native controls on each platform to be customized  Typically used for small styling changes  Benefits:  Simplify the customization of a control  Are reusable  Can be passed as parameters for increased reuse
  • 27. View Customization (cont.)  Behaviors  Attach additional functionality to any Xamarin.Forms View  Examples  Allow n-characters in an entry  Only allow integers to be entered into an entry
  • 28. View Customization (cont.)  Custom Renderers  Lets developers override the out-of-the-box renderers to customize the appearance/behavior of Xamarin.Forms on each platform  Think “can I do this with an effect?” first  Extend a Xamarin.Forms View  Required when there’s a need to override methods of a platform-specific control.
  • 29. View Customization (cont.)  Code Time!  Platform-specific  Effects  Behaviors  Custom Renderers
  • 30. What to do next?  Try out these device features:  Accelerometer, Barometer, Battery, Compass, Connectivity State, etc  Use plugins  NuGet packages implement and provide a lot of features!  Xamarin.Essentials - a must for an interactive app  Microsoft Learn (or Xamarin University until June 2019)  https://docs.microsoft.com/en- us/learn/browse/?roles=developer&term=xamarin  I recommend all the Xamarin.Forms courses
  • 31. References  Documentation  All available online:  https://docs.microsoft.com/en-us/xamarin/  Slack  Get involved  https://xamarinchat.herokuapp.com/  Learn the hot MVVM frameworks  Prism https://prismlibrary.github.io/  ReactiveUI https://reactiveui.net/  MVVMCross https://www.mvvmcross.com/
  • 32. Resources  Installing Xamarin: https://docs.microsoft.com/en-us/xamarin/get- started/installation/?pivots=windows  Build your first app with Xamarin.Forms: https://www.youtube.com/watch?v=NGvn-pGZFPA  Xamarin.Forms roadmap: https://github.com/xamarin/Xamarin.Forms/wiki/Feature-Roadmap
  • 33.
  • 34. About Me Chester (Chet) Hartin Technical Architect @ Concurrency Focus: C#, APIs, Messaging services, Xamarin. GitHub: https://github.com/chesterhartin Twitter: @ChetHartin