You are previewing Professional iPhone® and iPad™ Application Development.
O'Reilly logo
Professional iPhone® and iPad™ Application Development

Book Description

Everything you need to create top-notch applications for the iPhone and iPad

Developers have demanded an advanced guide to using the very latest version of the iPhone and iPad SDK to develop applications-and this book answers that call! Packed with over twenty complete standalone applications that are designed to be recreated, rebuilt, and reused by the professional developer, this resource delves into the increasingly popular world of application development and presents step-by-step guidance for creating superior apps for the iPhone and iPad. You'll explore the many developer tools and learn how to use them and you'll also discover how to apply the techniques learned, to real world situations. With coverage of the latest version of the iPhone and iPad SDK and the quantity of standalone applications, this book will serve as a tremendous go-to reference in the future.

Coverage includes:

  • Navigation

  • Alerts, Action Sheets, and Modal Views

  • Custom Table Views

  • The Split View

  • Touch Events

  • Notification Processing

  • Networking Concepts

  • Multimedia

  • Application Preferences

  • Data Storage

  • The Pasteboard

  • Unit Testing

  • Performance Tuning and Optimization

  • Integrating iAds

  • Multitasking

Professional iPhone and iPad Application Development is the only advanced-level resource you need for creating top-quality applications!

Table of Contents

  1. Copyright
  2. ABOUT THE AUTHOR
  3. ABOUT THE TECHNICAL EDITOR
  4. CREDITS
  5. ACKNOWLEDGMENTS
  6. INTRODUCTION
    1. WHO THIS BOOK IS FOR
    2. WHAT THIS BOOK COVERS
    3. HOW THIS BOOK IS STRUCTURED
    4. WHAT YOU NEED TO USE THIS BOOK
    5. CONVENTIONS
    6. SOURCE CODE
    7. ERRATA
    8. P2P.WROX.COM
  7. 1. Navigation
    1. 1.1. NAVIGATION STACK
    2. 1.2. THE NAVIGATION BAR
      1. 1.2.1. UINavigationBarDelegate Protocol
      2. 1.2.2. Configuring Navigation Bars
      3. 1.2.3. Pushing and Popping Items
    3. 1.3. A SIMPLE NAVIGATION BAR
      1. 1.3.1. Development Steps: A Simple Navigation Bar
        1. 1.3.1.1. Source Code Listings for the A Simple Navigation Bar Application
          1. 1.3.1.1.1. RootViewController.h Modifications to the Template
          2. 1.3.1.1.2. RootViewController.m Modifications to the Template
          3. 1.3.1.1.3. RootDetailViewController.h Modifications to the Template
          4. 1.3.1.1.4. RootDetailViewController.m Modifications to the Template
          5. 1.3.1.1.5. DetailViewController.h Modifications to the Template
          6. 1.3.1.1.6. DetailViewController.m Modifications to the Template
      2. 1.3.2. Test Your Application
    4. 1.4. THE TOOLBAR
    5. 1.5. A SIMPLE TOOLBAR
      1. 1.5.1. Development Steps: A Simple Toolbar
        1. 1.5.1.1. Source Code Listings for A Simple Toolbar
          1. 1.5.1.1.1. SimpleToolbar_iPhoneViewController.h Modifications to the Template
          2. 1.5.1.1.2. SimpleToolbar_iPhoneViewController.m Modifications to the Template
      2. 1.5.2. Test Your Application
    6. 1.6. THE TAB BAR
      1. 1.6.1. UITabBarDelegate Protocol
      2. 1.6.2. Customizing Tab Bars
    7. 1.7. A SIMPLE TAB BAR
      1. 1.7.1. Development Steps: A Simple Tab Bar
      2. 1.7.2. Designing the View Controllers
        1. 1.7.2.1. The First View Controller
        2. 1.7.2.2. The Second View Controller
        3. 1.7.2.3. The Third View Controller
        4. 1.7.2.4. Source Code Listings for A Simple Tab Bar
          1. 1.7.2.4.1. FirstViewController.h Modifications to the Template
          2. 1.7.2.4.2. FirstViewController.m Modifications to the Template
          3. 1.7.2.4.3. SecondViewController.h Modifications to the Template
          4. 1.7.2.4.4. SecondViewController.m Modifications to the Template
          5. 1.7.2.4.5. ThirdViewController.h Modifications to the Template
          6. 1.7.2.4.6. ThirdViewController.m Modifications to the Template
          7. 1.7.2.4.7. Transaction.h Modifications to the Template
          8. 1.7.2.4.8. Transaction.m Modifications to the Template
          9. 1.7.2.4.9. PropertyList.h Modifications to the Template
          10. 1.7.2.4.10. PropertyList.m Modifications to the Template
      3. 1.7.3. Test Your Application
    8. 1.8. SUMMARY
  8. 2. Alerts, Action Sheets, and Modal Views
    1. 2.1. ALERTS
      1. 2.1.1. Alert View Design
      2. 2.1.2. The UIAlertViewDelegate Protocol
    2. 2.2. A SIMPLE ALERTVIEW FOR THE IPHONE-IPOD TOUCH AND IPAD
      1. 2.2.1. Development Steps: Loading a File into a UITextView
        1. 2.2.1.1. Source Code Listings for the Alert View
          1. 2.2.1.1.1. Modifications to the AlertViewController.h Template
          2. 2.2.1.1.2. Modifications to the AlertViewController.m Template
      2. 2.2.2. Test Your Application
    3. 2.3. ACTION SHEETS
      1. 2.3.1. Action Sheet Design
        1. 2.3.1.1. iPhone, iPod Touch
        2. 2.3.1.2. iPad
      2. 2.3.2. The UIActionSheetDelegate Protocol
    4. 2.4. AN ACTION SHEET FOR THE IPHONE-IPOD TOUCH
      1. 2.4.1. Development Steps: Creating an Action Sheet for the iPhone or iPod Touch
        1. 2.4.1.1. Source Code Listings for the Action Sheet
          1. 2.4.1.1.1. Modifications to the RootViewController.h Template
          2. 2.4.1.1.2. Modifications to the RootViewController.m Template
          3. 2.4.1.1.3. Modifications to the DetailViewController.h Template
      2. 2.4.2. Test Your Application
    5. 2.5. AN ACTION SHEET FOR THE IPAD
      1. 2.5.1. Development Steps: Creating an Action Sheet for the iPad
        1. 2.5.1.1. Source Code Listings for the Action Sheet
          1. 2.5.1.1.1. Modifications to the RootViewController.h Template
          2. 2.5.1.1.2. Modifications to the RootViewController.m Template
          3. 2.5.1.1.3. Modifications to the DetailViewController.h Template
      2. 2.5.2. Final Steps: Making the Connections
      3. 2.5.3. Test Your Application
    6. 2.6. MODAL VIEWS
      1. 2.6.1. Presenting and Dismissing the Modal View
      2. 2.6.2. Transition Styles
      3. 2.6.3. Modal Presentation Styles (iPad only)
    7. 2.7. A MODAL VIEW FOR THE IPHONE AND IPOD TOUCH
      1. 2.7.1. Development Steps: Creating a Modal View for the iPhone and iPod Touch
        1. 2.7.1.1. Source Code Listings for the iPhone Modal View
          1. 2.7.1.1.1. Modifications to the ModalView_iPhoneViewController.h Template
          2. 2.7.1.1.2. ModalView_iPhoneViewController.m Modifications to the Template
          3. 2.7.1.1.3. Modifications to the NewModalViewController.h Template
          4. 2.7.1.1.4. Modifications to the NewModalViewController.m Template
      2. 2.7.2. Test Your Application
    8. 2.8. A MODAL VIEW FOR THE IPAD
      1. 2.8.1. Development Steps: Creating a Modal View for the iPad
        1. 2.8.1.1. Source Code Listings for the iPad Modal View
          1. 2.8.1.1.1. Modifications to the ModalView_iPadViewController.h Template
          2. 2.8.1.1.2. Modifications to the ModalView_iPadViewController.m Template
          3. 2.8.1.1.3. Modifications to the NewModalViewController.h Template
          4. 2.8.1.1.4. Modifications to the NewModalViewController.m Template
      2. 2.8.2. Test Your Application
    9. 2.9. SUMMARY
  9. 3. Custom Table Views
    1. 3.1. TABLE VIEWS
      1. 3.1.1. The Table View Cell
      2. 3.1.2. The UITableViewDataSource Protocol
      3. 3.1.3. The UITableViewDelegate Protocol
    2. 3.2. A CUSTOM TABLE VIEW APPLICATION
      1. 3.2.1. Development Steps: A Custom Table View Application
        1. 3.2.1.1. Source Code Listings for a Custom Table View Application
          1. 3.2.1.1.1. RootViewController.h Modifications to the Template
          2. 3.2.1.1.2. RotViewController.m Modifications to the Template
          3. 3.2.1.1.3. PropertyList.h Modifications to the Template
          4. 3.2.1.1.4. PropertyList.m Modifications to the Template
          5. 3.2.1.1.5. CustomTableViewCell.h Modifications to the Template
          6. 3.2.1.1.6. CustomTableViewCell.m Modifications to the Template
      2. 3.2.2. Creating the Contacts.plist Property List File
      3. 3.2.3. Test Your Application
    3. 3.3. SUMMARY
  10. 4. The Split View
    1. 4.1. THE UISPLITVIEWCONTROLLER CLASS
      1. 4.1.1. UIPopoverControllerDelegate Protocol
      2. 4.1.2. UISplitViewControllerDelegate Protocol
    2. 4.2. A SIMPLE SPLIT VIEW APPLICATION
      1. 4.2.1. Development Steps: A Simple Split View Application for the iPad
      2. 4.2.2. Creating the DataSource.plist Property List File
        1. 4.2.2.1. Source Code Listings for A Simple Split View Application
          1. 4.2.2.1.1. RootViewController.h Modifications to the Template
          2. 4.2.2.1.2. RootViewController.m Modifications to the Template
          3. 4.2.2.1.3. DetailViewController.h Modifications to the Template
          4. 4.2.2.1.4. DetailViewController.m Modifications to the Template
          5. 4.2.2.1.5. PropertyList.h Modifications to the Template
          6. 4.2.2.1.6. PropertyList.m Modifications to the Template
      3. 4.2.3. Test Your Application
    3. 4.3. SUMMARY
  11. 5. Touch Events
    1. 5.1. TOUCH EVENT HANDLING
      1. 5.1.1. Single Touch
      2. 5.1.2. Multi-Touch
      3. 5.1.3. Taps
      4. 5.1.4. Swipes and Gestures
    2. 5.2. A SIMPLE TOUCH HANDLER
      1. 5.2.1. Development Steps: A Simple Touch Handler
        1. 5.2.1.1. Source Code Listings for a Simple Touch Handler
          1. 5.2.1.1.1. SimpleTouchView.h Modifications to the Template
          2. 5.2.1.1.2. SimpleTouchView.m Modifications to the Template
      2. 5.2.2. Test Your Application
    3. 5.3. A SIMPLE GESTURE RECOGNIZER
      1. 5.3.1. Development Steps: A Simple Gesture Recognizer
        1. 5.3.1.1. Source Code Listings for a Simple Gesture Recognizer
          1. 5.3.1.1.1. SimpleTouchView.h Modifications to the Template
          2. 5.3.1.1.2. SimpleTouchView.m Modifications to the Template
      2. 5.3.2. Test Your Application
    4. 5.4. SUMMARY
  12. 6. Notification Processing
    1. 6.1. NSNOTIFICATIONS CONCEPTS
      1. 6.1.1. The Notification Center
      2. 6.1.2. Registering for Local Notifications
      3. 6.1.3. Posting Local Notifications
      4. 6.1.4. Unregistering an Observer
    2. 6.2. A LOCAL NAMED NOTIFICATION
      1. 6.2.1. Development Steps: A Local Named Notification
        1. 6.2.1.1. Source Code Listings for a Local Named Notification
          1. 6.2.1.1.1. LocalNamedNotification_iPhoneViewController.h Modifications to the Template
          2. 6.2.1.1.2. LocalNamedNotification_iPhoneViewController.m Modifications to the Template
      2. 6.2.2. Test Your Application
    3. 6.3. A LOCAL KEYBOARD NOTIFICATION
      1. 6.3.1. Development Steps: A Local Keyboard Notification
        1. 6.3.1.1. Source Code Listings for a Local Keyboard Notification
          1. 6.3.1.1.1. LocalNotificationKeyboard_iPhoneAppDelegate.h Modifications to the Template
          2. 6.3.1.1.2. LocalNotificationKeyboard_iPhoneAppDelegate.m Modifications to the Template
      2. 6.3.2. Test Your Application
    4. 6.4. SUMMARY
  13. 7. Networking Concepts
    1. 7.1. COMMUNICATION OVER A NETWORK
    2. 7.2. A SIMPLE NETWORK BROWSER
      1. 7.2.1. Development Steps: A Simple Network Browser
        1. 7.2.1.1. Building the Desktop Server
        2. 7.2.1.2. Source Code Listings for the Desktop Server
          1. 7.2.1.2.1. ServerView.h Modifications to the Template
          2. 7.2.1.2.2. ServerView.m Modifications to the Template
        3. 7.2.1.3. The iPhone Client
        4. 7.2.1.4. Source Code Listings for the iPhone Client
          1. 7.2.1.4.1. RootViewController.h Modifications to the Template
          2. 7.2.1.4.2. RootViewController.m Modifications to the Template
        5. 7.2.1.5. Test Your Application
    3. 7.3. PEER-TO-PEER DEVICE COMMUNICATIONS
      1. 7.3.1. Development Steps: Peer-to-Peer Device Communication
        1. 7.3.1.1. Source Code Listings for Peer-to-Peer Device Communication
          1. 7.3.1.1.1. PeerCommunication_iPhoneViewController.h Modifications to the Template
          2. 7.3.1.1.2. PeerCommunication_iPhoneViewController.m Modifications to the Template
          3. 7.3.1.1.3. MessagePacket Definition
      2. 7.3.2. Test Your Application
    4. 7.4. SUMMARY
  14. 8. Multimedia
    1. 8.1. FRAMEWORKS FOR AUDIO
      1. 8.1.1. Media Player
      2. 8.1.2. AV Foundation
      3. 8.1.3. Audio Toolbox
      4. 8.1.4. Audio Unit
      5. 8.1.5. OpenAL
    2. 8.2. FRAMEWORKS FOR VIDEO
      1. 8.2.1. MPMoviePlayerController
      2. 8.2.2. Supported Formats
    3. 8.3. PLAYING AUDIO FROM THE IPOD LIBRARY
      1. 8.3.1. Development Steps: Playing Audio from the iPod Library
        1. 8.3.1.1. Source Code Listings for an Application That Plays Audio from the iPod Library
          1. 8.3.1.1.1. iPodLibraryPlayerViewController.h Modifications to the Template
          2. 8.3.1.1.2. iPodLibraryPlayerViewController.m Modifications to the Template
          3. 8.3.1.1.3. MediaItemsViewController.h Modifications to the Template
          4. 8.3.1.1.4. MediaItemsViewController.m Modifications to the Template
      2. 8.3.2. Test Your Application
    4. 8.4. AN APPLICATION THAT PLAYS VIDEO FROM THE IPOD LIBRARY
      1. 8.4.1. Development Steps: An Application That Plays Video from the iPod Library
        1. 8.4.1.1. Source Code Listings for an Application That Plays Video from the iPod Library
          1. 8.4.1.1.1. iPodLibraryMoviePlayerAppDelegate.m Modifications to the Template
          2. 8.4.1.1.2. iPodLibraryMoviePlayerViewController.h Modifications to the Template
          3. 8.4.1.1.3. iPodLibraryMoviePlayerViewController.m Modifications to the Template
          4. 8.4.1.1.4. MediaPlaybackViewController.h Modifications to the Template
          5. 8.4.1.1.5. MediaPlaybackViewController.m Modifications to the Template
          6. 8.4.1.1.6. MediaPlaybackView.h Modifications to the Template
          7. 8.4.1.1.7. MediaPlaybackView.m Modifications to the Template
          8. 8.4.1.1.8. iPodLibrary.h Modifications to the Template
          9. 8.4.1.1.9. iPodLibrary.m Modifications to the Template
      2. 8.4.2. Test Your Application
    5. 8.5. SUMMARY
  15. 9. Application Preferences
    1. 9.1. APPLICATION CONFIGURATION
      1. 9.1.1. Guidelines for Application Preferences
      2. 9.1.2. Preference Element Types
      3. 9.1.3. Implementing Preference Hierarchies
      4. 9.1.4. Accessing the Application's Preferences
    2. 9.2. SETTING SIMPLE PREFERENCES
      1. 9.2.1. Development Steps: Setting Simple Preferences
      2. 9.2.2. Source Code Listings for Setting Simple Preferences
      3. 9.2.3. Test Your Application
    3. 9.3. CREATING A CHILD PANE PREFERENCE HIERARCHY
      1. 9.3.1. Development Steps: Creating a Child Pane Preference Hierarchy
        1. 9.3.1.1. Source Code Listings for Creating a Child Pane Preference Hierarchy
      2. 9.3.2. Test Your Application
    4. 9.4. SUMMARY
  16. 10. Data Storage
    1. 10.1. PROPERTY LISTS
      1. 10.1.1. Uses for Property Lists
      2. 10.1.2. Suggested Data Element Types
      3. 10.1.3. Saving and Restoring a Property List
    2. 10.2. CORE DATA
      1. 10.2.1. The Core Data Stack
      2. 10.2.2. Managed Objects
      3. 10.2.3. Managed Object Context
      4. 10.2.4. The Managed Object Model
      5. 10.2.5. Persistent Store Coordinator
      6. 10.2.6. Xcode Modeling Tool
      7. 10.2.7. Fetching Managed Objects
      8. 10.2.8. Deleting Managed Objects
    3. 10.3. THE COMMON PREMISE FOR DATA STORAGE
      1. 10.3.1. Development Steps: A Simple Application Using Property Lists
        1. 10.3.1.1. Source Code Listings for a Simple Application Using Property Lists
          1. 10.3.1.1.1. PersonAddViewController.h Modifications to the Template
          2. 10.3.1.1.2. PersonAddViewController.m Modifications to the Template
          3. 10.3.1.1.3. RootViewController.h Modifications to the Template
          4. 10.3.1.1.4. RootViewController.m Modifications to the Template
          5. 10.3.1.1.5. PersonDetailViewController.h Modifications to the Template
          6. 10.3.1.1.6. PersonDetailViewController.m Modifications to the Template
          7. 10.3.1.1.7. Person.h Modifications to the Template
          8. 10.3.1.1.8. Person.m Modifications to the Template
          9. 10.3.1.1.9. Modifications to the PropertyList.h and PropertyList.m Templates
      2. 10.3.2. Test Your Application
      3. 10.3.3. Development Steps: A Simple Application Using Core Data
        1. 10.3.3.1. Source Code Listings for a Simple Application Using Core Data
          1. 10.3.3.1.1. PersonAddViewController.h Modifications to the Template
          2. 10.3.3.1.2. PersonAddViewController.m Modifications to the Template
          3. 10.3.3.1.3. RootViewController.h Modifications to the Template
          4. 10.3.3.1.4. RootViewController.m Modifications to the Template
          5. 10.3.3.1.5. PersonDetailViewController.h Modifications to the Template
          6. 10.3.3.1.6. PersonDetailViewController.m Modifications to the Template
          7. 10.3.3.1.7. Person.h Modifications to the Template
          8. 10.3.3.1.8. Person.m Modifications to the Template
        2. 10.3.3.2. Data Model Creation for A Simple Application Using Core Data
          1. 10.3.3.2.1. CoreDataStorage.xcdatamodel Modifications to the Template
      4. 10.3.4. Test Your Application
    4. 10.4. SUMMARY
  17. 11. The Pasteboard
    1. 11.1. PASTEBOARD CONCEPTS
      1. 11.1.1. Named Pasteboards
      2. 11.1.2. Persistence
      3. 11.1.3. The Editing Menu
      4. 11.1.4. Cutting the Selection
      5. 11.1.5. Pasting the Item
      6. 11.1.6. Dismissing the Editing Menu
    2. 11.2. CUTTING AND PASTING TEXT
      1. 11.2.1. Development Steps: Cutting and Pasting Text
        1. 11.2.1.1. Source Code Listings for Cutting and Pasting Text
      2. 11.2.2. Test Your Application
    3. 11.3. CUTTING AND PASTING IMAGES
      1. 11.3.1. Development Steps: Cutting and Pasting Images
        1. 11.3.1.1. Source Code Listings for Cutting and Pasting Images
          1. 11.3.1.1.1. CopyPasteImage_iPhoneViewController.h Modifications to the Template
          2. 11.3.1.1.2. CopyPasteImage_iPhoneViewController.m Modifications to the Template
      2. 11.3.2. Test Your Application
    4. 11.4. CREATING CUSTOM MENUS FOR THE IPAD
      1. 11.4.1. Development Steps: Creating Custom Menus for the iPad
        1. 11.4.1.1. Source Code Listings for Creating Custom Menus for the iPad
          1. 11.4.1.1.1. CopyPasteImage_iPadViewController.h Modifications to the Template
          2. 11.4.1.1.2. CopyPasteImage_iPadViewController.m Modifications to the Template
      2. 11.4.2. Test Your Application
    5. 11.5. SUMMARY
  18. 12. Unit Testing
    1. 12.1. SETTING UP THE ENVIRONMENT
      1. 12.1.1. Using an Application-Testing Target
    2. 12.2. A SIMPLE UNIT TEST
      1. 12.2.1. Development Steps: A Simple Unit Test
        1. 12.2.1.1. Source Code Listings for a Simple Unit Test
        2. 12.2.1.2. Connecting the PickerViewController class to the UnitTestsAppDelegate
          1. 12.2.1.2.1. PickerViewController.h Modifications to the Template
          2. 12.2.1.2.2. PickerViewController.m Modifications to the Template
          3. 12.2.1.2.3. PropertyList.h Category Interface
          4. 12.2.1.2.4. PropertyList.m Category Implementation
      2. 12.2.2. Creating the Data.plist Data Source
      3. 12.2.3. Test Your Application
    3. 12.3. UNIT TEST CREATION STEPS: A SIMPLE UNIT TEST
      1. 12.3.1. Source Code Listings for a Simple Unit Test
      2. 12.3.2. Unit Testing Your Application
      3. 12.3.3. Registering your Device
      4. 12.3.4. Unit Testing Your Application
    4. 12.4. SUMMARY
  19. 13. Performance Tuning and Optimization
    1. 13.1. PROFILING
      1. 13.1.1. Using the Simulator
      2. 13.1.2. Using the Device
      3. 13.1.3. Benefits of Profiling
    2. 13.2. A SIMPLE MEMORY LEAK TEST
      1. 13.2.1. Development Steps: A Memory Leak Test
        1. 13.2.1.1. Source Code Listings for a Memory Leak Test
          1. 13.2.1.1.1. DataViewController.h Modifications to the Template
          2. 13.2.1.1.2. DataViewController.m Modifications to the Template
      2. 13.2.2. Development Steps Continued: Using the Instruments Application
      3. 13.2.3. Development Steps Continued: Using Build and Analyze from the Main Menu
    3. 13.3. SUMMARY
  20. 14. Integrating iAds
    1. 14.1. JOINING THE IAD NETWORK
      1. 14.1.1. Setting Up Banking Information
      2. 14.1.2. Enabling Your Application for iAds
      3. 14.1.3. Configuring Your iAd Preferences
    2. 14.2. PREPARING YOUR APPLICATION TO USE THE IAD NETWORK
      1. 14.2.1. Implementing the ADBannerView
      2. 14.2.2. Integrating the iAd Framework
    3. 14.3. A SIMPLE APPLICATION USING IADS
      1. 14.3.1. Development Steps: A Simple Application Using iAds
        1. 14.3.1.1. Source Code Listings for A Simple Application Using iAds
          1. 14.3.1.1.1. iAdAppViewController.h Modifications to the Template
          2. 14.3.1.1.2. iAdAppViewController.m Modifications to the Template
      2. 14.3.2. Test Your Application
    4. 14.4. SUMMARY
  21. 15. Multitasking
    1. 15.1. MULTITASKING SERVICES
      1. 15.1.1. UIApplication Delegate Messages
      2. 15.1.2. Multitasking Responsibilities
      3. 15.1.3. Xcode Simulator Multitasking Limitations
      4. 15.1.4. Device Support of Multitasking
    2. 15.2. AN APPLICATION THAT MULTITASKS AUDIO
      1. 15.2.1. Development Steps: An Application That Multitasks Audio
        1. 15.2.1.1. Source Code Listings for an Application That Multitasks Audio
          1. 15.2.1.1.1. RootViewController.h Modifications to the Template
          2. 15.2.1.1.2. RootViewController.m Modifications to the Template
          3. 15.2.1.1.3. MusicPlayerViewController.h Modifications to the Template
          4. 15.2.1.1.4. MusicPlayerViewController.m Modifications to the Template
          5. 15.2.1.1.5. iPodLibrary.h Modifications to the Template
          6. 15.2.1.1.6. iPodLibrary.m Modifications to the Template
      2. 15.2.2. Test Your Application
    3. 15.3. SUMMARY
  22. A. Your Initial App — First Steps
    1. A.1. XCODE PROJECT BUILDER
      1. A.1.1. Available Application Types
      2. A.1.2. The Project Window
        1. A.1.2.1. Navigation-based
        2. A.1.2.2. OpenGL ES
        3. A.1.2.3. Split View-based
        4. A.1.2.4. Tab Bar-based
        5. A.1.2.5. Utility-based
        6. A.1.2.6. View-based
        7. A.1.2.7. Window-based
      3. A.1.3. Build and Run in the Simulator
    2. A.2. INTERFACE BUILDER
      1. A.2.1. Creating an Interface Builder Document
      2. A.2.2. The Document Window
      3. A.2.3. The Library Window
      4. A.2.4. The Inspector Window
      5. A.2.5. The Connections Panel
    3. A.3. SUMMARY
  23. B. iPhone Developer Center
    1. B.1. RESOURCES FOR THE IOS 4 SDK
      1. B.1.1. Downloads
      2. B.1.2. iOS 4 Reference Library
        1. B.1.2.1. Coding How-Tos
        2. B.1.2.2. Getting Started Videos
        3. B.1.2.3. Getting Started Documents
      3. B.1.3. Sample Code
    2. B.2. IPHONE DEVELOPER PROGRAM
      1. B.2.1. iPhone Provisioning Portal
      2. B.2.2. Apple Developer Forums
      3. B.2.3. Developer Support Center
      4. B.2.4. App Store Resource Center
    3. B.3. ITUNES CONNECT
    4. B.4. NEWS & ANNOUNCEMENTS
      1. B.4.1. RSS Feed Subscription
    5. B.5. SUMMARY
  24. C. Cocoa Touch Static Libraries
    1. C.1. XCODE PROJECT TEMPLATE
      1. C.1.1. Choose Cocoa Static Library
      2. C.1.2. Adding Classes to the Library
      3. C.1.3. Source Code Listings for the DataSource Static Library
        1. C.1.3.1. DataSource.h Modifications to the Template
        2. C.1.3.2. DataSource.m Modifications to the Template
        3. C.1.3.3. Person.h Modifications to the Template
        4. C.1.3.4. Person.m Modifications to the Template
      4. C.1.4. Building the Project
    2. C.2. AN XCODE APPLICATION PROJECT
      1. C.2.1. Creating Your New Application
      2. C.2.2. Adding the Library to the New Project
      3. C.2.3. Adding Library Headers to the App Project
      4. C.2.4. Designing the App User Interface
      5. C.2.5. Adding Source Code Using the Library Classes
        1. C.2.5.1. RootVewController.h Modifications to the Template
        2. C.2.5.2. RootVewController.m Modifications to the Template
        3. C.2.5.3. PersonAddViewController.h Modifications to the Template
        4. C.2.5.4. PersonAddViewController.m Modifications to the Template
        5. C.2.5.5. PersonDetailViewController.h Modifications to the Template
        6. C.2.5.6. PersonDetailViewController.m Modifications to the Template
      6. C.2.6. Test Your Application
    3. C.3. SUMMARY
  25. D. Apple Developer Resources
    1. D.1. IPHONE DEVELOPER PROGRAM
      1. D.1.1. Developer Centers
      2. D.1.2. iOS Resources
      3. D.1.3. iOS Developer Resources
      4. D.1.4. iOS Developer Guides
    2. D.2. ITUNES APP STORE
    3. D.3. APPLICATION DISTRIBUTION PROCEDURES
    4. D.4. ITUNES CONNECT DEVELOPER GUIDE