SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This PDF will be accessible from your Account page after purchase and requires PDF reading software, such as Acrobat® Reader®.
The eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
Develop State-of-the-Art iPhone/iPad Apps with MonoTouch and .NET!
Are you an experienced C#/.NET developer who wants to reach the huge iPhone/iPad market? Now, you can create great iOS apps without first mastering Objective-C and Apple’s development toolset. With MonoTouch, you can leverage the skills you already have to create powerful apps that can be sold in Apple’s App Store or deployed throughout your organization. In Learning MonoTouch, Michael Bluestein helps you get started with MonoTouch fast and make the most of its remarkably robust capabilities.
The book first walks you through setting up your MonoTouch development environment, explaining how MonoTouch abstracts the iOS SDK to permit development against native iOS classes from C#. Through simple examples, you’ll start building working apps, establishing a firm foundation for more advanced coding. One step at a time, you’ll master increasingly sophisticated cases through practical examples. Bluestein even shows you how to leverage powerful .NET tools in your iOS apps, including LINQ.
Coverage includes
• Applying common iOS development patterns and techniques in C#
• Using MonoTouch to handle memory management and garbage collection
• Structuring MonoTouch apps for the MVC design pattern
• Making the most of iOS user interface classes
• Leveraging the address book, camera access, email, and iOS media features
• Customizing tables and navigation for richer experiences and better performance
• Accessing the iOS Core Graphics and Core Animation subsystems
• Building iOS location-based applications with Core Location and MapKit
• Consuming web services from MonoTouch
• Integrating iOS and .NET networking capabilities
• Saving data with the ADO.NET provider to SQLite, .NET serialization, and NSUserDefaults
All code samples are available for download at github.com/mikebluestein.
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