SlideShare a Scribd company logo
1 of 63
Getting Started with
    MonoTouch
   Building iOS Applications in C#




             May 31, 2012

          Copyright 2012 © Xamarin Inc. All rights reserved
Agenda
Introduction to MonoTouch

                       Mike Bluestein
                       Technical Writer
                       Xamarin Documentation Team
                       mike.bluestein@xamarin.com
                       @mikebluestein




                                                        Xamarin
    Copyright 2012 © Xamarin Inc. All rights reserved
Introduction

This session will cover the following:




                                                             Xamarin
         Copyright 2012 © Xamarin Inc. All rights reserved
Introduction

This session will cover the following:


      Overview of MonoTouch




                                                             Xamarin
         Copyright 2012 © Xamarin Inc. All rights reserved
Introduction

This session will cover the following:


      Overview of MonoTouch
         What it supports




                                                             Xamarin
         Copyright 2012 © Xamarin Inc. All rights reserved
Introduction

This session will cover the following:


      Overview of MonoTouch
         What it supports
           How it works




                                                             Xamarin
         Copyright 2012 © Xamarin Inc. All rights reserved
Introduction

This session will cover the following:


      Overview of MonoTouch
         What it supports
           How it works
        Additional libraries




                                                             Xamarin
         Copyright 2012 © Xamarin Inc. All rights reserved
Introduction

This 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
Introduction

This 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
Introduction

This 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
What is MonoTouch?
What is MonoTouch?
• Platform for creating native iOS
  applications using C#
What is MonoTouch?
• Platform for creating native iOS
  applications using C#
• Supports App Store and Enterprise
  Deployment
What is MonoTouch?
• Platform for creating native iOS
  applications using C#
• Supports App Store and Enterprise
  Deployment
• Ahead of Time Compiler
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
What is MonoTouch?
What is MonoTouch?

• Garbage Collection
What is MonoTouch?

• Garbage Collection
• MonoDevelop IDE
What is MonoTouch?

• Garbage Collection
• MonoDevelop IDE
• Debugger
What is MonoTouch?

• Garbage Collection
• MonoDevelop IDE
• Debugger
• Profiler
What is MonoTouch?

• Garbage Collection
• MonoDevelop IDE
• Debugger
• Profiler
• Unit Testing
App Store
• Thousands of MonoTouch apps published
 • http://xamarin.com/apps




• Apple has featured MonoTouch apps
What do I need?
What do I need?

• Mac
What do I need?

• Mac
• iOS Developer account (iOS SDK)
What do I need?

• Mac
• iOS Developer account (iOS SDK)
 • Xcode
What do I need?

• Mac
• iOS Developer account (iOS SDK)
 • Xcode
• Mono, MonoDevelop, MonoTouch
What is supported?

• Native APIs
 • Anything you can
    do in Objective-C
• Additionally adds
  .NET BCL
What is supported?
What is supported?
• LINQ
What is supported?
• LINQ
• Generics
What is supported?
• LINQ
• Generics
• Strong typing
What is supported?
• LINQ
• Generics
• Strong typing
• ADO.NET wrappers over SQLite
What is supported?
• LINQ
• Generics
• Strong typing
• ADO.NET wrappers over SQLite
• etc...
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
Cross-Platform
Xamarin.Mobile API
MonoTouch.Dialog
How does it work?
How does it work?
• MonoTouch uses Ahead-Of-Time
  compilation to produce a single statically
  compiled ARM binary
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
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
How does it work?
How does it work?


• Apple does not allow JIT
How does it work?


• Apple does not allow JIT
• IL is stripped from the managed
  assemblies, leaving only metadata
JIT-less Environment 
JIT-less Environment 

• Apple restricts this by policy and in kernel
JIT-less Environment 

• Apple restricts this by policy and in kernel
• Eliminates some .NET areas
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
Memory Management
Memory Management
• .NET objects are garbage collected
Memory Management
• .NET objects are garbage collected
• Objective-C (on iOS) however uses retain
  counts
Memory Management
• .NET objects are garbage collected
• Objective-C (on iOS) however uses retain
  counts
• MonoTouch abstracts this away
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
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
Xcode Integration
Xcode Integration

• Interface Builder from Apple previously was
  a stand alone application
Xcode Integration

• Interface Builder from Apple previously was
  a stand alone application
