Getting Started Using MonoTouch

19,578 views
19,459 views

Published on

Video for this session: http://www.youtube.com/watch?v=LYhXuhMnke8

Give your feedback on the session: http://bit.ly/xamfeedback

Complementing Mike's Getting Started with Mono Android Seminar, Mike walks us through the basics of beginning iPhone and iPad development with MonoTouch.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
19,578
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
85
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Getting Started Using MonoTouch

    1. 1. Getting Started with MonoTouch Building iOS Applications in C# May 31, 2012 Copyright 2012 © Xamarin Inc. All rights reserved
    2. 2. AgendaIntroduction to MonoTouch Mike Bluestein Technical Writer Xamarin Documentation Team mike.bluestein@xamarin.com @mikebluestein Xamarin Copyright 2012 © Xamarin Inc. All rights reserved
    3. 3. IntroductionThis session will cover the following: Xamarin Copyright 2012 © Xamarin Inc. All rights reserved
    4. 4. IntroductionThis session will cover the following: Overview of MonoTouch Xamarin Copyright 2012 © Xamarin Inc. All rights reserved
    5. 5. IntroductionThis session will cover the following: Overview of MonoTouch What it supports Xamarin Copyright 2012 © Xamarin Inc. All rights reserved
    6. 6. IntroductionThis session will cover the following: Overview of MonoTouch What it supports How it works Xamarin Copyright 2012 © Xamarin Inc. All rights reserved
    7. 7. IntroductionThis session will cover the following: Overview of MonoTouch What it supports How it works Additional libraries Xamarin Copyright 2012 © Xamarin Inc. All rights reserved
    8. 8. IntroductionThis session will cover the following: Overview of MonoTouch What it supports How it works Additional libraries Tooling support Xamarin Copyright 2012 © Xamarin Inc. All rights reserved
    9. 9. IntroductionThis session will cover the following: Overview of MonoTouch What it supports How it works Additional libraries Tooling support Memory management Xamarin Copyright 2012 © Xamarin Inc. All rights reserved
    10. 10. IntroductionThis session will cover the following: Overview of MonoTouch What it supports How it works Additional libraries Tooling support Memory management Demos Xamarin Copyright 2012 © Xamarin Inc. All rights reserved
    11. 11. What is MonoTouch?
    12. 12. What is MonoTouch?• Platform for creating native iOS applications using C#
    13. 13. What is MonoTouch?• Platform for creating native iOS applications using C#• Supports App Store and Enterprise Deployment
    14. 14. What is MonoTouch?• Platform for creating native iOS applications using C#• Supports App Store and Enterprise Deployment• Ahead of Time Compiler
    15. 15. What is MonoTouch?• Platform for creating native iOS applications using C#• Supports App Store and Enterprise Deployment• Ahead of Time Compiler• Bindings to Objective-C classes
    16. 16. What is MonoTouch?
    17. 17. What is MonoTouch?• Garbage Collection
    18. 18. What is MonoTouch?• Garbage Collection• MonoDevelop IDE
    19. 19. What is MonoTouch?• Garbage Collection• MonoDevelop IDE• Debugger
    20. 20. What is MonoTouch?• Garbage Collection• MonoDevelop IDE• Debugger• Profiler
    21. 21. What is MonoTouch?• Garbage Collection• MonoDevelop IDE• Debugger• Profiler• Unit Testing
    22. 22. App Store• Thousands of MonoTouch apps published • http://xamarin.com/apps• Apple has featured MonoTouch apps
    23. 23. What do I need?
    24. 24. What do I need?• Mac
    25. 25. What do I need?• Mac• iOS Developer account (iOS SDK)
    26. 26. What do I need?• Mac• iOS Developer account (iOS SDK) • Xcode
    27. 27. What do I need?• Mac• iOS Developer account (iOS SDK) • Xcode• Mono, MonoDevelop, MonoTouch
    28. 28. What is supported?• Native APIs • Anything you can do in Objective-C• Additionally adds .NET BCL
    29. 29. What is supported?
    30. 30. What is supported?• LINQ
    31. 31. What is supported?• LINQ• Generics
    32. 32. What is supported?• LINQ• Generics• Strong typing
    33. 33. What is supported?• LINQ• Generics• Strong typing• ADO.NET wrappers over SQLite
    34. 34. What is supported?• LINQ• Generics• Strong typing• ADO.NET wrappers over SQLite• etc...
    35. 35. What is supported?• LINQ• Generics• Strong typing• ADO.NET wrappers over SQLite• etc...• Can port most non-UI code with little or sometimes no code change
    36. 36. Cross-Platform
    37. 37. Xamarin.Mobile API
    38. 38. MonoTouch.Dialog
    39. 39. How does it work?
    40. 40. How does it work?• MonoTouch uses Ahead-Of-Time compilation to produce a single statically compiled ARM binary
    41. 41. How does it work?• MonoTouch uses Ahead-Of-Time compilation to produce a single statically compiled ARM binary• AOT compilation pre-generates all the native code that the JIT would normally generate from IL
    42. 42. How does it work?• MonoTouch uses Ahead-Of-Time compilation to produce a single statically compiled ARM binary• AOT compilation pre-generates all the native code that the JIT would normally generate from IL• Links this together with the JIT-less runtime into a single native binary that can be signed
    43. 43. How does it work?
    44. 44. How does it work?• Apple does not allow JIT
    45. 45. How does it work?• Apple does not allow JIT• IL is stripped from the managed assemblies, leaving only metadata
    46. 46. JIT-less Environment 
    47. 47. JIT-less Environment • Apple restricts this by policy and in kernel
    48. 48. JIT-less Environment • Apple restricts this by policy and in kernel• Eliminates some .NET areas
    49. 49. JIT-less Environment • Apple restricts this by policy and in kernel• Eliminates some .NET areas • CodeDom, Reflection-Emit (although reflection works),Virtual generic methods, DLR
    50. 50. Memory Management
    51. 51. Memory Management• .NET objects are garbage collected
    52. 52. Memory Management• .NET objects are garbage collected• Objective-C (on iOS) however uses retain counts
    53. 53. Memory Management• .NET objects are garbage collected• Objective-C (on iOS) however uses retain counts• MonoTouch abstracts this away
    54. 54. Memory Management• .NET objects are garbage collected• Objective-C (on iOS) however uses retain counts• MonoTouch abstracts this away • Creates autorelease pool for main thread and thread pool
    55. 55. Memory Management• .NET objects are garbage collected• Objective-C (on iOS) however uses retain counts• MonoTouch abstracts this away • Creates autorelease pool for main thread and thread pool • Create autorelease pool manually if using Objective-C objects on your own threads
    56. 56. Xcode Integration
    57. 57. Xcode Integration• Interface Builder from Apple previously was a stand alone application
    58. 58. Xcode Integration• Interface Builder from Apple previously was a stand alone application• Apple has now merged it into Xcode
    59. 59. Xcode Integration• Interface Builder from Apple previously was a stand alone application• Apple has now merged it into Xcode• MonoTouch supports Xcode’s integrated Interface Builder
    60. 60. Demos
    61. 61. BooksProfessional iPhone Programming with MonoTouch and .NET/C#(7/13/2010)by Wallace B. McClure, Craig Dunn, Chris Hardy, Martin Bowling,Rory BlythDeveloping C# Apps for iPhone and iPad using MonoTouch: iOS AppsDevelopment for .NET Developers: 1st Edition (6/9/2011)by Bryan CostanichLearning MonoTouch: A Hands-On Guide to Building iOS Applicationswith C# and .NET (8/8/2011)by Michael BluesteiniOS Development using MonoTouch Cookbook (12/14/2011)by Dimitris Tavlikos
    62. 62. docs.xamarin.com/ios
    63. 63. Xamarin Seminar Please give us your feedback http://bit.ly/xamfeedback Follow us on Twitter @XamarinHQ Copyright 2012 © Xamarin Inc. All rights reserved

    ×