What .NET C# developers need to enter the hot field of iPhone apps
iPhone applications offer a hot opportunity for developers. Until the open source MonoTouch project, this field was limited to those familiar with Apple's programming languages. Now .NET and C# developers can join the party. Professional iPhone Programming with MonoTouch and .NET/C#is the first book to cover MonoTouch, preparing developers to take advantage of this lucrative opportunity.
This book is for .NET developers that are interested in creating native iPhone applications written in .NET/C#. These developers want to use their existing knowledge. While .NET developers are always interested in learning, they also recognize that learning Objective-C and the specifics of the iPhone can be overwhelming. Those developers interested in MonoTouch will recognize that the cost of MonoTouch is easily made up by the ability to quickly target the iPhone using a language that they are already familiar with.
This book is designed for .NET developers that want to target the iPhone. It is designed to help you get up to speed with the iPhone, not to really teach you about the .NET Framework or C# language, which we assume you already know.
This book is designed with introductory material in Chapters 1 thru 4. You should read Chapters 1 thru 4 sequentially. These chapters introduce the MonoTouch product, the basics of developing with MonoTouch and MonoDevelop, and finally, the basics of presenting data to a user with screen and data controls and how to develop a user interface for the iPhone. Once you are comfortable with these concepts, you can typically move from one chapter to another and not necessarily have to read the chapters sequentially.
Chapter 1 "Introduction to iPhone Development with MonoTouch for C# Developers" This chapter looks at how the largest segment of developers can target the smartphone with the highest mindshare, and that the smartphone is growing faster in marketshare than any other device.
Chapter 2 "Introduction to MonoTouch" gives you a firm foundation in MonoTouch, MonoDevelop, Interface Builder, debugging, and deploying.
Chapter 3 "Planning Your App's UI: Exploring the Screen Controls" teaches you about creating your application's UI and specifically how the UI on the iPhone can differ from UIs that you might have created before. You also explore the Input & Value objects from the Interface Builder Objects Library.
Chapter 4 "Data Controls" shows the Interface Builder Objects Library Cocoa Touch classes for Controllers, Data Views, and Windows, Views, & Bars.
Chapter 5 "Working with Data on the iPhone" looks at the SQLite database engine as well as strategies to store data off the device on a central server through SOAP and REST (using XML and JSON) without tying up the user interface.
Chapter 6 "Displaying Data Using Tables" looks at displaying information in a table, using tables for navigation, taking advantage of UITableView's built-in editing features, and adding a search bar to a table.
Chapter 7 "Mapping" covers CoreLocation and MapKit, using Location Services, and adding maps and geocoding to your application.
Chapter 8 "Application Settings" focuses on application settings, and looks at two aspects of settings for your MonoTouch app: the Info.plist and your settings bundle. It covers what settings you might want to set in your Info.plist and why, and then looks at what code it takes to read and use the settings that you save in the settings bundle. And it also takes you through the building of the settings that you might have in a social media-type application. Going through each step, you will examine the Root.plist inside the Property List Editor and see the settings dialog that will result from it.
Chapter 9 "Programming with Device Hardware" covers accelerometer device orientation, and proximity detection support, networking, and developing with battery life in mind.
Chapter 10 "Programming with Multimedia" discussing integrating images and the image picker, watching and recording videos, playing and recording audio, and using animation
Chapter 11 "Talking to Other Applications" discusses the ways you can use MonoTouch to talk to other applications on the iPhone, both Apple-built applications and those downloaded from the App Store. It also provides helpful ways of accessing the iPhone's Address Book and the iPod music library.
Chapter 12 "Localizing for an International Audience" first defines internationalization and localization, then shows displaying translated text and images, formatting dates, times, and numbers, then extracting text for translation.
Chapter 13 "Programming the iPad" the capabilities of the iPad are, what new APIs and controls have been introduced that you can use in iPad-specific applications, and how to build applications that can work on both iPad and iPhone devices.
Chapter 14 "Just Enough Objective-C" provides you with a reference and introduction to Objective-C that will help you acquire an ability to comprehend Objective-C which is something that will come in very handy.
Chapter 15 "The App Store: Submitting and Marketing Your App" discusses all things App Store. First, it talks about the process that you need to go through before you are ready to submit - this includes final testing with Ad-Hoc builds and a presubmission checklist. Next it addresses actually submitting to the App Store, and then finally what to do with your app after it's in the App Store. This chapter also touches on alternative monetization strategies such as ads or in app purchases.
Table of Contents
- ABOUT THE AUTHORS
- ABOUT THE TECHNICAL EDITORS
- 1. Introduction to iPhone Development with MonoTouch for C# Developers
2. Introduction to MonoTouch
- 2.1. BEFORE YOU BEGIN DEVELOPING
- 2.2. THE COMPONENTS OF MONOTOUCH
- 2.3. WORKING WITH MONODEVELOP
- 2.4. USING INTERFACE BUILDER
- 2.5. HELLO WORLD WITH INTERFACE BUILDER
- 2.6. HELLO WORLD IN CODE
- 2.7. DEBUGGING
- 2.8. UNDERSTANDING THE LINKER
- 2.9. DEPLOYING YOUR APPLICATION
- 2.10. SUMMARY
3. Planning Your App's UI: Exploring the Screen Controls
- 3.1. CREATING IPHONE(Y) UI AND APPLICATION INTERACTION PATTERNS
- 3.2. UILABEL
- 3.3. UIBUTTON
- 3.4. UITEXTFIELD
- 3.5. UISWITCH
- 3.6. UISLIDER
- 3.7. UIACTIVITYINDICATORVIEW
- 3.8. UISEGMENTEDCONTROL
- 3.9. UIPAGECONTROL
- 3.10. SUMMARY
4. Data Controls
- 4.1. WINDOWS AND VIEWS
4.2. DATA VIEW CONTROLS
- 4.2.1. UIWebView
- 4.2.2. UIScrollView
- 4.2.3. UITextView
- 4.2.4. UIPickerView
- 4.2.5. UIDatePicker
- 4.3. CONTROLLERS AND BARS
- 4.4. SUMMARY
5. Working with Data on the iPhone
5.1. WORKING WITH SQLITE
- 5.1.1. Using Mono.Data.Sqlite
- 5.1.2. Setting Up a Database
- 5.1.3. Setting Up Tables
- 5.1.4. Using SQL Statements
- 5.1.5. Upgrading Strategies
5.2. WORKING WITH REMOTE DATA
- 5.2.1. Using SOAP
- 5.2.2. Using REST-Based Web Services
- 5.2.3. Retrieving Data
- 5.2.4. Posting Data with POST
- 5.2.5. Using Web Services Responsibly
- 5.3. SUMMARY
- 5.1. WORKING WITH SQLITE
6. Displaying Data Using Tables
- 6.1. DISPLAYING DATA IN A TABLE
- 6.2. NAVIGATING WITH TABLES
- 6.3. EDITING TABLE ROWS
- 6.4. ADDING A SEARCH BAR TO A TABLE
- 6.5. SUMMARY
- 7.1. MAP BASICS
- 7.2. USING CORELOCATION
- 7.3. USING MAPKIT
- 7.4. SUMMARY
8. Application Settings
- 8.1. EXPLORING THE INFO.PLIST
8.2. PEEKING IN THE SETTINGS BUNDLE
- 8.2.1. The Settings Application
- 8.2.2. Adding Your App to the Settings Application
- 8.2.3. Reading Your Settings
- 8.2.4. Updating Your Settings
- 8.3. SUMMARY
9. Programming with Device Hardware
- 9.1. RESPONDING TO ACCELERATION
- 9.2. DETERMINING DEVICE ORIENTATION
- 9.3. READING THE PROXIMITY SENSOR
- 9.4. NETWORKING
- 9.5. TAKING BATTERY LIFE INTO ACCOUNT
- 9.6. ACCESSING SYSTEM INFORMATION
- 9.7. MOBILE DEVELOPMENT
- 9.8. SUMMARY
10. Programming with Multimedia
- 10.1. IMAGES
- 10.2. VIDEO
- 10.3. AUDIO
- 10.4. ANIMATION
- 10.5. SUMMARY
11. Talking to Other Applications
- 11.1. INTEGRATING APPLE APPLICATIONS
- 11.2. THIRD-PARTY APPLICATION INTEGRATION
- 11.3. ACCEPTING CALLS FROM OTHER APPLICATIONS
- 11.4. INTEGRATING WITH THE ADDRESS BOOK
- 11.5. INTEGRATING WITH IPOD MUSIC COLLECTIONS
- 11.6. INTERFACING WITH OBJECTIVE-C
- 11.7. SUMMARY
12. Localizing for an International Audience
- 12.1. INTERNATIONALIZING AN APPLICATION
- 12.2. CHANGING LANGUAGE AND REGION SETTINGS
- 12.3. DISPLAYING MULTIPLE LANGUAGES
- 12.4. MANAGING LOCALIZABLE.STRINGS IN REAL-WORLD APPLICATIONS
- 12.5. SUMMARY
13. Programming the iPad
- 13.1. THE IPAD DEVICE
- 13.2. WHAT MAKES AN IPAD APPLICATION?
- 13.3. NEW IPAD FEATURES
- 13.4. BUILDING A UNIVERSAL APP
- 13.5. SUMMARY
14. Just Enough Objective-C
- 14.1. HOW TO USE THIS CHAPTER
- 14.2. A BRIEF LOOK AT OBJECTIVE-C AND COCOA
- 14.3. ACADEMIC VERSUS PRAGMATIC APPROACHES
- 14.4. BASIC SYNTAX AND CONCEPTS
- 14.5. CHEAT SHEETS
- 14.6. SUMMARY
15. The App Store: Submitting and Marketing Your App
15.1. USING AN AD-HOC BUILD FOR PRESUBMISSION TESTING
- 15.1.1. Getting a UDID from Your Testers
- 15.1.2. Making Ad-Hoc Provisioning Profiles
- 15.1.3. Building an Ad-Hoc Version of Your App
- 15.1.4. Packaging Your Ad-Hoc Build
- 15.2. PREPPING FOR SUBMISSION
15.3. PROMOTING YOUR APP
- 15.3.1. Supporting Your App Promotion
- 15.3.2. Key App Promotion Techniques
- 15.4. SUMMARY
- 15.1. USING AN AD-HOC BUILD FOR PRESUBMISSION TESTING
- Title: Professional iPhone® Programming with MonoTouch and .NET/C#
- Release date: July 2010
- Publisher(s): Wrox
- ISBN: 9780470637821