• Apple has now merged it into Xcode
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
Demos
Books
Professional iPhone Programming with MonoTouch and .NET/C#
(7/13/2010)
by Wallace B. McClure, Craig Dunn, Chris Hardy, Martin Bowling,
Rory Blyth

Developing C# Apps for iPhone and iPad using MonoTouch: iOS Apps
Development for .NET Developers: 1st Edition (6/9/2011)
by Bryan Costanich


Learning MonoTouch: A Hands-On Guide to Building iOS Applications
with C# and .NET (8/8/2011)
by Michael Bluestein



iOS Development using MonoTouch Cookbook (12/14/2011)
by Dimitris Tavlikos
docs.xamarin.com/ios
Xamarin
    Seminar
   Please give us your feedback
  http://bit.ly/xamfeedback


      Follow us on Twitter
        @XamarinHQ



        Copyright 2012 © Xamarin Inc. All rights reserved

More Related Content

Similar to Getting Started Using MonoTouch

C# on the iPhone with MonoTouch Glasgow
C# on the iPhone with MonoTouch GlasgowC# on the iPhone with MonoTouch Glasgow
C# on the iPhone with MonoTouch GlasgowChris Hardy
 
Italian Alt.Net Conference MonoTouch Session
Italian Alt.Net Conference MonoTouch SessionItalian Alt.Net Conference MonoTouch Session
Italian Alt.Net Conference MonoTouch SessionChris Hardy
 
C# On The iPhone with MonoTouch at DDD8
C# On The iPhone with MonoTouch at DDD8C# On The iPhone with MonoTouch at DDD8
C# On The iPhone with MonoTouch at DDD8Chris Hardy
 
MonoTouch 5.2 Introduction
MonoTouch 5.2 IntroductionMonoTouch 5.2 Introduction
MonoTouch 5.2 IntroductionXamarin
 
Cross-platform Mobile Development
Cross-platform Mobile DevelopmentCross-platform Mobile Development
Cross-platform Mobile DevelopmentXamarin
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouchJonas Follesø
 
Cross platform development with c# and xamarin
Cross platform development with c# and xamarinCross platform development with c# and xamarin
Cross platform development with c# and xamarinLuca Zulian
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to XamarinBrian Anderson
 
EastBay.NET - Introduction to MonoTouch
EastBay.NET - Introduction to MonoTouchEastBay.NET - Introduction to MonoTouch
EastBay.NET - Introduction to MonoTouchmobiweave
 
Introducing mono & xamarin
Introducing mono & xamarinIntroducing mono & xamarin
Introducing mono & xamarinTechizzaa
 
What is Codename One - Transcript.pdf
What is Codename One - Transcript.pdfWhat is Codename One - Transcript.pdf
What is Codename One - Transcript.pdfShaiAlmog1
 
Introduction to hybrid application development
Introduction to hybrid application developmentIntroduction to hybrid application development
Introduction to hybrid application developmentKunjan Thakkar
 
mobile development platforms
mobile development platformsmobile development platforms
mobile development platformsguestfa9375
 
mobile development platforms
mobile development platformsmobile development platforms
mobile development platformssmancke
 
MyAppConverter DroidconUK 2014
MyAppConverter DroidconUK 2014MyAppConverter DroidconUK 2014
MyAppConverter DroidconUK 2014myappconverter
 
A lap around monotouch
A lap around monotouchA lap around monotouch
A lap around monotouchmecurioJ
 
Building Effective and Rapid Applications with IBM MobileFirst Platform
Building Effective and Rapid Applications with IBM MobileFirst PlatformBuilding Effective and Rapid Applications with IBM MobileFirst Platform
Building Effective and Rapid Applications with IBM MobileFirst PlatformAndrew Ferrier
 
Intro to tech stacks bonny
Intro to tech stacks bonnyIntro to tech stacks bonny
Intro to tech stacks bonnyLama K Banna
 
Jalimo Slides Linuxtag2008
Jalimo Slides Linuxtag2008Jalimo Slides Linuxtag2008
Jalimo Slides Linuxtag2008smancke
 

Similar to Getting Started Using MonoTouch (20)

C# on the iPhone with MonoTouch Glasgow
C# on the iPhone with MonoTouch GlasgowC# on the iPhone with MonoTouch Glasgow
C# on the iPhone with MonoTouch Glasgow
 
Italian Alt.Net Conference MonoTouch Session
Italian Alt.Net Conference MonoTouch SessionItalian Alt.Net Conference MonoTouch Session
Italian Alt.Net Conference MonoTouch Session
 
