SlideShare ist ein Scribd-Unternehmen logo
1 von 104
LEARNING
    IPAD
     C#
PROGRAMMING
  (REV 001)
                   Rich Helton
        Rhelton_1@yahoo.com
               August 28, 2012
What is MonoDevelop?
• MonoDevelop is an open source integrated
  development environment for the Linux
  platform, MAC OS X, and Microsoft
  Windows, targeted for the development of
  software that uses Mono and the Micorosft
  .NET frameworks.
• See
  http://en.wikipedia.org/wiki/MonoDevelop
What is Mono?
• Mono is a free open source project led by
  Xamerin (formally Novell and originally by
  Ximian) to create an Ecma standard compliant
  .Net framework-compatible set of tools
  including, among others, a C# compiler and
  Common Runtime Language.
• See
  http://en.wikipedia.org/wiki/Mono_(software)
• See http://www.mono-project.com/Main_Page
Mono end-to-end
• Mono is a series of wrappers around
  Android, Mac, iOS, and more.
• There is the base Mono framework, the
  IDE, and MonoTouch is the framework for
  compiling on the iPad device.
• Pieces of code can be reused for other Mono
  frameworks.
• Just to get MAC diagnostics written in C# is
  enough to get me looking into it.
Still iOS
• iOS is the operating system for the iPhone,
  iPod, and iPad.
• We cannot escape learning bits of iOS by
  focusing on Mono, because Mono is a
  wrapper around iOS, but it helps us focus on
  the C# frameworks instead of getting lost in
  iOS.
• Mono allows us to use C# frameworks around
  iOS and other operating systems.
MonoGame
• MonoGame is an Open Source
  implementation of the Microsoft XNA 4
  Framework.
• This allows us to build games in XNA for the
  iPad.
• http://monogame.codeplex.com/
XNA
• Microsoft’s XNA is a set of tools with a
  managed runtime environment provided by
  Microsoft that facilitates video game
  development and management.
• http://en.wikipedia.org/wiki/Microsoft_XNA
MonoMac
• MonoMac is the Mac OSX, not iOS, binding to
  .NET in Mono.
• By using MonoMac and MonoGame, XNA/C#
  games can be written for the Mac OSX, like
  Lion.
• http://www.mono-project.com/MonoMac
MonoMac Sample
• A MonoMac sample for WhereisMyMac has
  geolocated my Mac and me.
What is MonoTouch?
• MonoTouch allows developers to create C#
  and .NET based application that run on the
  IPhone.
• http://en.wikipedia.org/wiki/MonoTouch#M
  onoTouch
• There is a cost for licenses.
• https://store.xamarin.com/
How does MonoTouch work?
• The MonoTouch platform compiles directly to
  the ARM assembly code.
• Even things like generics, which used to rely
  on Just In Time (JIT) compilation are available
  via Mono’s Ahead Of Time (AOT) compiler.
• http://docs.xamarin.com/iOS/getting_started
  /Introduction_to_MonoTouch#How_Does_M
  onoTouch_Work.3f
Default Assemblies
• There are many default assemblies in
  MonoTouch, many in support of
  XML, Linq, WCF, SQLite, Sockets and more.
• Assemblies can be added by adding DLL’s to the
  MonoTouch project as references.
• http://docs.xamarin.com/iOS/about/assemblies
• http://iOSapi.xamarin.com/?link=root%3a%2fcla
  sslib
There are many Apps in the App Store
• There are many Apps from MonoTouch in the
  App Store, but there is always a concern
  when relying on a proprietary licensed
  product like MonoTouch, but I always say
  that it is better to have something done
  quickly than not at all.
• Sample App Store Apps
  http://xamarin.com/apps
There are many Samples
• https://github.com/xamarin/MonoTouch-
  samples
• http://samples.xamarin.com/iOS
• https://bitbucket.org/mrshrinkray/MonoTouc
  h-samples/src
• http://MonoTouchexamples.com/
• https://github.com/chrisntr/MonoTouch-
  Examples
MONODEVELOP
    IS NOT
VISUAL STUDIO
There are many differences
• Just because something supports .Net 4, it
  doesn’t mean it supports Visual Studio 2010
  functionality.
• It supports C# functionality wrapped around
  iOS.
• For Instance, I can set up a UnitTest directly
  with Visual Studio tools, while Mono uses
  Nunit, so just be aware that you may be
  missing Visual Studio features.
There are many differences
• For Instance, I can set up a Test Project for
  Visual Studio Test,
There are limitations
• Besides some of the Visual Studio plugins and
  extensions, MonoTouch does have C#
  language limitations, such as limited Generics
  Support.
• See
  http://docs.xamarin.com/iOS/about/limitatio
  ns
INSTALLATION
You can play for free
• An evaluation version of MonoTouch can be
  used in the iPad simulator for the MAC
  OSX, but a license will have to be purchased
  when running the MonoTouch program on
  the physical device.
• The Trial can be downloaded from
  http://xamarin.com/trial/
You can play for free
• An evaluation version of MonoTouch can be
  used in the iPad simulator for the MAC
  OSX, but a license will have to be purchased
  when running the MonoTouch program on
  the physical device.
• The Trial can be downloaded from
  http://xamarin.com/trial/
Install…
•   Ensure Xcode is installed.
•   Install the Mono Framework
•   Install MonoDevelop
•   Install MonoTouch
Ensure that Xcode is installed
• Install the correct Xcode for the MAC
  OSX, get Xcode from
  https://developer.apple.com/devcenter/iOS/i
  ndex.action
• Check Xcode Installation by using the
  Terminal and typing
  “/Developer/usr/bin/xcodebuild –version”
