Understanding Xamarin Development

Understanding Xamarin Development
Matt Milner
@milnertweet
http://mattmilner.com
Matt Milner
Independent Consultant
 Pluralsight Author
 Interested in Pogonotrophy

@milnertweet
http://mattmilner.com
Overview
Cross platform mobile development
The Xamarin solution
C# on all platforms
Sharing code
Building user interfaces
Mobile App Development
Native
Cross
Platform
C++ /
C#
Cross
Platform
HTML /
JS
Cross platform mobile dev
Android
iOS

Android Studio

Xcode

Java

Objective C

Interface builder

Interface builder

Fragments

Storyboards

Mac or Windows

Mac only
“
Target iOS, Android, Windows
and Mac with a single, shared
C# codebase. Use the same
language, APIs and data
structures on every platform.
Xamarin
”
C#
Android
Mac
IOS
Windows
Windows
Phone
Development Choices
Visual Studio
Xamarin
Studio
• Windows or
Mac
• Windows Only
• Build / Debug
on Mac
Demo
XAMARIN STUDIO
VISUAL STUDIO
C# on Android
C# Source Code
Application Package
Android Bindings
App
Android
Bindings
.NET
Runtime
(Mono)
Android
Runtime
(Dalvik)
C# on iOS
C# Source Code
iOS Bindings
Native
Application
Native Code
Portable Class Libraries

Single DLL output

Select target
platforms

Only in-common

APIs
Android
Windows
Phone
Maximum code reuse!
PCL
Windows
iOS
Demo
PORTABLE CLASS LIBRARIES – EXISTING SOLUTION
Building Native Interfaces

Integrated tools
for Android and
iOS

Drag and drop
toolbox support

Hide some
complexities
APK
iOS
Android
UI Code
iOS UI
Code
Shared
Code
Xamarin Forms

Single code base

UI in XAML or C#

Native platform
controls
APK
iOS
Shared UI
Shared Code
Matt Milner
 @milnertweet
 http://mattmilner.com/