C# On The iPhone with MonoTouch at DDD8
C# On The iPhone with MonoTouch at DDD8C# On The iPhone with MonoTouch at DDD8
C# On The iPhone with MonoTouch at DDD8
 
MonoTouch 5.2 Introduction
MonoTouch 5.2 IntroductionMonoTouch 5.2 Introduction
MonoTouch 5.2 Introduction
 
Cross-platform Mobile Development
Cross-platform Mobile DevelopmentCross-platform Mobile Development
Cross-platform Mobile Development
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouch
 
Cross platform development with c# and xamarin
Cross platform development with c# and xamarinCross platform development with c# and xamarin
Cross platform development with c# and xamarin
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
 
EastBay.NET - Introduction to MonoTouch
EastBay.NET - Introduction to MonoTouchEastBay.NET - Introduction to MonoTouch
EastBay.NET - Introduction to MonoTouch
 
Introducing mono & xamarin
Introducing mono & xamarinIntroducing mono & xamarin
Introducing mono & xamarin
 
What is Codename One - Transcript.pdf
What is Codename One - Transcript.pdfWhat is Codename One - Transcript.pdf
What is Codename One - Transcript.pdf
 
Introduction to hybrid application development
Introduction to hybrid application developmentIntroduction to hybrid application development
Introduction to hybrid application development
 
mobile development platforms
mobile development platformsmobile development platforms
mobile development platforms
 
mobile development platforms
mobile development platformsmobile development platforms
mobile development platforms
 
MyAppConverter DroidconUK 2014
MyAppConverter DroidconUK 2014MyAppConverter DroidconUK 2014
MyAppConverter DroidconUK 2014
 
A lap around monotouch
A lap around monotouchA lap around monotouch
A lap around monotouch
 
Building Effective and Rapid Applications with IBM MobileFirst Platform
Building Effective and Rapid Applications with IBM MobileFirst PlatformBuilding Effective and Rapid Applications with IBM MobileFirst Platform
Building Effective and Rapid Applications with IBM MobileFirst Platform
 
Intro to tech stacks bonny
Intro to tech stacks bonnyIntro to tech stacks bonny
Intro to tech stacks bonny
 
Xamarin v.Now
Xamarin v.NowXamarin v.Now
Xamarin v.Now
 
Jalimo Slides Linuxtag2008
Jalimo Slides Linuxtag2008Jalimo Slides Linuxtag2008
Jalimo Slides Linuxtag2008
 

More from Xamarin

Xamarin University Presents: Building Your First Intelligent App with Xamarin...
Xamarin University Presents: Building Your First Intelligent App with Xamarin...Xamarin University Presents: Building Your First Intelligent App with Xamarin...
Xamarin University Presents: Building Your First Intelligent App with Xamarin...Xamarin
 
Xamarin University Presents: Ship Better Apps with Visual Studio App Center
Xamarin University Presents: Ship Better Apps with Visual Studio App CenterXamarin University Presents: Ship Better Apps with Visual Studio App Center
Xamarin University Presents: Ship Better Apps with Visual Studio App CenterXamarin
 
Get the Most Out of iOS 11 with Visual Studio Tools for Xamarin
Get the Most Out of iOS 11 with Visual Studio Tools for XamarinGet the Most Out of iOS 11 with Visual Studio Tools for Xamarin
Get the Most Out of iOS 11 with Visual Studio Tools for XamarinXamarin
 
Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin
Get the Most out of Android 8 Oreo with Visual Studio Tools for XamarinGet the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin
Get the Most out of Android 8 Oreo with Visual Studio Tools for XamarinXamarin
 
Creative Hacking: Delivering React Native App A/B Testing Using CodePush
Creative Hacking: Delivering React Native App A/B Testing Using CodePushCreative Hacking: Delivering React Native App A/B Testing Using CodePush
Creative Hacking: Delivering React Native App A/B Testing Using CodePushXamarin
 
Build Better Games with Unity and Microsoft Azure
Build Better Games with Unity and Microsoft AzureBuild Better Games with Unity and Microsoft Azure
Build Better Games with Unity and Microsoft AzureXamarin
 
Exploring UrhoSharp 3D with Xamarin Workbooks
Exploring UrhoSharp 3D with Xamarin WorkbooksExploring UrhoSharp 3D with Xamarin Workbooks
Exploring UrhoSharp 3D with Xamarin WorkbooksXamarin
 