Install Mono
• Install mono SDK from http://www.go-
  mono.com/mono-downloads/download.html
• Install the MonoDevelop from
  http://monodevelop.com/
• Install MonoTouchhttp://xamarin.com/trial/
MVC
Model-View-Controller (MVC)
 The Model-View-Controller is the most
common design pattern in Software
Architecture.
 There is the .NET MVC3, or MVC4,
framework that can be used to implement it in
MonoTouch for iPad design as well as for
ASP.NET design.
An intro to MonoTouch MVC can be found at
http://www.infoq.com/articles/MonoTouch-
mvc
Model-View-Controller (MVC)
• Here are the pieces:
UIKit MVC
 Microsoft’s MVC3 project is a ASP.NET
implementation of MVC.
 For the iPad MVC, the iOS UIKIT will have to
be used.
 When working with MonoTouch, a basic
knowledge of iOS will have to be established.
MonTouch adds C# .Net on top of iOS, it does
not replace it.
 Let’s start with a MVC UIKit example.
An MVC Example
 Microsoft’s MVC3 project is a ASP.NET
implementation of MVC.
 For the iPad MVC, the iOS UIKIT will have to be used
and it will use it from the Xcode installed on the MAC
OSX.
 When working with MonoTouch, a basic knowledge of
iOS will have to be established.
MonTouch adds C# .Net on top of iOS, it does not
replace it.
http://docs.xamarin.com/iOS/getting_started/intro_to
_mvc_in_iOS
AppDelegate
 One of the classes defined in the UIKit is the
AppDelegate which is automatically defined in
all MonoTouch projects in Main.cs.
 Its function is to receive the notifications
from the OS that may affect application.
 I like to the think of of it as the global
handling of the application.
http://escoz.com/blog/MonoTouch-
uiapplication-and-appdelegate-explained/
AppDelegate functions
 Normally, there will be a function named
FinishedLaunching that will have
“window.makeKeyAnd” that will display the
window from MainWindow.xib.
AppDelegate example
Other Delegates
iOS contains other delegates that are used to
pass information between the application and OS.
 Examples are UIAccelerometerDelegate,
MPMediaPickerControllerDelegate,
MKMapViewDelegate, UITableViewDelegate and
more.
 These Delegates may use Protocols and Events
for some of their communication.
http://docs.xamarin.com/iOS/tutorials/Events%2
c_Protocols_and_Delegates
UIView
UIView is the base class that contain all the
screen elements and properties to be managed
by the UIViewController.
 The UIView has many default subclasses that
can be used, such as
UIControl, UIScrollableView, UITableView and
more.
https://developer.apple.com/library/iOS/#do
cumentation/uikit/reference/uiview_class/UIVi
ew/UIView.html
Some UIView subclasses
Notice that Interface Builder matches UIKit
UIViewController
 A default controller that controls the view.
 It comes with a lifecycle for functions to
check if the ViewDidload, ViewDidUnload, and
more.
https://developer.apple.com/library/iOS/#do
cumentation/UIKit/Reference/UIViewController
_Class/Reference/Reference.html
UIViewController->ViewDidLoad
ViewDidLoad is very important because after
the View loads, then many of the pieces are
added here to the, like buttons, labels, and
more views.
Starting with Controllers
 Many controllers will be derived from the
UIKitUIViewController for the main UI View.
 Some examples can be found at
http://www.infoq.com/articles/MonoTouch-
mvc and
http://www.knowing.net/index.php/MonoTouc
h-custom-viewcontroller-adding-stepwise-
subviews/
Starting with Controllers
 Many controllers will be derived from the
UIKitUIViewController for the main UI View.
 Some examples can be found at
http://www.infoq.com/articles/MonoTouch-
mvc and
http://www.knowing.net/index.php/MonoTouc
h-custom-viewcontroller-adding-stepwise-
subviews/
NIB File
 The NIB file is the compiled set of XIB
files, the XML, for the App.
 It will be packaged in the deployed App.
http://developer.apple.com/library/mac/#do
cumentation/Cocoa/Conceptual/LoadingResour
ces/CocoaNibs/CocoaNibs.html
XIB File
 There are many XML file formats to help
generate GUI’s, for example in Microsoft's WPF,
there is the XAML file format.
 For iOS, it is the XIB file format.
These file formats offer a good base to
initialize the graphics based on the devices grid
system, but tighter control of the graphics will
rely on the MVC code.
XIB Code Generation

http://docs.xamarin.com/iOS/advanced_topi
cs/xib_code_generation
Interface Builder
 The XIB file can be managed in Xcode’s
Interface Builder.
See
http://en.wikipedia.org/wiki/Interface_Builder
 Pro’s and Cons of IB and XIB can be found at
http://mobile.tutsplus.com/tutorials/iphone/in
terface-builder/
Outlets
 An outlet connects Interface Builder to the
code.
 It is is the plumbing for the code behind for
the MonoTouch to Objective-C bridge.
http://docs.xamarin.com/iOS/advanced_topi
cs/xib_code_generation#Outlet_Properties
Adding an Outlet
 An outlet can be added in the Interface Builder
(IB) or programmatically.
 It can be added to the AppDelegate through IB.
 Programmatically, it can be added through the
OutletAttribute:
  [Outlet]
  UIButtonButtonTap { get; set; }
http://docs.xamarin.com/iOS/getting_started/he
llo_iphone#Adding_an_Outlet
Actions
 Actions in Objective-C are equivalent to
control events in C#.
 Actions deliver notification signals to various
objects.
http://docs.xamarin.com/iOS/tutorials/Event
s,_Protocols_and_Delegates
Adding an Action
 An action can be added in the Interface Builder
(IB) or programmatically.
 The IB will generate action code that can be
