Slide 1

Slide 1 text

Building Native Cross-Platform Apps in C# with Xamarin Greg Shackles @gshackles [email protected] github.com/gshackles speakerdeck.com/u/gshackles

Slide 2

Slide 2 text

nycmobiledev.net @NYCMobileDev

Slide 3

Slide 3 text

gonemobile.io @GoneMobileCast

Slide 4

Slide 4 text

What is native?

Slide 5

Slide 5 text

The Anatomy of a Native App Native User Interfaces Native API Access Native Performance

Slide 6

Slide 6 text

The Write Once, Run Anywhere Approach Lowest Common Denominator

Slide 7

Slide 7 text

The Xamarin Approach Native Apps, with Shared Code

Slide 8

Slide 8 text

Native Performance Xamarin.iOS does full Ahead Of Time (AOT) compilation to produce an ARM binary for Apple’s App Store. Xamarin.Android takes advantage of Just In Time (JIT) compilation on the Android device.

Slide 9

Slide 9 text

TL;DR Anything you can do in Objective-C, Swift, or Java can be done in C# or F# with Xamarin

Slide 10

Slide 10 text

Always Up To Date Same day support for all the things

Slide 11

Slide 11 text

Always Up To Date

Slide 12

Slide 12 text

Distribute Everywhere

Slide 13

Slide 13 text

Your Friends Are Invited Too Json.NET Rx …and many more!

Slide 14

Slide 14 text

Code Sharing Techniques Because sharing is caring

Slide 15

Slide 15 text

File Linking Core Project iOS Project Core Code iOS-Specific Code Android Project Core Code Android-Specific Code Windows Project Core Code Windows-Specific Code File Links

Slide 16

Slide 16 text

Shared Code Projects

Slide 17

Slide 17 text

Portable Class Libraries • One assembly • Multiple platforms • Including: • Xamarin.iOS • Xamarin.Android • Xamarin.Mac

Slide 18

Slide 18 text

The Xamarin Platform A Whirlwind Tour

Slide 19

Slide 19 text

Development Environment Xamarin Studio Visual Studio Windows or Mac 2010, 2012, 2013, 2015

Slide 20

Slide 20 text

Visual Studio Integration

Slide 21

Slide 21 text

iOS Designer

Slide 22

Slide 22 text

Android Designer

Slide 23

Slide 23 text

Component Store

Slide 24

Slide 24 text

Xamarin.Forms Traditional Xamarin Approach Xamarin.Forms Shared UI Code

Slide 25

Slide 25 text

Xamarin.Forms: What’s Included? • 40+ Pages, Layouts, and Controls • Build from code or XAML • Data Binding • Navigation • Animation • Dependency Service • Messaging Center

Slide 26

Slide 26 text

Xamarin.Forms: Pages Content MasterDetail Navigation Tabbed Carousel

Slide 27

Slide 27 text

Xamarin.Forms: Layouts Stack Absolute Relative Grid ContentView Scroll Frame

Slide 28

Slide 28 text

Xamarin.Forms: Controls ActivityIndicator BoxView Button DatePicker Editor Entry Image Label ListView Map OpenGLView Picker ProgressBar SearchBar Slider Stepper TableView TimePicker WebView EntryCell ImageCell SwitchCell TextCell ViewCell …and more!

Slide 29

Slide 29 text

First Class F# Support

Slide 30

Slide 30 text

Razor Templating

Slide 31

Slide 31 text

Xamarin.UITest • Write UI tests in C# or F# • iOS and Android (with shared test code) • Run on simulator and devices • Compatible with all apps • Native • Hybrid • Xamarin

Slide 32

Slide 32 text

Test Cloud: Test on Real Devices

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

Profiler

Slide 37

Slide 37 text

Android Player

Slide 38

Slide 38 text

• Live online classes • Office hours • Offline access • Guest lectures • Certification

Slide 39

Slide 39 text

Let’s Code

Slide 40

Slide 40 text

Questions? Greg Shackles @gshackles [email protected] github.com/gshackles speakerdeck.com/u/gshackles