Wallace B. (Wally) McClure Who the heck am I?
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

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

on

  • 1,033 views

 

Statistics

Views

Total Views
1,033
Views on SlideShare
1,033
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? Presentation Transcript

  • 1. Wallace B. (Wally) McClure
  • 2. 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.
  • 3. 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.
  • 4. 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.
  • 5. Why Develop for the iPhone?
  • 6. 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!”
  • 7. Strategies to get on the iPhone
    • Web application.
    • Objective-C.
    • PhoneGap.
    • MonoTouch.
    • Others.
  • 8. Why Develop with MonoTouch?
    • iPhone.
      • MindShare.
      • MarketShare.
    • .NET
      • MarketShare.
      • Existing Knowledge.
    • Mono
      • Cross Platform.
      • Maturity.
  • 9. 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.
  • 10. 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.”
  • 11. Editions
    • “ Community”
      • Free.
      • Simulator
      • Can’t deploy to device.
    • Single User.
    • Enterprise.
  • 12. Mono’s JIT Engine CIL Mono Memory
  • 13. Apple No No...
    • Contractual Requirements
      • No interpreted code
      • No shared libraries
    • Kernel Limitations
      • iPhone OS 2.0+ disables JIT
  • 14. Mono’s AOT Engine CIL Mono AOT Mono Runtime ARM Native Code
  • 15. Monotouch Features
    • MonoDevelop iPhone Add-In
    • CocoaTouch.NET
    • Full static AOT compiler
    • Support for existing code
      • Generics
      • LINQ
      • Many .NET features.
  • 16. Get Started
    • Hello World.
  • 17. 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...
  • 18. MonoTouch’s APIs
  • 19. 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
  • 20. 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...
  • 21. 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);
      • }
  • 22. What about App Size?
    • 20 MB (compressed) limit on 3G/Edge downloads
    • .Net BCL and other libraries are huge
    • Mono Linker to the rescue!
  • 23. Outlets
    • Instance Variables
    • Pointer to an object.
    • Exposed to classes.
    • Can be strong or loosely typed
      • MD will strong type
  • 24. 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
  • 25. MonoTouch Events
    • Supports Objective-C pattern:
      • webView.Delegate = new
      • MyWebViewDelegate();
    • C# style events as well:
      • webView.PageLoaded += delegate {
        • HideSpinningWheel();
      • }
  • 26. UITableView
    • Table.
    • TableCell.
    • Binding Data.
    • Example.
  • 27. Debugging
    • Console.WriteLine(“Debugging inside of MonoTouch”);
    • printf(“I made it to this line! ”)
    • Breakpoints.
  • 28. Debugger
    • MonoTouch debugger leverages Mono’s new Soft-Debugger
    • Supports the Simulator
    • Supports the Device...
      • even over WiFi
  • 29. Debugging Caveats
    • Debug binaries on devices are very large
    • Cannot debug Main or FinishedLaunching on device
    • Consumes more memory runtime
    • Performance hit
  • 30. Urban Spoon application
    • Acceleration.
    • Example.
  • 31. 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.
  • 32. One more thing...
  • 33. iPad
    • But you want to develop for the iPad...
    • 24 Hours after the SDK was released...
    • MonoTouch support for iPad.
  • 34. How do I find out more?
    • Ebook now.
    • Book available shortly.
    • http://monotouch.info .
    • http://forums.monotouch.net .
  • 35. Scalable Development, Inc.
    • Development.
    • Training.
    • Mentoring.
    • Expert Development Help.
      • Database.
      • User Interface.
      • AJAX.
    • [email_address] .