done programmatically with the Action
annotation:
[Action ("actnButtonClick:")]
partial void actnButtonClick (MonoTouch.Foundation.NSObject sender);


http://docs.xamarin.com/iOS/getting_started/hell
o_iphone#Adding_an_Action
FIRST APP
MonoDevelop->New->Solution
Many pieces are created
 The AppDelegate.cs, Main.cs, default
Controllers, and default XIBs are created now.
 The iPad application should compile and run
already.
Many pieces are created
Code was generated
 The AppDelegate.cs and Main.cs were
generated to start the application.
 For the main screen, a
MainViewController.xib, MainViewController.cs,
and the code behind that links the
MainViewController to the XIB, as
MainViewController.designer.cs.
 A similar second screen is created when
“info” is pushed as FlipSideViewController.
Run-> Start Debugging
(iPad Simulator Launches)
The showInfo Action will call the showInfo
function, calling the FlipsController
We can see showInfo Action and
MainController in the XIB view
Double Click ->FlipsideViewController.xib
(Xcode Interface Builder Launches)
Add a Label
Run again, now it has a Label
There was a “done” button, notice the Action for done in the
code behind and the function in the Controller
Some notes …
 We just changed the
FlipsideViewController.xib, which may update
the interface to the FlipSideViewController with
the code behind code
FlipSideViewController.designer.cs.
This also means that the label is in the
XIB code and the object is embedded
Let’s add a label programmatically in
ViewDidLoad
Executing it, we see the new
(HomeView) label.
ADDING A
VIEW
Add a ViewController to the Project
Which creates a default template for both the
controller and XIB.
And an empty XIB that works as the View
Xamarim Recipe for Add a New View
Running the Add New View
MONOTOUCH.DIALOG
Intro
MonoTouch.dialog is a framework for
MonoTouch that can be found at
https://github.com/migueldeicaza/MonoTouch.
Dialog
 The purpose of MonoTouch.Dialog is to save
time in building dialog boxes and showing table
based information.
Many Demo Apps
Switching it to iPad
Demos in iPad
Xamarin offers a Tutorial
MonoTouch Elements
(Extended classes of MonoTouch.Dialog)
MonoTouch Elements Running
Xamarin Elements Tutorial
Xamarin Reflections Tutorial
Running Reflections Tutorial
Reflections Tutorial Notes
• Notice that there is no XIB file or Controller
  class.
• There is a decorated class with the attribute
  values.
• A UITableView will be created with section
  SectionAttributes.
Set the values for the Dialog
Create the Controller Flow for the Dialog in the
AppDelegate
WORKING
WITH TABLES
AND CELLS
Tables and Cells Intro
• UITableView is the most common layout and
  data display tool in iOS.
• A normal display could be simply displaying
  the rows of tables.
• See
  http://docs.xamarin.com/iOS/tutorials/Worki
  ng_with_Tables_and_Cells
Xamarin Tutorial
Running the Basic Table
Running the Table Edit Mode
INTRO TO
STORYBOARDS
Storyboards -- Apple
• In iOS5, Apple introduced a concept called
  Storyboards.
• A Storyboard is a visual representation of the
  user interface of an iOS application.
• See
  http://developer.apple.com/library/mac/#do
  cumentation/General/Conceptual/Devpedia-
  CocoaApp/Storyboard.html
Storyboards -- MonoTouch
• Xamarin offers a Tutorial and sample code for
  a Storyboard.
• See
  http://docs.xamarin.com/ios/tutorials/Introd
  uction_to_Storyboards
Storyboards – The sample
• The sample will show
  Controllers, AppDelegate, plist, and Main as
  normal, but there is a also a storyboard file.
The Storyboard file in Xcode
Storyboards -- segue
• The segue manages the transitions between
  the scenes and passes data with a “sender”.
Storyboards -- dock
• The dock is used to define outlets and actions
  between the view controller and views.
Storyboards -- dock
• The iPad can have multiple scenes appear at
  once, but the scene is similar to a View.
Running the sample shows navigation
COMMANDS
AND TOOLS
mono has several command line tools
mtouch Commands
Multiple IDE’s
• Multiple MonoDevoleps can be run on Mac
  OSX with “open -n
  /Applications/MonoDevelop.app”
• See
  http://microsoft2apple.com/2010/09/26/mul
  tiple-instances-of-monodevelop-on-a-mac/
MonoTouch Profiler
CONCLUSION

Weitere ähnliche Inhalte

Was ist angesagt?

Tumbleweed intro
Tumbleweed introTumbleweed intro
Tumbleweed introRich Helton
 
iPhone Coding For Web Developers
iPhone Coding For Web DevelopersiPhone Coding For Web Developers
iPhone Coding For Web DevelopersMatt Biddulph
 
Class notes(week 10) on applet programming
Class notes(week 10) on applet programmingClass notes(week 10) on applet programming
Class notes(week 10) on applet programmingKuntal Bhowmick
 
Advanced iOS Debbuging (Reloaded)
Advanced iOS Debbuging (Reloaded)Advanced iOS Debbuging (Reloaded)
Advanced iOS Debbuging (Reloaded)Massimo Oliviero
 
"Architecting and testing large iOS apps: lessons from Facebook". Adam Ernst,...
"Architecting and testing large iOS apps: lessons from Facebook". Adam Ernst,..."Architecting and testing large iOS apps: lessons from Facebook". Adam Ernst,...
"Architecting and testing large iOS apps: lessons from Facebook". Adam Ernst,...Yandex
 
Eclipse e4 on Java Forum Stuttgart 2010
Eclipse e4 on Java Forum Stuttgart 2010Eclipse e4 on Java Forum Stuttgart 2010
Eclipse e4 on Java Forum Stuttgart 2010Lars Vogel
 
