You are previewing iPhone Cool Projects.
O'Reilly logo
iPhone Cool Projects

Book Description

This book shows you how the most innovative and creative iPhone application developers have developed cool, best-selling applications.

Table of Contents

  1. Copyright
  2. About the Lead Author
  3. About the Technical Consultant
  4. Acknowledgments
  5. Introduction
    1. Who this book is for
    2. What's in the book
  6. 1. Designing a Simple, Frenzic-Style Puzzle Game
    1. 1.1. Creating Frenzic
    2. 1.2. Introducing Formic
    3. 1.3. Exploring the Formic Code
      1. 1.3.1. Setting Up the Project
      2. 1.3.2. Coding the Game Object
      3. 1.3.3. Coding the View Controller
      4. 1.3.4. Coding the Background View
      5. 1.3.5. Adding iPhone-Specific Functionality
      6. 1.3.6. Activating and Deactivating Formic
      7. 1.3.7. Adding Memory Warnings
      8. 1.3.8. Saving and Restoring the Game
    4. 1.4. Summary
  7. 2. Mike Ash's Deep Dive Into Peer-to-Peer Networking
    1. 2.1. Planning a Simple Collaborative Game
    2. 2.2. Building the GUI
    3. 2.3. Networking the Game
      1. 2.3.1. Defining the Networking Goals
      2. 2.3.2. Designing the Network Code
      3. 2.3.3. Understanding Endianness
      4. 2.3.4. Coding the Networking
    4. 2.4. Integrating Networking and the GUI
    5. 2.5. Summary
  8. 3. Doing Several Things at Once: Performance Enhancements with Threading
    1. 3.1. Beginning to Write Threading Applications
      1. 3.1.1. Knowing When to Thread
      2. 3.1.2. Understanding Threading Basics
      3. 3.1.3. Avoiding Threading Pitfalls
    2. 3.2. Writing the Thread the Needle Application
      1. 3.2.1. Building Our Application
      2. 3.2.2. Creating a Thread
      3. 3.2.3. Creating a Worker Thread
      4. 3.2.4. Creating an Event Processing Loop
      5. 3.2.5. Implementing a Critical Section
      6. 3.2.6. Stopping Multiple Threads at Once
    3. 3.3. Summary
  9. 4. All Fingers and Thumbs: Multitouch Interface Design and Implementation
    1. 4.1. Looking at the iPhone's Capabilities
    2. 4.2. Designing for Multitouch
    3. 4.3. Exploring the Multitouch API
      1. 4.3.1. Handling Events
      2. 4.3.2. Recognizing Gestures
    4. 4.4. Implementing Multitouch Controls
      1. 4.4.1. Handling Touches
      2. 4.4.2. Deciding What Movement Means
      3. 4.4.3. Applying the Movement
      4. 4.4.4. Applying Weight and Inertia
      5. 4.4.5. Tying Up Loose Ends
    5. 4.5. Summary
  10. 5. Physics, Sprites, and Animation with the cocos2d-iPhone Framework
    1. 5.1. Getting Started with Game Programming
      1. 5.1.1. Introducing OpenGL ES
      2. 5.1.2. Introducing cocos2d and Chipmunk
    2. 5.2. Developing Arcade Hockey
      1. 5.2.1. Tracking the User's Finger
      2. 5.2.2. Detecting Collisions
      3. 5.2.3. Simulating 3D Lighting in 2D Space
    3. 5.3. Creating a Simple Application
      1. 5.3.1. Setting Up the Xcode Project
      2. 5.3.2. Setting the Scene
      3. 5.3.3. Creating the Game Layer
    4. 5.4. Summary
  11. 6. Serious Streaming Audio the Pandora Radio Way
    1. 6.1. Choosing to Develop for the iPhone
    2. 6.2. Introducing Pandora Radio's Technology
      1. 6.2.1. Grasping the Basics of Audio Development
      2. 6.2.2. Managing Complexity
      3. 6.2.3. Outlining Our Sample Application
      4. 6.2.4. Streaming Audio
      5. 6.2.5. Keeping Your Code Format Agnostic
      6. 6.2.6. Using Envelopes and Encoding
    3. 6.3. Designing Our Sample Application
    4. 6.4. Implementing the Player
      1. 6.4.1. AudioSession
      2. 6.4.2. AudioRequest
      3. 6.4.3. AudioFileStream
      4. 6.4.4. AudioQueue
      5. 6.4.5. AudioPlayer
    5. 6.5. Ending with a New Journey
      1. 6.5.1. Falling Behind in a Slow Network
      2. 6.5.2. Dropped Connections
      3. 6.5.3. Minimizing Gaps Between Songs
      4. 6.5.4. Resuming a Song
      5. 6.5.5. Improving Application Responsiveness
    6. 6.6. Finding Help Resources
    7. 6.7. Testing: Saving the Best for Last
    8. 6.8. Summary
  12. 7. Going the Routesy Way with Core Location, XML, and SQLite
    1. 7.1. Starting from Scratch
    2. 7.2. Assessing the Application Requirements
    3. 7.3. Creating the Routesy User Interface and Classes
    4. 7.4. Bringing Real-Time Predictions to Routesy
    5. 7.5. Adding Location-Based Information to Routesy
    6. 7.6. Putting the Finishing Touches on Routesy BART
    7. 7.7. Summary