• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Wallace B. (Wally) McClure Who the heck am I?
 

Wallace B. (Wally) McClure Who the heck am I?

on

  • 945 views

 

Statistics

Views

Total Views
945
Views on SlideShare
945
Embed Views
0

Actions

Likes
0
Downloads
5
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

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.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • The CIL (Common Intermediate Language) / Assembley is sent to Mono at Runtime and executed directly in memory...
  • The CIL (Common Intermediate Language) / Assembley is sent to Mono at Runtime and executed directly in memory...

Wallace B. (Wally) McClure Who the heck am I? Wallace B. (Wally) McClure Who the heck am I? Presentation Transcript

  • Wallace B. (Wally) McClure
  • Who the heck am I?
    • “ Building iPhone Apps for the .NET Developer”
      • Ebook – downloadable today.
      • Print book in July, 2010.
    • “ Beginning AJAX with ASP.NET”
    • “ Beginning ASP.NET 2.0 AJAX”
    • “ Professional ASP.NET 3.5 Service Pack 1”
    • MVP – ASP.NET.
    • ASPInsider.
    • ASP.NET Podcast.
    • INETA Speaker’s Bureau.
  • My Mileage May Vary during the talk.
    • MonoTouch/Mono/MonoDevelop are released products.
    • Alpha/Beta Code on my system.
      • iPhone SDK 3.2 Beta.
      • MonoTouch 1.9.5 Alpha.
      • MonoDevelop 2.2.1.Beta.
  • Where are we at?
    • Increasingly mobile.
    • Laptops are not quite convenient.
    • Power management is important.
    • Wifi is not everywhere.
    • iPhone has tremendous mindshare/marketshare.
    • .NET Framework is the most popular development framework.
  • Why Develop for the iPhone?
  • History
    • 2007 – iPhone introduced – web applications.
    • 2008 – iPhone 3g introduced – web and app.
    • 2009 – iPhone 3gs introduced – web , app, and iPhone 3.0 operating system.
    • 2010 – iPad introduced.
    • Apple is the #3 smart phone providers (Symbian & RIM).
    • “ There’s an app for that!”
  • Strategies to get on the iPhone
    • Web application.
    • Objective-C.
    • PhoneGap.
    • MonoTouch.
    • Others.
  • Why Develop with MonoTouch?
    • iPhone.
      • MindShare.
      • MarketShare.
    • .NET
      • MarketShare.
      • Existing Knowledge.
    • Mono
      • Cross Platform.
      • Maturity.
  • What is MonoTouch?
    • Mono – Open Source implementation of .NET.
    • MonoTouch is a .NET/c# layer over CocoaTouch.
    • MonoDevelop – IDE.
    • Interface Builder – Design Surface.
    • CocoaTouch.
    • Apple SDK.
    • AOT Compilation.
  • What MonoTouch is Not
    • Not Winforms/WPF on the iPhone.
    • Not a plugin to Visual Studio.
    • “ .NET is (Southern)American English. MonoTouch is British English. C# is the common bond to learn the customs (programming idiosyncracies) of the iPhone.”
  • Editions
    • “ Community”
      • Free.
      • Simulator
      • Can’t deploy to device.
    • Single User.
    • Enterprise.
  • Mono’s JIT Engine CIL Mono Memory
  • Apple No No...
    • Contractual Requirements
      • No interpreted code
      • No shared libraries
    • Kernel Limitations
      • iPhone OS 2.0+ disables JIT
  • Mono’s AOT Engine CIL Mono AOT Mono Runtime ARM Native Code
  • Monotouch Features
    • MonoDevelop iPhone Add-In
    • CocoaTouch.NET
    • Full static AOT compiler
    • Support for existing code
      • Generics
      • LINQ
      • Many .NET features.
  • Get Started
    • Hello World.
  • Learn to read Objective-C
    • All Apple documentation is in Obj-C
    • Most examples are in Obj-C
    • It’s not too hard to understand
    • It might even be fun...
  • MonoTouch’s APIs
  • The Bindings
    • MonoTouch namespace
    • MonoTouch.Foo namespace
      • Maps to CocoaTouch’s Foo Framework
    • 1:1 Mapping of classes.
      • MonoTouch.UIKit.UILabel
      • CocoaTouch’s UIKit framework, UILabel class
  • Strong Types
    • Objective-C
      • Arrays are weakly typed:
      • NSArray return values.
    • MonoTouch has strong types
      • UIView[] Subviews { get; }
      • vs
      • NSArray *subviews;
    • Intellisense - explore the API...
  • Garbage Collection
    • Automatic :
      • Mono’s GC will collect objects on demand
    • Deterministic :
      • Use when you need control.
      • Every object in MonoTouch implements IDisposable
      • using (var image = UIImage.FromFile(“foo.png”)){
        • surface.DrawImage(image, 20, 20);
      • }
  • What about App Size?
    • 20 MB (compressed) limit on 3G/Edge downloads
    • .Net BCL and other libraries are huge
    • Mono Linker to the rescue!
  • Outlets
    • Instance Variables
    • Pointer to an object.
    • Exposed to classes.
    • Can be strong or loosely typed
      • MD will strong type
  • Actions
    • Objects emit broadcast messages to receivers
    • You can do this C#
    • MonoDevelop takes care of the details for you
    • Creates partial methods for you extend
  • MonoTouch Events
    • Supports Objective-C pattern:
      • webView.Delegate = new
      • MyWebViewDelegate();
    • C# style events as well:
      • webView.PageLoaded += delegate {
        • HideSpinningWheel();
      • }
  • UITableView
    • Table.
    • TableCell.
    • Binding Data.
    • Example.
  • Debugging
    • Console.WriteLine(“Debugging inside of MonoTouch”);
    • printf(“I made it to this line! ”)
    • Breakpoints.
  • Debugger
    • MonoTouch debugger leverages Mono’s new Soft-Debugger
    • Supports the Simulator
    • Supports the Device...
      • even over WiFi
  • Debugging Caveats
    • Debug binaries on devices are very large
    • Cannot debug Main or FinishedLaunching on device
    • Consumes more memory runtime
    • Performance hit
  • Urban Spoon application
    • Acceleration.
    • Example.
  • Getting started
    • Get iPhone SDK from Apple
    • Get Mono from Novell
    • Get MonoTouch (evaluation version is free)
    • Get MonoDevelop
    • Register with Apple iPhone Developer Program and purchase MonoTouch for putting apps on device and AppStore.
  • One more thing...
  • iPad
    • But you want to develop for the iPad...
    • 24 Hours after the SDK was released...
    • MonoTouch support for iPad.
  • How do I find out more?
    • Ebook now.
    • Book available shortly.
    • http://monotouch.info .
    • http://forums.monotouch.net .
  • Scalable Development, Inc.
    • Development.
    • Training.
    • Mentoring.
    • Expert Development Help.
      • Database.
      • User Interface.
      • AJAX.
    • [email_address] .