API workshop: Deep dive into Java
API workshop: Deep dive into JavaAPI workshop: Deep dive into Java
API workshop: Deep dive into JavaTom Johnson
 
[2015/2016] Apache Cordova
[2015/2016] Apache Cordova[2015/2016] Apache Cordova
[2015/2016] Apache CordovaIvano Malavolta
 
Class notes(week 10) on applet programming
Class notes(week 10) on applet programmingClass notes(week 10) on applet programming
Class notes(week 10) on applet programmingKuntal Bhowmick
 
Eclipse 40 and Eclipse e4
Eclipse 40 and Eclipse e4 Eclipse 40 and Eclipse e4
Eclipse 40 and Eclipse e4 Lars Vogel
 
API Documentation -- Presentation to East Bay STC Chapter
API Documentation -- Presentation to East Bay STC ChapterAPI Documentation -- Presentation to East Bay STC Chapter
API Documentation -- Presentation to East Bay STC ChapterTom Johnson
 
Uploading files using selenium web driver
Uploading files using selenium web driverUploading files using selenium web driver
Uploading files using selenium web driverPankaj Biswas
 
[Devoxx Morocco 2015] Apache Cordova In Action
[Devoxx Morocco 2015] Apache Cordova In Action[Devoxx Morocco 2015] Apache Cordova In Action
[Devoxx Morocco 2015] Apache Cordova In ActionHazem Saleh
 

Was ist angesagt? (20)

Tumbleweed intro
Tumbleweed introTumbleweed intro
Tumbleweed intro
 
Azure rev002
Azure rev002Azure rev002
Azure rev002
 
Android programming-basics
Android programming-basicsAndroid programming-basics
Android programming-basics
 
iPhone Coding For Web Developers
iPhone Coding For Web DevelopersiPhone Coding For Web Developers
iPhone Coding For Web Developers
 
B.Sc. III(VI Sem) Advance Java Unit2: Appet
B.Sc. III(VI Sem) Advance Java Unit2: AppetB.Sc. III(VI Sem) Advance Java Unit2: Appet
B.Sc. III(VI Sem) Advance Java Unit2: Appet
 
tut0000021-hevery
tut0000021-heverytut0000021-hevery
tut0000021-hevery
 
Intro to asp.net mvc 4 with visual studio
Intro to asp.net mvc 4 with visual studioIntro to asp.net mvc 4 with visual studio
Intro to asp.net mvc 4 with visual studio
 
Class notes(week 10) on applet programming
Class notes(week 10) on applet programmingClass notes(week 10) on applet programming
Class notes(week 10) on applet programming
 
Advanced iOS Debbuging (Reloaded)
Advanced iOS Debbuging (Reloaded)Advanced iOS Debbuging (Reloaded)
Advanced iOS Debbuging (Reloaded)
 
"Architecting and testing large iOS apps: lessons from Facebook". Adam Ernst,...
"Architecting and testing large iOS apps: lessons from Facebook". Adam Ernst,..."Architecting and testing large iOS apps: lessons from Facebook". Adam Ernst,...
"Architecting and testing large iOS apps: lessons from Facebook". Adam Ernst,...
 
Eclipse e4 on Java Forum Stuttgart 2010
Eclipse e4 on Java Forum Stuttgart 2010Eclipse e4 on Java Forum Stuttgart 2010
Eclipse e4 on Java Forum Stuttgart 2010
 
API workshop: Deep dive into Java
API workshop: Deep dive into JavaAPI workshop: Deep dive into Java
API workshop: Deep dive into Java
 
[2015/2016] Apache Cordova
[2015/2016] Apache Cordova[2015/2016] Apache Cordova
[2015/2016] Apache Cordova
 
Class notes(week 10) on applet programming
Class notes(week 10) on applet programmingClass notes(week 10) on applet programming
Class notes(week 10) on applet programming
 
Apache ant
Apache antApache ant
Apache ant
 
Eclipse 40 and Eclipse e4
Eclipse 40 and Eclipse e4 Eclipse 40 and Eclipse e4
Eclipse 40 and Eclipse e4
 
API Documentation -- Presentation to East Bay STC Chapter
API Documentation -- Presentation to East Bay STC ChapterAPI Documentation -- Presentation to East Bay STC Chapter
API Documentation -- Presentation to East Bay STC Chapter
 
Uploading files using selenium web driver
Uploading files using selenium web driverUploading files using selenium web driver
Uploading files using selenium web driver
 
Java applet
Java appletJava applet
Java applet
 
[Devoxx Morocco 2015] Apache Cordova In Action
[Devoxx Morocco 2015] Apache Cordova In Action[Devoxx Morocco 2015] Apache Cordova In Action
[Devoxx Morocco 2015] Apache Cordova In Action
 

Ähnlich wie Learning C# iPad Programming

Introduction to MonoTouch and Monodroid/Mono for Android
Introduction to MonoTouch and Monodroid/Mono for AndroidIntroduction to MonoTouch and Monodroid/Mono for Android
Introduction to MonoTouch and Monodroid/Mono for AndroidChris Hardy
 
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
 
NCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsNCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsJohn M. Wargo
 
Delphi Prism for iPhone/iPad and Linux with Mono and Monotouch
Delphi Prism for iPhone/iPad and Linux with Mono and MonotouchDelphi Prism for iPhone/iPad and Linux with Mono and Monotouch
Delphi Prism for iPhone/iPad and Linux with Mono and MonotouchAndreano Lanusse
 
iOS Application Security
iOS Application SecurityiOS Application Security
iOS Application SecurityEgor Tolstoy
 
