EARTH WEEK
Now through April 22, save up to 70% on digital learning resources. Learn more.
Register your product to gain access to bonus material or receive a coupon.
This is the Safari online edition of the printed book.
Many .NET developers and many enterprises would like to target the iPhone for business application development, yet the learning curve and cost of moving to Objective-C precludes the practicality of this in many cases. MonoTouch brings the best of CocoaTouch and .NET under a single, extensible technology, providing the only way to develop iPhone applications using .NET that can be published to the iPhone App Store.
Learning MonoTouch begins with the basics of building applications for the iPhone under MonoTouch. It assumes the reader is familiar with C# and .NET at least on an intermediate level and will focus on making use of existing skills while presenting in detail iPhone-specific information. Initial chapters will have simple examples to get the reader up and running and lay the groundwork for more complex samples and chapters presented later in the book. After the basics are covered, the book quickly moves into more complex examples using a practical application that addresses common use cases encountered in enterprise application projects.
Learning MonoTouch is for .NET/C# developers with several years of application development experience, but little to no iPhone or Mac development experience. This book teaches C#/.NET developers how to take their existing skills to the iPhone and shows them everything they need to know to build an enterprise class application using MonoTouch. The book assumes intermediate-level knowledge of C#/.NET. Some familiarity with n-tier application development will be helpful, but the book will include some primers in areas such as web services or database development where appropriate.
Preface xiii
The Audience for This Book xiii
About the Sample Code xiv
Acknowledgments xv
About the Author xvi
Introduction 1
How This Book Is Organized 1
Chapter 1: Hello MonoTouch 1
Chapter 2: iOS SDK via MonoTouch 2
Chapter 3: Views and View Controllers 2
Chapter 4: Common iOS Classes 2
Chapter 5: Tables and Navigation 2
Chapter 6: Graphics and Animation 2
Chapter 7: Core Location 3
Chapter 8: MapKit 3
Chapter 9: Connecting to Web Services 3
Chapter 10: Networking 3
Chapter 11: Saving Application Data 3
Chapter 12: iPad Development 3
Chapter 1 Hello MonoTouch 5
Setting Up Your Environment 5
Installing the iOS SDK and Apple Developer Tools 5
Installing MonoTouch 10
Creating a MonoTouch Application 14
Creating the User Interface 14
Adding Outlets 16
Developing on the Device 24
Provisioning for Development 24
Using the MonoTouch Debugger 29
Summary 31
Chapter 2 iOS SDK via MonoTouch 33
iOS SDK Overview 33
Objective-C Versus MonoTouch By Example 35
Getting the App Started from Xcode 36
Implementing the Same Functionality with MonoTouch 41
Comparing the AppDelegate Implementations 43
Implementing UIActionSheet via Xcode 46
Implementing UIActionSheet in MonoTouch 48
How MonoTouch Works 52
Memory Management 54
Summary 56
Chapter 3 Views and View Controllers 57
Structuring a MonoTouch Application to MVC 57
Working with Views and Controllers in Interface Builder 59
Adding Functionality to a View Controller and Its View 67
Working with Multiple Views and Controllers 71
Implementing a Custom UIView 75
Summary 80
Chapter 4 Common iOS Classes 81
User Interface Views and Controls 81
UISegmentedControl 81
UISlider 85
UISwitch 88
UIPageControl and UIScrollView 89
UIActivityIndicatorView 92
UIProgressView 94
UIImageView 95
UIWebView 97
ADBannerView 100
Device Capabilities 103
MFMailComposeViewController 103
MPMediaPickerController and MPMusicPlayerController 105
Address Book 108
UIImagePickerController 111
Summary 116
Chapter 5 Tables and Navigation 117
Introduction to UITableView and UITableViewController 117
What Are Tables Used For? 117
Displaying Data in a UITableView 119
UITableViewCell Parts and Styles 125
Using Tables and Navigation 128
Additional UITableView Customizations 144
Customizing Tables Further with Custom Cells 144
Adding Multiple Sections 148
MonoTouch.Dialog 153
Summary 155
Chapter 6 Graphics and Animation 157
Core Graphics 157
Core Graphics Fundamentals 157
Drawing Images 165
Drawing PDFs 170
Animation 180
UIView Animation 181
Core Animation 185
Summary 194
Chapter 7 Core Location 195
Introducing Core Location 195
Standard Location Service 197
Retrieving Heading Updates 207
Significant Location Changes 209
Region Monitoring 211
Background Location 214
Summary 216
Chapter 8 MapKit 217
Introducing MapKit 217
Adding Annotations 224
Map Overlays 233
Summary 240
Chapter 9 Connecting to Web Services 241
Connecting to REST-based Web Services 241
Connecting over HTTP 241
Parsing XML Results 244
Parsing JSON Results 247
Consuming SOAP-based Web Services 248
Using a .NET 2.0 Client Proxy 248
WCF under MonoTouch 250
Using CocoaTouch HTTP Classes 251
Using NSUrlConnection and Friends 252
Summary 254
Chapter 10 Networking 255
GameKit Networking 255
Core GameKit Networking Classes 255
Using GKPeerPickerController 264
GameKit Voice Chat 268
Bonjour 272
Summary 281
Chapter 11 Saving Application Data 283
The Notes Sample Application 283
SQLite 289
Serialization 295
Settings Bundle and NSUserDefaults 297
Summary 306
Chapter 12 iPad Development 307
Porting to iPad 307
iPhone Applications with Pixel Doubling 307
Universal Applications 308
Designing for the iPad 311
UISplitViewController 312
UIPopoverController 323
Summary 326
Index 327