Desktop Developer’s Guide to Mobile with Visual Studio Tools for Xamarin
Desktop Developer’s Guide to Mobile with Visual Studio Tools for XamarinDesktop Developer’s Guide to Mobile with Visual Studio Tools for Xamarin
Desktop Developer’s Guide to Mobile with Visual Studio Tools for XamarinXamarin
 
Developer’s Intro to Azure Machine Learning
Developer’s Intro to Azure Machine LearningDeveloper’s Intro to Azure Machine Learning
Developer’s Intro to Azure Machine LearningXamarin
 
Customizing Xamarin.Forms UI
Customizing Xamarin.Forms UICustomizing Xamarin.Forms UI
Customizing Xamarin.Forms UIXamarin
 
Session 4 - Xamarin Partner Program, Events and Resources
Session 4 - Xamarin Partner Program, Events and ResourcesSession 4 - Xamarin Partner Program, Events and Resources
Session 4 - Xamarin Partner Program, Events and ResourcesXamarin
 
Session 3 - Driving Mobile Growth and Profitability
Session 3 - Driving Mobile Growth and ProfitabilitySession 3 - Driving Mobile Growth and Profitability
Session 3 - Driving Mobile Growth and ProfitabilityXamarin
 
Session 2 - Emerging Technologies in your Mobile Practice
Session 2 - Emerging Technologies in your Mobile PracticeSession 2 - Emerging Technologies in your Mobile Practice
Session 2 - Emerging Technologies in your Mobile PracticeXamarin
 
Session 1 - Transformative Opportunities in Mobile and Cloud
Session 1 - Transformative Opportunities in Mobile and Cloud Session 1 - Transformative Opportunities in Mobile and Cloud
Session 1 - Transformative Opportunities in Mobile and Cloud Xamarin
 
SkiaSharp Graphics for Xamarin.Forms
SkiaSharp Graphics for Xamarin.FormsSkiaSharp Graphics for Xamarin.Forms
SkiaSharp Graphics for Xamarin.FormsXamarin
 
Building Games for iOS, macOS, and tvOS with Visual Studio and Azure
Building Games for iOS, macOS, and tvOS with Visual Studio and AzureBuilding Games for iOS, macOS, and tvOS with Visual Studio and Azure
Building Games for iOS, macOS, and tvOS with Visual Studio and AzureXamarin
 
Intro to Xamarin.Forms for Visual Studio 2017
Intro to Xamarin.Forms for Visual Studio 2017Intro to Xamarin.Forms for Visual Studio 2017
Intro to Xamarin.Forms for Visual Studio 2017Xamarin
 
Connected Mobile Apps with Microsoft Azure
Connected Mobile Apps with Microsoft AzureConnected Mobile Apps with Microsoft Azure
Connected Mobile Apps with Microsoft AzureXamarin
 
Introduction to Xamarin for Visual Studio 2017
Introduction to Xamarin for Visual Studio 2017Introduction to Xamarin for Visual Studio 2017
Introduction to Xamarin for Visual Studio 2017Xamarin
 
Building Your First iOS App with Xamarin for Visual Studio
Building Your First iOS App with Xamarin for Visual StudioBuilding Your First iOS App with Xamarin for Visual Studio
Building Your First iOS App with Xamarin for Visual StudioXamarin
 

More from Xamarin (20)

Xamarin University Presents: Building Your First Intelligent App with Xamarin...
Xamarin University Presents: Building Your First Intelligent App with Xamarin...Xamarin University Presents: Building Your First Intelligent App with Xamarin...
Xamarin University Presents: Building Your First Intelligent App with Xamarin...
 
Xamarin University Presents: Ship Better Apps with Visual Studio App Center
Xamarin University Presents: Ship Better Apps with Visual Studio App CenterXamarin University Presents: Ship Better Apps with Visual Studio App Center
Xamarin University Presents: Ship Better Apps with Visual Studio App Center
 
Get the Most Out of iOS 11 with Visual Studio Tools for Xamarin
Get the Most Out of iOS 11 with Visual Studio Tools for XamarinGet the Most Out of iOS 11 with Visual Studio Tools for Xamarin
Get the Most Out of iOS 11 with Visual Studio Tools for Xamarin
 
Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin
Get the Most out of Android 8 Oreo with Visual Studio Tools for XamarinGet the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin
Get the Most out of Android 8 Oreo with Visual Studio Tools for Xamarin
 