Develop android application with mono for android
Develop android application with mono for androidDevelop android application with mono for android
Develop android application with mono for androidNicko Satria Consulting
 
iOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET GuyiOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET GuyNick Landry
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouchJonas Follesø
 
Cross-platform mobile dev with Mono
Cross-platform mobile dev with MonoCross-platform mobile dev with Mono
Cross-platform mobile dev with MonoCraig Dunn
 
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...Bala Subra
 
outgoing again
outgoing againoutgoing again
outgoing againspredslide
 
Introduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual StudioIntroduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual StudioIndyMobileNetDev
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopmentgillygize
 
webOS App by Example: Sorting Thoughts
webOS App by Example: Sorting ThoughtswebOS App by Example: Sorting Thoughts
webOS App by Example: Sorting ThoughtsHendrik Ebel
 

Ähnlich wie Learning C# iPad Programming (20)

Introduction to MonoTouch and Monodroid/Mono for Android
Introduction to MonoTouch and Monodroid/Mono for AndroidIntroduction to MonoTouch and Monodroid/Mono for Android
Introduction to MonoTouch and Monodroid/Mono for Android
 
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
 
NCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsNCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile Apps
 
Delphi Prism for iPhone/iPad and Linux with Mono and Monotouch
Delphi Prism for iPhone/iPad and Linux with Mono and MonotouchDelphi Prism for iPhone/iPad and Linux with Mono and Monotouch
Delphi Prism for iPhone/iPad and Linux with Mono and Monotouch
 
iOS Application Security
iOS Application SecurityiOS Application Security
iOS Application Security
 
Develop android application with mono for android
Develop android application with mono for androidDevelop android application with mono for android
Develop android application with mono for android
 
iOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET GuyiOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET Guy
 
