27
GETTING STARTED WITH XAMARIN.iOS

Getting Started with Xamarin.iOS

Embed Size (px)

DESCRIPTION

This is the accompanying deck for a talk of the same name I gave at Codestock 2013. This talk is an introduction to writing iOS apps in C# using Xamarin.iOS (formerly MonoTouch). In this talk we review the basics of Xamarin.iOS, what the various work flows look like, and find out more about Xamarin and the company's goal of delighting developers. We also briefly touch on Xamarin.iOS as compared to other cross-platform development platforms.

Citation preview

Page 1: Getting Started with Xamarin.iOS

GETTING STARTED WITH XAMARIN.iOS

Page 2: Getting Started with Xamarin.iOS

WHAT IS XAMARIN.iOS?

Page 3: Getting Started with Xamarin.iOS

Xamarin.iOS & Xamarin.Android• Platform for native iOS/Android development using C#

• Formerly known as ‘MonoTouch’ and ‘Mono for Android’

• Based on Mono (.Net runtime for Linux platforms)

• Provides .Net library on iOS/Android

Page 4: Getting Started with Xamarin.iOS

Xamarin.iOS & Xamarin.Android (continued)•Uses C# as the backing language with native platform

layouts (XIB on iOS, Android XML on Android)

•Wraps native libraries for each platform with C# wrappers through a process known as ‘projection’

• Full access to native libraries + simplifications in areas

Page 5: Getting Started with Xamarin.iOS

Xamarin.Mobile• Library which provides common device functionality across

iOS, Android, and Windows

• Provides access to contacts, camera, and geo-location

MonoTouch.Dialog• iOS library to quickly create table based layouts through

simplified elements

Page 6: Getting Started with Xamarin.iOS

(image credit: Parse.com)

Page 7: Getting Started with Xamarin.iOS

BUILDING XAMARIN.iOS APPS

Page 8: Getting Started with Xamarin.iOS

iOS Development Basics•MVC Architecture (Code)

• Storyboards vs XIBs (UI)

• Storyboards are newer and combine all views into one storyboard which can control user flows and segues

• XIBs are older and define a single screen

Page 9: Getting Started with Xamarin.iOS

Xamarin Studio (or Visual Studio)

• Recently re-designed IDE from Xamarin

• Awesome IDE, like a simpler Visual Studio

•Component Store for common libraries and UI controls

XCode (or Xamarin Studio)

• XCode Interface Builder is how native iOS apps are built

• Xamarin Studio adding its own interface designer soon (currently in Alpha channel)

Code

UI

Page 10: Getting Started with Xamarin.iOS

HELLO WORLD(Xamarin Studio & XCode coding demo)

Page 11: Getting Started with Xamarin.iOS

TIPS

Page 12: Getting Started with Xamarin.iOS

TIPS

Open multiple solutions within Xamarin Studio

Page 13: Getting Started with Xamarin.iOS

TIPS

Adjust code formatting style

Page 14: Getting Started with Xamarin.iOS

TIPS

Double Command - make home and end keys work on a Mac

Page 15: Getting Started with Xamarin.iOS

DELIGHTING DEVELOPERS

Page 16: Getting Started with Xamarin.iOS

Xamarin Android and iOS Designers

Alpha today, release in August 2013Android designer, released in 2012

Page 17: Getting Started with Xamarin.iOS

Xamarin Test Cloud

Automatically test hundreds of iOS / Android devices with UI tests

Page 18: Getting Started with Xamarin.iOS

Xamarin Test Cloud

Automatically test hundreds of iOS / Android devices with UI tests

Page 19: Getting Started with Xamarin.iOS

Xamarin Test Cloud

Automatically test hundreds of iOS / Android devices with UI tests

SIGN UP FOR BETA @Xamarin.com/test-cloud

Page 20: Getting Started with Xamarin.iOS

Objective Sharpie

Generate C# bindings for iOS libraries

Page 21: Getting Started with Xamarin.iOS

RESOURCES

Page 22: Getting Started with Xamarin.iOS

Resources• Xamarin.com (documentation, forums, chat, etc.)

• Xamarin Evolve 2013 recordingshttp://xamarin.com/evolve/2013

• Atlanta Xamarin Users Group (Wednesday, June 19th)http://meetup.com/Atlanta-Xamarin-Users-Group/

• Books (MonoTouch or iOS)

• Pluralsight training videos

•Conferences (ex: CodeStock in July)

Page 23: Getting Started with Xamarin.iOS

Extensions• Xamarin Studio Components

• TinyIOC

• Parse.com

•MvvmCross (cross-platform pattern for all platfoms)

•MonoTouch Bindings(ATMHud, AmazonLogin, Facebook, Flurry Analytics, Google Maps, Kiip, Paypal, Red Laser, Test Flight, Three 20, Urban Airship, etc.)

Page 24: Getting Started with Xamarin.iOS

CROSS PLATFORM

Page 25: Getting Started with Xamarin.iOS

Native• 100% native platform experience

• No code share with other platforms

• Differing code and UI tech per platform

Appcelerator Titanium Phonegap

Xamarin• 100% native platform experience

• Code share with all other platforms

• Differing UI tech per platform

• C#

• Javascript SDK which defines and interacts with native controls

• SDK may not support all controls or provide all native interfaces

• JS

• Web browser in an app with JS wrappers for native calls (GPS, Camera, etc.)

Sencha Touch• Web controls that mimic native

applications

Page 26: Getting Started with Xamarin.iOS

THANK YOU!

Page 27: Getting Started with Xamarin.iOS

ALL MOBILEEVERYTHING

Roger Peters (@SmartyP)Independent Mobile DeveloperAllMobileEverything.comSmartyPantsCoding.comSmartyP.net