contents
preface
acknowledgments
about this book
Part 1 Introducing iPhone programming
- 1 Introducing the iPhone
- 1.1 iPhone core specifications
- 1.2 How the iPhone compares to the industry
- 1.3 How the iPhone is unique
- 1.4 Understanding iPhone input and output
- 1.5 Summary
- 2 Web development or the SDK?
- 2.1 Comparing the two programming styles
- 2.2 A central philosophy: the continuum of programming
- 2.3 Advantages and disadvantages
- 2.4 Stand-alone iPhone development
- 2.5 Integrated iPhone development
- 2.6 Summary
Part 2 Designing web pages for the iPhone
- 3 Redeveloping web pages for the iPhone
- 3.1 The iPhone viewport
- 3.2 Making your web pages iPhone friendly
- 3.3 Making your web pages iPhone optimized
- 3.4 Manipulating iPhone chrome
- 3.5 Capturing iPhone events
- 3.6 Redisplaying web pages
- 3.7 Supporting non-iPhone users
- 3.8 Summary
- 4 Advanced WebKit and textual web apps
- 4.1 Introducing the WebKit
- 4.2 CSS transforms, transitions, and animations
- 4.3 The WebKit database
- 4.4 Adjusting the chrome
- 4.5 Recognizing touches and gestures
- 4.6 Recognizing orientation
- 4.7 Upcoming features: CSS gradients and masks
- 4.8 Summary
- 5 Using iUI for web apps
- 5.1 Creating your own iPhone UI
- 5.2 Getting ready for iUI
- 5.3 Developing with iUI
- 5.4 Creating an iUI back end
- 5.5 Other iUI tips and tricks
- 5.6 Integrating iUI with other libraries
- 5.7 Summary
- 6 Using Canvas for web apps
- 6.1 Getting ready for Canvas
- 6.2 Drawing paths
- 6.3 Drawing shapes
- 6.4 Creating styles: colors, gradients, and lines
- 6.5 Modifying composition and clipping
- 6.6 Transforming and restoring
- 6.7 Incorporating images, patterns, and text
- 6.8 Putting it together
- 6.9 Applying animation
- 6.10 Summary
- 7 Building web apps with Dashcode
- 7.1 An introduction to Dashcode
- 7.2 Writing Dashcode programs
- 7.3 Integrating Dashcode with existing libraries
- 7.4 Summary
- 8 Debugging iPhone web pages
- 8.1 Using Apache locally
- 8.2 Debugging with your desktop browser
- 8.3 Debugging with your iPhone
- 8.4 Profiling for the iPhone
- 8.5 Summary
- 9 SDK programming for web developers
- 9.1 An introduction to C’s concepts
- 9.2 An introduction to object-oriented programming
- 9.3 The Model-View-Controller (MVC) pattern
- 9.4 Summary
Part 3 Learning SDK fundamentals
- 10 Learning Objective-C and the iPhone OS
- 10.1 Getting ready for the SDK
- 10.2 Introducing Objective-C
- 10.3 Introducing the iPhone OS
- 10.4 The iPhone OS’s methods
- 10.5 Summary
- 11 Using Xcode
- 11.1 Introducing Xcode
- 11.2 Creating a first project in Xcode: Hello, World!
- 11.3 Creating a new class in Xcode
- 11.4 Other Xcode functionality
- 11.5 Summary
- 12 Using Interface Builder
- 12.1 An introduction to Interface Builder
- 12.2 Creating a first project in Interface Builder: pictures and the web
- 12.3 Building connections in Interface Builder
- 12.4 Other Interface Builder functionality
- 12.5 Summary
- 13 Creating basic view controllers
- 13.1 The view controller family
- 13.2 The bare view controller
- 13.3 The table view controller
- 13.4 Summary
- 14 Monitoring events and actions
- 14.1 An introduction to events
- 14.2 A touching example: the event reporter
- 14.3 Other event functionality
- 14.4 An introduction to actions
- 14.5 Adding a button to an application
- 14.6 Other action functionality
- 14.7 Introducing notifications
- 14.8 Summary
- 15 Creating advanced view controllers
- 15.1 The tab bar view controller
- 15.2 The navigation controller
- 15.3 Using the flipside controller
- 15.4 Modal view controllers
- 15.5 Summary
Part 4 Programming with the SDK Toolkit
- 16 Data: actions, preferences, files, SQLite, and addresses
- 16.1 Accepting user actions
- 16.2 Maintaining user preferences
- 16.3 Opening files
- 16.4 Using SQLite
- 16.5 Accessing the Address Book
- 16.6 Summary
- 17 Positioning: accelerometers and location
- 17.1 The accelerometer and orientation
- 17.2 The accelerometer and movement
- 17.3 The accelerometer and gestures
- 17.4 All about Core Location
- 17.5 Summary
- 18 Media: images and sounds
- 18.1 An introduction to images
- 18.2 Drawing simple images with Core Graphics
- 18.3 Accessing photos
- 18.4 Collage: an image example
- 18.5 Using the Media Player framework
- 18.6 Playing sounds manually
- 18.7 Summary
- 19 Graphics: Quartz, Core Animation, and OpenGL
- 19.1 An introduction to Quartz 2D
- 19.2 The Quartz context
- 19.3 Drawing paths
- 19.4 Setting the graphic state
- 19.5 Advanced drawing in Quartz
- 19.6 Drawing on a picture: an example
- 19.7 An introduction to Core Animation
- 19.8 An introduction to OpenGL
- 19.9 Summary
- 20 The web: web views and internet protocols
- 20.1 The hierarchy of the internet
- 20.2 Low-level networking
- 20.3 Working with URLs
- 20.4 Using UIWebView
- 20.5 Parsing XML
- 20.6 POSTing to the web
- 20.7 Accessing the social web
- 20.8 Summary
 
appendix A iPhone OS class reference
appendix B External sources and references
appendix C Publishing your SDK program
index