An introduction to java programming language forbeginners(java programming tu...
An introduction to java programming language forbeginners(java programming tu...An introduction to java programming language forbeginners(java programming tu...
An introduction to java programming language forbeginners(java programming tu...
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouch
 
Cross-platform mobile dev with Mono
Cross-platform mobile dev with MonoCross-platform mobile dev with Mono
Cross-platform mobile dev with Mono
 
Xamarin v.Now
Xamarin v.NowXamarin v.Now
Xamarin v.Now
 
Firefox os
Firefox osFirefox os
Firefox os
 
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
 
outgoing again
outgoing againoutgoing again
outgoing again
 
Introduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual StudioIntroduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual Studio
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopment
 
tut0000021-hevery
tut0000021-heverytut0000021-hevery
tut0000021-hevery
 
webOS App by Example: Sorting Thoughts
webOS App by Example: Sorting ThoughtswebOS App by Example: Sorting Thoughts
webOS App by Example: Sorting Thoughts
 

Mehr von Rich Helton

Mongo db rev001.
Mongo db rev001.Mongo db rev001.
Mongo db rev001.Rich Helton
 
NServicebus WCF Integration 101
NServicebus WCF Integration 101NServicebus WCF Integration 101
NServicebus WCF Integration 101Rich Helton
 
Entity frameworks101
Entity frameworks101Entity frameworks101
Entity frameworks101Rich Helton
 
Salesforce Intro
Salesforce IntroSalesforce Intro
Salesforce IntroRich Helton
 
First Steps in Android
First Steps in AndroidFirst Steps in Android
First Steps in AndroidRich Helton
 
Python For Droid
Python For DroidPython For Droid
Python For DroidRich Helton
 
Spring Roo Rev005
Spring Roo Rev005Spring Roo Rev005
Spring Roo Rev005Rich Helton
 
Overview of CSharp MVC3 and EF4
Overview of CSharp MVC3 and EF4Overview of CSharp MVC3 and EF4
Overview of CSharp MVC3 and EF4Rich Helton
 
C#Web Sec Oct27 2010 Final
C#Web Sec Oct27 2010 FinalC#Web Sec Oct27 2010 Final
C#Web Sec Oct27 2010 FinalRich Helton
 
Sql Injection and Entity Frameworks
Sql Injection and Entity FrameworksSql Injection and Entity Frameworks
Sql Injection and Entity FrameworksRich Helton
 
Web Application Firewall intro
Web Application Firewall introWeb Application Firewall intro
Web Application Firewall introRich Helton
 
Java Web Security Class
Java Web Security ClassJava Web Security Class
Java Web Security ClassRich Helton
 
Secure Ftp Java Style Rev004
Secure Ftp  Java Style Rev004Secure Ftp  Java Style Rev004
Secure Ftp Java Style Rev004Rich Helton
 

Mehr von Rich Helton (16)

Mongo db rev001.
Mongo db rev001.Mongo db rev001.
Mongo db rev001.
 
NServicebus WCF Integration 101
NServicebus WCF Integration 101NServicebus WCF Integration 101
NServicebus WCF Integration 101
 
Entity frameworks101
Entity frameworks101Entity frameworks101
Entity frameworks101
 
Salesforce Intro
Salesforce IntroSalesforce Intro
Salesforce Intro
 
First Steps in Android
First Steps in AndroidFirst Steps in Android
First Steps in Android
 
NServiceBus
NServiceBusNServiceBus
NServiceBus
 
Python For Droid
Python For DroidPython For Droid
Python For Droid
 
Spring Roo Rev005
Spring Roo Rev005Spring Roo Rev005
Spring Roo Rev005
 
Python Final
Python FinalPython Final
Python Final
 
Overview of CSharp MVC3 and EF4
Overview of CSharp MVC3 and EF4Overview of CSharp MVC3 and EF4
Overview of CSharp MVC3 and EF4
 
C#Web Sec Oct27 2010 Final
C#Web Sec Oct27 2010 FinalC#Web Sec Oct27 2010 Final
C#Web Sec Oct27 2010 Final
 
Jira Rev002
Jira Rev002Jira Rev002
Jira Rev002
 
Sql Injection and Entity Frameworks
Sql Injection and Entity FrameworksSql Injection and Entity Frameworks
Sql Injection and Entity Frameworks
 
Web Application Firewall intro
Web Application Firewall introWeb Application Firewall intro
Web Application Firewall intro
 
Java Web Security Class
Java Web Security ClassJava Web Security Class
Java Web Security Class
 
Secure Ftp Java Style Rev004
Secure Ftp  Java Style Rev004Secure Ftp  Java Style Rev004
Secure Ftp Java Style Rev004
 

Kürzlich hochgeladen

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Kürzlich hochgeladen (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

Learning C# iPad Programming

  • 1. LEARNING IPAD C# PROGRAMMING (REV 001) Rich Helton Rhelton_1@yahoo.com August 28, 2012
  • 2. What is MonoDevelop? • MonoDevelop is an open source integrated development environment for the Linux platform, MAC OS X, and Microsoft Windows, targeted for the development of software that uses Mono and the Micorosft .NET frameworks. • See http://en.wikipedia.org/wiki/MonoDevelop
  • 3. What is Mono? • Mono is a free open source project led by Xamerin (formally Novell and originally by Ximian) to create an Ecma standard compliant .Net framework-compatible set of tools including, among others, a C# compiler and Common Runtime Language. • See http://en.wikipedia.org/wiki/Mono_(software) • See http://www.mono-project.com/Main_Page
  • 4. Mono end-to-end • Mono is a series of wrappers around Android, Mac, iOS, and more. • There is the base Mono framework, the IDE, and MonoTouch is the framework for compiling on the iPad device. • Pieces of code can be reused for other Mono frameworks. • Just to get MAC diagnostics written in C# is enough to get me looking into it.
  • 5. Still iOS • iOS is the operating system for the iPhone, iPod, and iPad. • We cannot escape learning bits of iOS by focusing on Mono, because Mono is a wrapper around iOS, but it helps us focus on the C# frameworks instead of getting lost in iOS. • Mono allows us to use C# frameworks around iOS and other operating systems.
  • 6. MonoGame • MonoGame is an Open Source implementation of the Microsoft XNA 4 Framework. • This allows us to build games in XNA for the iPad. • http://monogame.codeplex.com/
  • 7. XNA • Microsoft’s XNA is a set of tools with a managed runtime environment provided by Microsoft that facilitates video game development and management. • http://en.wikipedia.org/wiki/Microsoft_XNA
  • 8. MonoMac • MonoMac is the Mac OSX, not iOS, binding to .NET in Mono. • By using MonoMac and MonoGame, XNA/C# games can be written for the Mac OSX, like Lion. • http://www.mono-project.com/MonoMac
  • 9. MonoMac Sample • A MonoMac sample for WhereisMyMac has geolocated my Mac and me.
  • 10. What is MonoTouch? • MonoTouch allows developers to create C# and .NET based application that run on the IPhone. • http://en.wikipedia.org/wiki/MonoTouch#M onoTouch • There is a cost for licenses. • https://store.xamarin.com/
  • 11. How does MonoTouch work? • The MonoTouch platform compiles directly to the ARM assembly code. • Even things like generics, which used to rely on Just In Time (JIT) compilation are available via Mono’s Ahead Of Time (AOT) compiler. • http://docs.xamarin.com/iOS/getting_started /Introduction_to_MonoTouch#How_Does_M onoTouch_Work.3f
  • 12. Default Assemblies • There are many default assemblies in MonoTouch, many in support of XML, Linq, WCF, SQLite, Sockets and more. • Assemblies can be added by adding DLL’s to the MonoTouch project as references. • http://docs.xamarin.com/iOS/about/assemblies • http://iOSapi.xamarin.com/?link=root%3a%2fcla sslib
  • 13. There are many Apps in the App Store • There are many Apps from MonoTouch in the App Store, but there is always a concern when relying on a proprietary licensed product like MonoTouch, but I always say that it is better to have something done quickly than not at all. • Sample App Store Apps http://xamarin.com/apps
  • 14. There are many Samples • https://github.com/xamarin/MonoTouch- samples • http://samples.xamarin.com/iOS • https://bitbucket.org/mrshrinkray/MonoTouc h-samples/src • http://MonoTouchexamples.com/ • https://github.com/chrisntr/MonoTouch- Examples
  • 15. MONODEVELOP IS NOT VISUAL STUDIO
  • 16. There are many differences • Just because something supports .Net 4, it doesn’t mean it supports Visual Studio 2010 functionality. • It supports C# functionality wrapped around iOS. • For Instance, I can set up a UnitTest directly with Visual Studio tools, while Mono uses Nunit, so just be aware that you may be missing Visual Studio features.
  • 17. There are many differences • For Instance, I can set up a Test Project for Visual Studio Test,
  • 18. There are limitations • Besides some of the Visual Studio plugins and extensions, MonoTouch does have C# language limitations, such as limited Generics Support. • See http://docs.xamarin.com/iOS/about/limitatio ns
  • 20. You can play for free • An evaluation version of MonoTouch can be used in the iPad simulator for the MAC OSX, but a license will have to be purchased when running the MonoTouch program on the physical device. • The Trial can be downloaded from http://xamarin.com/trial/
  • 21. You can play for free • An evaluation version of MonoTouch can be used in the iPad simulator for the MAC OSX, but a license will have to be purchased when running the MonoTouch program on the physical device. • The Trial can be downloaded from http://xamarin.com/trial/
  • 22. Install… • Ensure Xcode is installed. • Install the Mono Framework • Install MonoDevelop • Install MonoTouch
  • 23. Ensure that Xcode is installed • Install the correct Xcode for the MAC OSX, get Xcode from https://developer.apple.com/devcenter/iOS/i ndex.action • Check Xcode Installation by using the Terminal and typing “/Developer/usr/bin/xcodebuild –version”
  • 24. Install Mono • Install mono SDK from http://www.go- mono.com/mono-downloads/download.html • Install the MonoDevelop from http://monodevelop.com/ • Install MonoTouchhttp://xamarin.com/trial/
  • 25. MVC
  • 26. Model-View-Controller (MVC)  The Model-View-Controller is the most common design pattern in Software Architecture.  There is the .NET MVC3, or MVC4, framework that can be used to implement it in MonoTouch for iPad design as well as for ASP.NET design. An intro to MonoTouch MVC can be found at http://www.infoq.com/articles/MonoTouch- mvc
  • 28. UIKit MVC  Microsoft’s MVC3 project is a ASP.NET implementation of MVC.  For the iPad MVC, the iOS UIKIT will have to be used.  When working with MonoTouch, a basic knowledge of iOS will have to be established. MonTouch adds C# .Net on top of iOS, it does not replace it.  Let’s start with a MVC UIKit example.
  • 29. An MVC Example  Microsoft’s MVC3 project is a ASP.NET implementation of MVC.  For the iPad MVC, the iOS UIKIT will have to be used and it will use it from the Xcode installed on the MAC OSX.  When working with MonoTouch, a basic knowledge of iOS will have to be established. MonTouch adds C# .Net on top of iOS, it does not replace it. http://docs.xamarin.com/iOS/getting_started/intro_to _mvc_in_iOS
  • 30. AppDelegate  One of the classes defined in the UIKit is the AppDelegate which is automatically defined in all MonoTouch projects in Main.cs.  Its function is to receive the notifications from the OS that may affect application.  I like to the think of of it as the global handling of the application. http://escoz.com/blog/MonoTouch- uiapplication-and-appdelegate-explained/
  • 31. AppDelegate functions  Normally, there will be a function named FinishedLaunching that will have “window.makeKeyAnd” that will display the window from MainWindow.xib.
  • 33. Other Delegates iOS contains other delegates that are used to pass information between the application and OS.  Examples are UIAccelerometerDelegate, MPMediaPickerControllerDelegate, MKMapViewDelegate, UITableViewDelegate and more.  These Delegates may use Protocols and Events for some of their communication. http://docs.xamarin.com/iOS/tutorials/Events%2 c_Protocols_and_Delegates
  • 34. UIView UIView is the base class that contain all the screen elements and properties to be managed by the UIViewController.  The UIView has many default subclasses that can be used, such as UIControl, UIScrollableView, UITableView and more. https://developer.apple.com/library/iOS/#do cumentation/uikit/reference/uiview_class/UIVi ew/UIView.html
  • 36. Notice that Interface Builder matches UIKit
  • 37. UIViewController  A default controller that controls the view.  It comes with a lifecycle for functions to check if the ViewDidload, ViewDidUnload, and more. https://developer.apple.com/library/iOS/#do cumentation/UIKit/Reference/UIViewController _Class/Reference/Reference.html
  • 38. UIViewController->ViewDidLoad ViewDidLoad is very important because after the View loads, then many of the pieces are added here to the, like buttons, labels, and more views.
  • 39. Starting with Controllers  Many controllers will be derived from the UIKitUIViewController for the main UI View.  Some examples can be found at http://www.infoq.com/articles/MonoTouch- mvc and http://www.knowing.net/index.php/MonoTouc h-custom-viewcontroller-adding-stepwise- subviews/
  • 40. Starting with Controllers  Many controllers will be derived from the UIKitUIViewController for the main UI View.  Some examples can be found at http://www.infoq.com/articles/MonoTouch- mvc and http://www.knowing.net/index.php/MonoTouc h-custom-viewcontroller-adding-stepwise- subviews/
  • 41. NIB File  The NIB file is the compiled set of XIB files, the XML, for the App.  It will be packaged in the deployed App. http://developer.apple.com/library/mac/#do cumentation/Cocoa/Conceptual/LoadingResour ces/CocoaNibs/CocoaNibs.html
  • 42. XIB File  There are many XML file formats to help generate GUI’s, for example in Microsoft's WPF, there is the XAML file format.  For iOS, it is the XIB file format. These file formats offer a good base to initialize the graphics based on the devices grid system, but tighter control of the graphics will rely on the MVC code.
  • 44. Interface Builder  The XIB file can be managed in Xcode’s Interface Builder. See http://en.wikipedia.org/wiki/Interface_Builder  Pro’s and Cons of IB and XIB can be found at http://mobile.tutsplus.com/tutorials/iphone/in terface-builder/
  • 45. Outlets  An outlet connects Interface Builder to the code.  It is is the plumbing for the code behind for the MonoTouch to Objective-C bridge. http://docs.xamarin.com/iOS/advanced_topi cs/xib_code_generation#Outlet_Properties
  • 46. Adding an Outlet  An outlet can be added in the Interface Builder (IB) or programmatically.  It can be added to the AppDelegate through IB.  Programmatically, it can be added through the OutletAttribute: [Outlet] UIButtonButtonTap { get; set; } http://docs.xamarin.com/iOS/getting_started/he llo_iphone#Adding_an_Outlet
  • 47. Actions  Actions in Objective-C are equivalent to control events in C#.  Actions deliver notification signals to various objects. http://docs.xamarin.com/iOS/tutorials/Event s,_Protocols_and_Delegates
  • 48. Adding an Action  An action can be added in the Interface Builder (IB) or programmatically.  The IB will generate action code that can be done programmatically with the Action annotation: [Action ("actnButtonClick:")] partial void actnButtonClick (MonoTouch.Foundation.NSObject sender);  http://docs.xamarin.com/iOS/getting_started/hell o_iphone#Adding_an_Action
  • 51. Many pieces are created  The AppDelegate.cs, Main.cs, default Controllers, and default XIBs are created now.  The iPad application should compile and run already.
  • 52. Many pieces are created
  • 53. Code was generated  The AppDelegate.cs and Main.cs were generated to start the application.  For the main screen, a MainViewController.xib, MainViewController.cs, and the code behind that links the MainViewController to the XIB, as MainViewController.designer.cs.  A similar second screen is created when “info” is pushed as FlipSideViewController.
  • 54. Run-> Start Debugging (iPad Simulator Launches)
  • 55. The showInfo Action will call the showInfo function, calling the FlipsController
  • 56. We can see showInfo Action and MainController in the XIB view
  • 59. Run again, now it has a Label
  • 60. There was a “done” button, notice the Action for done in the code behind and the function in the Controller
  • 61. Some notes …  We just changed the FlipsideViewController.xib, which may update the interface to the FlipSideViewController with the code behind code FlipSideViewController.designer.cs.
  • 62. This also means that the label is in the XIB code and the object is embedded
  • 63. Let’s add a label programmatically in ViewDidLoad
  • 64. Executing it, we see the new (HomeView) label.
  • 66. Add a ViewController to the Project
  • 67. Which creates a default template for both the controller and XIB.
  • 68. And an empty XIB that works as the View
  • 69. Xamarim Recipe for Add a New View
  • 70. Running the Add New View
  • 72. Intro MonoTouch.dialog is a framework for MonoTouch that can be found at https://github.com/migueldeicaza/MonoTouch. Dialog  The purpose of MonoTouch.Dialog is to save time in building dialog boxes and showing table based information.
  • 76. Xamarin offers a Tutorial
  • 77. MonoTouch Elements (Extended classes of MonoTouch.Dialog)
  • 82. Reflections Tutorial Notes • Notice that there is no XIB file or Controller class. • There is a decorated class with the attribute values. • A UITableView will be created with section SectionAttributes.
  • 83. Set the values for the Dialog
  • 84. Create the Controller Flow for the Dialog in the AppDelegate
  • 86. Tables and Cells Intro • UITableView is the most common layout and data display tool in iOS. • A normal display could be simply displaying the rows of tables. • See http://docs.xamarin.com/iOS/tutorials/Worki ng_with_Tables_and_Cells
  • 89. Running the Table Edit Mode
  • 91. Storyboards -- Apple • In iOS5, Apple introduced a concept called Storyboards. • A Storyboard is a visual representation of the user interface of an iOS application. • See http://developer.apple.com/library/mac/#do cumentation/General/Conceptual/Devpedia- CocoaApp/Storyboard.html
  • 92. Storyboards -- MonoTouch • Xamarin offers a Tutorial and sample code for a Storyboard. • See http://docs.xamarin.com/ios/tutorials/Introd uction_to_Storyboards
  • 93. Storyboards – The sample • The sample will show Controllers, AppDelegate, plist, and Main as normal, but there is a also a storyboard file.
  • 95. Storyboards -- segue • The segue manages the transitions between the scenes and passes data with a “sender”.
  • 96. Storyboards -- dock • The dock is used to define outlets and actions between the view controller and views.
  • 97. Storyboards -- dock • The iPad can have multiple scenes appear at once, but the scene is similar to a View.
  • 98. Running the sample shows navigation
  • 100. mono has several command line tools
  • 102. Multiple IDE’s • Multiple MonoDevoleps can be run on Mac OSX with “open -n /Applications/MonoDevelop.app” • See http://microsoft2apple.com/2010/09/26/mul tiple-instances-of-monodevelop-on-a-mac/

Hinweis der Redaktion

  1. This template can be used as a starter file for presenting training materials in a group setting.SectionsRight-click on a slide to add sections. Sections can help to organize your slides or facilitate collaboration between multiple authors.NotesUse the Notes section for delivery notes or to provide additional details for the audience. View these notes in Presentation View during your presentation. Keep in mind the font size (important for accessibility, visibility, videotaping, and online production)Coordinated colors Pay particular attention to the graphs, charts, and text boxes.Consider that attendees will print in black and white or grayscale. Run a test print to make sure your colors work when printed in pure black and white and grayscale.Graphics, tables, and graphsKeep it simple: If possible, use consistent, non-distracting styles and colors.Label all graphs and tables.
  2. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  3. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  4. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  5. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  6. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  7. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  8. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  9. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  10. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  11. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  12. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  13. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  14. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  15. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  16. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  17. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  18. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  19. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  20. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  21. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  22. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  23. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  24. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  25. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  26. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  27. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  28. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  29. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  30. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  31. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  32. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  33. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  34. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  35. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  36. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  37. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  38. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  39. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  40. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  41. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  42. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  43. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  44. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  45. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  46. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  47. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  48. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  49. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  50. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  51. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  52. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  53. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  54. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  55. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  56. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  57. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  58. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  59. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  60. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  61. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  62. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  63. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  64. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  65. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  66. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  67. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  68. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  69. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  70. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  71. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  72. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  73. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  74. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  75. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  76. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  77. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  78. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  79. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  80. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  81. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  82. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  83. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  84. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  85. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  86. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  87. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  88. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  89. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  90. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  91. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  92. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  93. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  94. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.