Creative Hacking: Delivering React Native App A/B Testing Using CodePush
Creative Hacking: Delivering React Native App A/B Testing Using CodePushCreative Hacking: Delivering React Native App A/B Testing Using CodePush
Creative Hacking: Delivering React Native App A/B Testing Using CodePush
 
Build Better Games with Unity and Microsoft Azure
Build Better Games with Unity and Microsoft AzureBuild Better Games with Unity and Microsoft Azure
Build Better Games with Unity and Microsoft Azure
 
Exploring UrhoSharp 3D with Xamarin Workbooks
Exploring UrhoSharp 3D with Xamarin WorkbooksExploring UrhoSharp 3D with Xamarin Workbooks
Exploring UrhoSharp 3D with Xamarin Workbooks
 
Desktop Developer’s Guide to Mobile with Visual Studio Tools for Xamarin
Desktop Developer’s Guide to Mobile with Visual Studio Tools for XamarinDesktop Developer’s Guide to Mobile with Visual Studio Tools for Xamarin
Desktop Developer’s Guide to Mobile with Visual Studio Tools for Xamarin
 
Developer’s Intro to Azure Machine Learning
Developer’s Intro to Azure Machine LearningDeveloper’s Intro to Azure Machine Learning
Developer’s Intro to Azure Machine Learning
 
Customizing Xamarin.Forms UI
Customizing Xamarin.Forms UICustomizing Xamarin.Forms UI
Customizing Xamarin.Forms UI
 
Session 4 - Xamarin Partner Program, Events and Resources
Session 4 - Xamarin Partner Program, Events and ResourcesSession 4 - Xamarin Partner Program, Events and Resources
Session 4 - Xamarin Partner Program, Events and Resources
 
Session 3 - Driving Mobile Growth and Profitability
Session 3 - Driving Mobile Growth and ProfitabilitySession 3 - Driving Mobile Growth and Profitability
Session 3 - Driving Mobile Growth and Profitability
 
Session 2 - Emerging Technologies in your Mobile Practice
Session 2 - Emerging Technologies in your Mobile PracticeSession 2 - Emerging Technologies in your Mobile Practice
Session 2 - Emerging Technologies in your Mobile Practice
 
Session 1 - Transformative Opportunities in Mobile and Cloud
Session 1 - Transformative Opportunities in Mobile and Cloud Session 1 - Transformative Opportunities in Mobile and Cloud
Session 1 - Transformative Opportunities in Mobile and Cloud
 
SkiaSharp Graphics for Xamarin.Forms
SkiaSharp Graphics for Xamarin.FormsSkiaSharp Graphics for Xamarin.Forms
SkiaSharp Graphics for Xamarin.Forms
 
Building Games for iOS, macOS, and tvOS with Visual Studio and Azure
Building Games for iOS, macOS, and tvOS with Visual Studio and AzureBuilding Games for iOS, macOS, and tvOS with Visual Studio and Azure
Building Games for iOS, macOS, and tvOS with Visual Studio and Azure
 
Intro to Xamarin.Forms for Visual Studio 2017
Intro to Xamarin.Forms for Visual Studio 2017Intro to Xamarin.Forms for Visual Studio 2017
Intro to Xamarin.Forms for Visual Studio 2017
 
Connected Mobile Apps with Microsoft Azure
Connected Mobile Apps with Microsoft AzureConnected Mobile Apps with Microsoft Azure
Connected Mobile Apps with Microsoft Azure
 
Introduction to Xamarin for Visual Studio 2017
Introduction to Xamarin for Visual Studio 2017Introduction to Xamarin for Visual Studio 2017
Introduction to Xamarin for Visual Studio 2017
 
Building Your First iOS App with Xamarin for Visual Studio
Building Your First iOS App with Xamarin for Visual StudioBuilding Your First iOS App with Xamarin for Visual Studio
Building Your First iOS App with Xamarin for Visual Studio
 

Recently uploaded

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 

Recently uploaded (20)

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 

