You are previewing Beginning iPad Development for iPhone Developers: Mastering the iPad SDK.
O'Reilly logo
Beginning iPad Development for iPhone Developers: Mastering the iPad SDK

Book Description

Best-selling authors Jack Nutting, Dave Wooldridge, and Dave Mark do it again. Beginning iPad Development for iPhone Developers: Mastering the iPad SDK offers the easy-to-follow style and thorough coverage you've come to expect from titles like Beginning iPhone 3 Development—everything an aspiring iPad developer needs to know to create great apps. Apple's new iPad SDKs are explained, demonstrated in action, and put through their paces with good-humored clarity that, as Steve Jobs has said of the iPad itself, "just works."

Every iPhone and iPod touch app developer looking to take the next step and move into the iPad arena will want to read this book from cover to cover. You'll get a detailed understanding of the new feature set and gain every possible advantage in the iTunes App Store. And it's time for all you Mac OS X programmers to join in as well to take advantage of a whole new class of touch-based productivity apps just waiting to be developed.

Table of Contents

  1. Copyright
  2. About the Authors
  3. About the Technical Reviewer
  4. Acknowledgments
  5. Preface
  6. 1. Welcome to the Paradigm Shift
    1. 1.1. Reinventing the Tablet
      1. 1.1.1. It's All About the Software
      2. 1.1.2. The iPad Is Not a Big iPod touch
    2. 1.2. Personal Computing for the Masses
    3. 1.3. Developing Apps for the iPad
      1. 1.3.1. When Your iPhone App Is No Longer Good Enough
      2. 1.3.2. Exploring the Possibilities
        1. 1.3.2.1. Brushes
        2. 1.3.2.2. 1Password Pro
        3. 1.3.2.3. Synotes
        4. 1.3.2.4. ScribattlePad
        5. 1.3.2.5. Zen Bound 2
    4. 1.4. Opportunity Awaits
  7. 2. Getting Started with iPad Development
    1. 2.1. Acquiring the Tools of the Trade
      1. 2.1.1. Enrolling in the iPhone Developer Program
      2. 2.1.2. Installing iPhone SDK 3.2
      3. 2.1.3. Working with Beta Versions of the SDK
    2. 2.2. New to Objective-C and Cocoa Touch?
    3. 2.3. Embracing the Model-View-Controller Concept
      1. 2.3.1. Reusability in Xcode
      2. 2.3.2. Designing in Interface Builder
        1. 2.3.2.1. Wiring Actions
        2. 2.3.2.2. Wiring Outlets
    4. 2.4. The Importance of Delegates
    5. 2.5. Improving App Usability with UIKit
    6. 2.6. Primed for Programming
  8. 3. Exploring the iPhone SDK's New iPad Features
    1. 3.1. Optimizing Apps for the iPad
      1. 3.1.1. Examining the Tablet
      2. 3.1.2. Managing Memory
      3. 3.1.3. Testing Your Apps on an iPad
    2. 3.2. What's New in iPhone SDK 3.2 for the iPad
      1. 3.2.1. Shape Drawing
      2. 3.2.2. PDF Files
      3. 3.2.3. Core Text
      4. 3.2.4. Popovers
      5. 3.2.5. Video Playback and Display Options
      6. 3.2.6. Split View Controller
      7. 3.2.7. Modal Presentation Styles
      8. 3.2.8. Advanced Input Methods
        1. 3.2.8.1. Edit Menu Actions
        2. 3.2.8.2. Keyboard Layouts
        3. 3.2.8.3. Gesture Recognizers
      9. 3.2.9. Document Support
      10. 3.2.10. Universal Applications
        1. 3.2.10.1. Universal App Requirements
        2. 3.2.10.2. To Be or Not to Be Universal
    3. 3.3. Required Project Images for iPad Apps
      1. 3.3.1. App Icon Images
      2. 3.3.2. Document Type Icon Images
      3. 3.3.3. Default Launch Images
    4. 3.4. Drilling Deeper
  9. 4. New Graphics Functionality
    1. 4.1. Bezier Paths
    2. 4.2. Introducing Dudel
      1. 4.2.1. Creating the Dudel Project
      2. 4.2.2. Adding a Simple GUI
    3. 4.3. The Basic Drawing Architecture
    4. 4.4. We Are All Tool Users
      1. 4.4.1. The Pencil Tool
      2. 4.4.2. The Line Tool
      3. 4.4.3. The Ellipse and Rectangle Tools
      4. 4.4.4. The Freehand Tool
    5. 4.5. PDF Generation
    6. 4.6. Things to See and Do
  10. 5. Using Core Text
    1. 5.1. Why Core Text?
    2. 5.2. The Structure of Core Text
    3. 5.3. Preparing Dudel for a New Tool
      1. 5.3.1. Preparing the Controller Interface
      2. 5.3.2. Setting Up the GUI
      3. 5.3.3. Implementing Changes to the Controller Class
      4. 5.3.4. Creating the Text Tool
        1. 5.3.4.1. Declaring the Text Tool Interface
        2. 5.3.4.2. Implementing TextTool
      5. 5.3.5. Creating a New Drawable Class
      6. 5.3.6. Rendering Multiple Styles
    4. 5.4. The Lessons of Core Text
  11. 6. Popovers
    1. 6.1. Popover Preparations
      1. 6.1.1. The Basic GUI
      2. 6.1.2. Popover Considerations
    2. 6.2. The Font Name Popover
      1. 6.2.1. The Simplest Popover You'll Ever Create
      2. 6.2.2. The Back End
    3. 6.3. The Font Size Popover
      1. 6.3.1. Creating the GUI
      2. 6.3.2. Making It Work
    4. 6.4. The Stroke Width Popover
      1. 6.4.1. Paving the Way
      2. 6.4.2. Creating the GUI
      3. 6.4.3. Previewing the Stroke Width with a Custom View
      4. 6.4.4. Implementing the Controller
      5. 6.4.5. Making it Work
    5. 6.5. The Dual-Action Color Popover
      1. 6.5.1. Creating a Simple Color Grid
      2. 6.5.2. Hooking Up the Grid
      3. 6.5.3. Serving Two Masters
    6. 6.6. Your Popover-Fu Is Strong
  12. 7. Video and Display Output
    1. 7.1. Displaying Multiple Videos
      1. 7.1.1. Creating the Video App Project
      2. 7.1.2. Specifying Your Video Files
      3. 7.1.3. Using the videoCell Outlet to Load the GUI
      4. 7.1.4. Creating the VideoCell User Interface
      5. 7.1.5. Running the Video App
    2. 7.2. Outputting to an External Screen
      1. 7.2.1. Extending the Video App to Handle an External Screen
      2. 7.2.2. Implementing the VideoCell Delegate Method
      3. 7.2.3. Testing the External Screen Functionality
    3. 7.3. Display Solutions
  13. 8. Split Views and Modal Modes
    1. 8.1. The Split View Concept
    2. 8.2. The Basics of Saving and Loading
    3. 8.3. Document Management
      1. 8.3.1. Listing Files
        1. 8.3.1.1. Adding a File List Controller
        2. 8.3.1.2. Changing the App Delegate
      2. 8.3.2. Creating and Deleting Files
      3. 8.3.3. Renaming Files
    4. 8.4. Implementing an About Panel in a Modal Way
      1. 8.4.1. Creating the Modal Web View Controller
      2. 8.4.2. Displaying a Web Page
      3. 8.4.3. Integrating with the Dudel View Controller
    5. 8.5. Let's Split
  14. 9. New Input Methods
    1. 9.1. Menu Additions
    2. 9.2. Gesture Recognition
      1. 9.2.1. Adding Undo to Dudel
      2. 9.2.2. Resetting the Selected Tool's State
    3. 9.3. Keyboard Extensions and Replacements
      1. 9.3.1. Adding a Keyboard Button in Dudel
      2. 9.3.2. Replacing the Keyboard
        1. 9.3.2.1. Defining the InputView Class
        2. 9.3.2.2. Creating the Keyboard Input View
        3. 9.3.2.3. Creating the Calculator
    4. 9.4. That's All the Input You Need
  15. 10. Working with Documents
    1. 10.1. Passing Files to Another Application
      1. 10.1.1. Adding a PDF-Sending Menu Action
      2. 10.1.2. Preparing a File for Sending
      3. 10.1.3. Invoking the Document Interaction Controller
    2. 10.2. Receiving Files
      1. 10.2.1. Registering As a Recipient
        1. 10.2.1.1. Declaring a Data Type's Existence with UTI
        2. 10.2.1.2. Declaring Data Type Ownership Using UTI
      2. 10.2.2. Testing the File-Receiving Feature
      3. 10.2.3. Retrieving File Information from Launch Options
      4. 10.2.4. Sending a Dudeldoc File
    3. 10.3. Desktop Synchronization
    4. 10.4. Share and Share Alike
  16. 11. From iPhone to iPad
    1. 11.1. Introducing NavApp for iPhone
      1. 11.1.1. Creating the NavApp Project
        1. 11.1.1.1. Enhancing the Root View Controller
        2. 11.1.1.2. Defining the Second Level View Controller
        3. 11.1.1.3. Defining the Choice View Controller
      2. 11.1.2. Choosing the Active SDK
    2. 11.2. Adding iPad to the Mix
      1. 11.2.1. Taking the Upgraded NavApp for a Spin
      2. 11.2.2. Conditional Behavior: Know Your Idioms
      3. 11.2.3. Configuring the Main iPad GUI
      4. 11.2.4. Creating the Choice View Controller GUI for iPad
      5. 11.2.5. Implementing the Split View Delegate Methods
      6. 11.2.6. Tweaking the Navigation Logic
      7. 11.2.7. Enhancing the Main View with a No-Selection State
    3. 11.3. Running on Multiple Targets
    4. 11.4. Juggling iDevices
  17. 12. Additional Resources for iPad Development
    1. 12.1. Logging in to the Mother Ship
      1. 12.1.1. iPad Development
      2. 12.1.2. Objective-C and Cocoa Touch
      3. 12.1.3. iPad App Deployment
    2. 12.2. Learning from the Experts
      1. 12.2.1. Books
      2. 12.2.2. Tutorials and Code Examples
    3. 12.3. Designing User Interfaces for iPad Apps
      1. 12.3.1. Paper Prototyping
      2. 12.3.2. Digital Mockups
      3. 12.3.3. User Interface Icons
      4. 12.3.4. Design Considerations and Inspirations
    4. 12.4. Finding Answers in Online Forums
    5. 12.5. Holding the Future