• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Deep Dive Xamarin.iOS

Deep Dive Xamarin.iOS



My presentation from St. Louis Days of .NET that covers the 20% of concepts that helps you get through the 80% of your iOS app development with Xamarin.IOS.

My presentation from St. Louis Days of .NET that covers the 20% of concepts that helps you get through the 80% of your iOS app development with Xamarin.IOS.



Total Views
Views on SlideShare
Embed Views



1 Embed 1

https://twitter.com 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    Deep Dive Xamarin.iOS Deep Dive Xamarin.iOS Presentation Transcript

    • Xamarin.IOS Xamarin.IOS Ben Bishop ben@rendr.io
    • for code/slides... @benjamminstl @rendrstl
    • Who Am i? • My name is Ben Bishop (Twitter: @benjamminstl) • I grew up in a small rural town of Indiana • Went to Purdue University • Now lives in Saint Louis • Been independent for 4+ years • Worked at an agency for 5 years, 1 year at TMG
    • my new company http://rendr.io
    • David ortinau http://xamarin.com/evolve/2013
    • FLash Away3D, AIR, AS3, RobotLegs, FlexUnit
    • Native IOS Xamarin.IOS, Facebook, Twitter, SQLite, C#, NUnit
    • $1200+ 60 hours
    • Native Android Xamarin.Android, C#, Twitter, Facebook, SQLite
    • Hybrid PhoneGap, HTML, CSS3, jQuery, Backbone, RequireJS
    • Mobile optimized Web jQuery, Backbone, CSS3, Ruby on Rails, Moustache, JSON
    • WHAT IS A XAMARIN? “The best damn mobile team, building the best damn mobile platform.”
    • What is Mono? • Mono 1.0 was released on June 30, 2004 • “The Mono runtime contains a code execution engine that translates ECMA CIL byte codes into native code and supports a number of processors: ARM, MIPS SPARC, PowerPC, S390 , x86, x86-64 and IA-64 for 64-bit modes.” • Also has support for LLVM • Runs on Linux, OSX, Windows, PS3, XBox 360, Wii
    • How does Mono Work? “Xamarin compiles your app to a native binary, not cross-compiled, and not interpreted.”
    • Code Structure By only having to write core code once, more time can be spent tuning the UI per platform.
    • cross platform strategies
    • must have components Components that keep you from having to write platform specific code.
    • xamarin.mobile A component that helps abstract your code for location, photos, and contacts across all platforms.
    • Xamarin.Social A component that helps abstract your code for App.Net, Twitter, Facebook, and Flickr
    • xamarin.auth Makes OAuth suck less.
    • Data RestSharp, SQLite.NET, and JSON.net help you store and retrieve data for your app.
    • Frameworks https://github.com/MvvmCross/MvvmCross https://github.com/benbishop/MonkeyArms
    • interfaces are your friend
    • iOS Implementation Have your platform specific views implement the interface.
    • android implementation
    • ios implementation
    • android implementation
    • Mediator/View Model Your Mediator or ViewModel will have a reference to the View
    • UI Logic
    • Mock your views Moq lets you mock your views for Unit Tests.
    • Unit Test UI Logic Moq can raise events and verify Method invocation.
    • Test runner
    • Strings ResourceManager https://gist.github.com/benbishop/6232751
    • detect locale
    • anatomy of an iOS app
    • info.plist
    • info.plist
    • important Need to specify 640x1136 Launch Image so iOS knows your app supports tall UI
    • entitlements.plist New for iOS7
    • New to iOS7
    • Main.CS Entry point for your app
    • AppDelegate.cs Creates the UI Window and attaches a ViewController.
    • ViewController This is responsible for your screen.
    • ViewController Lifecycle
    • Setup/tear down Great place to do any setup/tear down.
    • View
    • Creating a view
    • frame vs bounds Frame A view's frame (CGRect) coordinate is the position of its rectangle in thestarts at the top left. superview's system. By default it Bounds A view'sits own coordinate expresses a bounds (CGRect) system. view rectangle in
    • extend views
    • class extensions All UIView classes now have a CenterHorizontally method
    • Images for multi DPI
    • Text Input
    • view event handling
    • View Controller Types UIViewController TabViewController UITableViewController UINavigationController
    • UITabViewController
    • Setting title/Icon
    • Header buttons
    • detecting ios7
    • UITableViews
    • UITableViews
    • UITableviewsource
    • UITableviewsource
    • UITableviewCell
    • uitableviewcell styles
    • UIPickerView
    • UIPickerView
    • uipickerview source
    • UIPickerviewModel
    • UIPickerviewModel
    • UIPickerviewmodel
    • Dialog http://docs.xamarin.com/guides/ios/user_interface/monotouch .dialog/
    • Rapid UI dev
    • JSON support
    • Attributes Let’s decorate!!
    • parting thoughts
    • experiences • iOS sandbox is limited.You are at Apple’s mercy • Provisioning is a pain • iOS SDK is very prescriptive in regards to look and feel • Most things are genuinely easier in iOS than Android. Music player, sharing to FB/Twitter, selecting photos... • Few device configurations to work with.
    • Gracias