Getting Started Using MonoTouch

  • 1. Getting Started with MonoTouch Building iOS Applications in C# May 31, 2012 Copyright 2012 © Xamarin Inc. All rights reserved
  • 2. Agenda Introduction to MonoTouch Mike Bluestein Technical Writer Xamarin Documentation Team mike.bluestein@xamarin.com @mikebluestein Xamarin Copyright 2012 © Xamarin Inc. All rights reserved
  • 3. Introduction This session will cover the following: Xamarin Copyright 2012 © Xamarin Inc. All rights reserved
  • 4. Introduction This session will cover the following: Overview of MonoTouch Xamarin Copyright 2012 © Xamarin Inc. All rights reserved
  • 5. Introduction This session will cover the following: Overview of MonoTouch What it supports Xamarin Copyright 2012 © Xamarin Inc. All rights reserved
  • 6. Introduction This session will cover the following: Overview of MonoTouch What it supports How it works Xamarin Copyright 2012 © Xamarin Inc. All rights reserved
  • 7. Introduction This 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. Introduction This 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. Introduction This 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. Introduction This 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
  • 12. What is MonoTouch? • Platform for creating native iOS applications using C#
  • 13. What is MonoTouch? • Platform for creating native iOS applications using C# • Supports App Store and Enterprise Deployment
  • 14. What is MonoTouch? • Platform for creating native iOS applications using C# • Supports App Store and Enterprise Deployment • Ahead of Time Compiler
  • 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
  • 17. What is MonoTouch? • Garbage Collection
  • 18. What is MonoTouch? • Garbage Collection • MonoDevelop IDE
  • 19. What is MonoTouch? • Garbage Collection • MonoDevelop IDE • Debugger
  • 20. What is MonoTouch? • Garbage Collection • MonoDevelop IDE • Debugger • Profiler
  • 21. What is MonoTouch? • Garbage Collection • MonoDevelop IDE • Debugger • Profiler • Unit Testing
  • 22. App Store • Thousands of MonoTouch apps published • http://xamarin.com/apps • Apple has featured MonoTouch apps
  • 23. What do I need?
  • 24. What do I need? • Mac
  • 25. What do I need? • Mac • iOS Developer account (iOS SDK)
  • 26. What do I need? • Mac • iOS Developer account (iOS SDK) • Xcode
  • 27. What do I need? • Mac • iOS Developer account (iOS SDK) • Xcode • Mono, MonoDevelop, MonoTouch
  • 28. What is supported? • Native APIs • Anything you can do in Objective-C • Additionally adds .NET BCL
  • 31. What is supported? • LINQ • Generics
  • 32. What is supported? • LINQ • Generics • Strong typing
  • 33. What is supported? • LINQ • Generics • Strong typing • ADO.NET wrappers over SQLite
  • 34. What is supported? • LINQ • Generics • Strong typing • ADO.NET wrappers over SQLite • etc...
  • 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
  • 39. How does it work?
  • 40. How does it work? • MonoTouch uses Ahead-Of-Time compilation to produce a single statically compiled ARM binary
  • 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. 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. How does it work?
  • 44. How does it work? • Apple does not allow JIT
  • 45. How does it work? • Apple does not allow JIT • IL is stripped from the managed assemblies, leaving only metadata
  • 47. JIT-less Environment  • Apple restricts this by policy and in kernel
  • 48. JIT-less Environment  • Apple restricts this by policy and in kernel • Eliminates some .NET areas
  • 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
  • 51. Memory Management • .NET objects are garbage collected
  • 52. Memory Management • .NET objects are garbage collected • Objective-C (on iOS) however uses retain counts
  • 53. Memory Management • .NET objects are garbage collected • Objective-C (on iOS) however uses retain counts • MonoTouch abstracts this away
  • 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. 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
  • 57. Xcode Integration • Interface Builder from Apple previously was a stand alone application
  • 58. Xcode Integration • Interface Builder from Apple previously was a stand alone application • Apple has now merged it into Xcode
  • 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. Demos
  • 61. Books Professional iPhone Programming with MonoTouch and .NET/C# (7/13/2010) by Wallace B. McClure, Craig Dunn, Chris Hardy, Martin Bowling, Rory Blyth Developing C# Apps for iPhone and iPad using MonoTouch: iOS Apps Development for .NET Developers: 1st Edition (6/9/2011) by Bryan Costanich Learning MonoTouch: A Hands-On Guide to Building iOS Applications with C# and .NET (8/8/2011) by Michael Bluestein iOS Development using MonoTouch Cookbook (12/14/2011) by Dimitris Tavlikos
  • 63. Xamarin Seminar Please give us your feedback http://bit.ly/xamfeedback Follow us on Twitter @XamarinHQ Copyright 2012 © Xamarin Inc. All rights reserved

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n