Learning Center
Plans & pricing Sign in
Sign Out



More information from

iPhone SDK 3 Programming: Advanced Mobile Development for
Apple iPhone and iPod touch

Description:    Get the expert guidance you need to begin building native applications for Apple's new iPhone 3G
                as well as the iPod Touch

                Apple's iPhone is the hottest mobile device on the planet. More than one million iPhone 3G phones
                were sold in the first three days of release and millions more are sure to be in the hands of iPhone
                fans each year. Apple's iPhone SDK has been updated and includes more than one thousand new
                APIs that developers will want to get their hands on.
                iPhone SDK 3 Programming shows you how to build great applications for the iPhone and iPod
                Touch. Inside, veteran mobile developer and Bell Labs scientist Maher Ali begins with a foundational
                introduction to Objective-C and Cocoa programming, and then guides you through building
                programs with Apple's iPhone SDK 3.

                - Covers the complete application development process, and highlights all the key device features
                including the camera, location awareness, and more
                - Completely revised and redesigned with more than 100 new pages of content
                - iPhone's new SDK release contains more than one thousand new APIs you will want to use right
                - Includes a focused introduction to the Objective-C language and Cocoa frameworks that new
                iPhone developers need

                With this advanced resource, you'll get the expert guidance you need to begin building native
                applications for Apple's new iPhone 3G as well as the iPod Touch.

Contents:       Preface

                1 Getting Started
                1.1 SDK and IDE Basics
                1.1.1 Obtaining and installing the SDK
                1.1.2 Creating a project
                1.1.3 Familiarizing yourself with the IDE
                1.1.4 Looking closely at the generated code
                1.2 Creating Interfaces
                1.2.1 Interface Builder
                1.3 Using the Debugger
                1.4 Getting More Information
                1.5 Summary

                2 Objective-C and Cocoa
                2.1 Classes
                2.1.1 Class declaration
                2.1.2 How do I use other declarations?
                2.1.3 Class definition
                2.1.4 Method invocation and definition
                2.1.5 Important types
                2.1.6 Important Cocoa classes
                2.2 Memory Management
                2.2.1 Creating and deallocating objects
                2.2.2 Preventing memory leaks
                2.3 Protocols
                2.3.1 Protocol conformance
                2.4 Properties
                2.4.1 Property declaration
2.4.2 Circular references
2.5 Categories
2.6 Posing
2.7 Exceptions and Errors
2.7.1 Exceptions
2.7.2 Errors
2.8 Key-value coding (KVC)
2.8.1 An example illustrating KVC
2.9 Multithreading
2.10 Notifications
2.11 The Objective-C Runtime
2.11.1 Required header files
2.11.2 The NSObject class
2.11.3 Objective-C methods
2.11.4 Examples
2.12 Summary

3 Collections
3.1 Arrays
3.1.1 Immutable copy
3.1.2 Mutable copy
3.1.3 Deep copy
3.1.4 Sorting an array
3.2 Sets
3.2.1 Immutable sets
3.2.2 Mutable sets
3.2.3 Additional important methods
3.3 Dictionaries
3.3.1 Additional important methods
3.4 Summary

4 Anatomy of an iPhone Application
4.1 Hello World Application
4.1.1 Create a main.m file
4.1.2 Create the application delegate class
4.1.3 Create the user interface subclasses
4.2 Building the Hello World Application
4.3 Summary

5 TheView
5.1 View Geometry
5.1.1 Useful geometric type definitions
5.1.2 The UIScreen class
5.1.3 The frame and center properties
5.1.4 The bounds property
5.2 The View Hierarchy
5.3 The Multitouch Interface
5.3.1 The UITouch class
5.3.2 The UIEvent class
5.3.3 The UIResponder class
5.3.4 Handling a swipe
5.3.5 More advanced gesture recognition
5.4 Animation
5.4.1 Using the UIView class animation support
5.4.2 Sliding view
5.4.3 Flip animation
5.4.4 Transition animation
5.5 Drawing
5.6 Summary
6 Controls
6.1 The Foundation of all Controls
6.1.1 UIControl attributes
6.1.2 Target-action mechanism
6.2 The Text Field
6.2.1 Interacting with the keyboard
6.2.2 The delegate
6.2.3 Creating and working with a UITextField
6.3 Sliders
6.4 Switches
6.5 Buttons
6.6 Segmented Controls
6.7 Page Controls
6.8 Date Pickers
6.9 Summary

7 View Controllers
7.1 The Simplest View Controller
7.1.1 The view controller
7.1.2 The view
7.1.3 The application delegate
7.1.4 Summary: creating a simple MVC application
7.2 Radio Interfaces
7.2.1 A detailed example
7.2.2 Some comments on tab bar controllers
7.3 Navigation Controllers
7.3.1 A detailed example
7.3.2 Customization
7.4 Modal View Controllers
7.4.1 A detailed example
7.5 Summary

8 Special-Purpose Views
8.1 Picker View
8.1.1 The delegate
8.1.2 An example
8.2 Progress Views
8.2.1 An example
8.3 Scroll View
8.4 Text View
8.4.1 The delegate
8.4.2 An example
8.5 Alert View
8.6 Action Sheet
8.7 Web View
8.7.1 A simple web view application
8.7.2 Viewing local files
8.7.3 Evaluating JavaScript
8.7.4 The web view delegate
8.8 Summary

9 TableView
9.1 Overview
9.2 The Simplest Table View Application
9.3 A Table View with both Images and Text
9.4 A Table View with Section Headers and Footers
9.5 A Table View with the Ability to Delete Rows
9.6 A Table View with the Ability to Insert Rows
9.7 Reordering Table Rows
9.8 Presenting Hierarchical Information
9.8.1 Detailed example
9.9 Grouped Table Views
9.10 Indexed Table Views
9.11 Dynamic Table Views
9.12 Whitening Text in Custom Cells
9.13 Summary

10 File Management
10.1 The Home Directory
10.2 Enumerating a Directory
10.3 Creating and Deleting a Directory
10.4 Creating Files
10.5 Retrieving and Changing Attributes
10.5.1 Retrieving attributes
10.5.2 Changing attributes
10.6 Working with Resources and Low-level File Access
10.7 Summary

11 Working with Databases
11.1 Basic Database Operations
11.1.1 Opening, creating, and closing databases
11.1.2 Table operations
11.2 Processing Row Results
11.3 Prepared Statements
11.3.1 Preparation
11.3.2 Execution
11.3.3 Finalization
11.3.4 Putting it together
11.4 User-defined Functions
11.5 Storing BLOBs
11.6 Retrieving BLOBs
11.7 Summary

12 XML Processing
12.1 XML and RSS
12.1.1 XML
12.1.2 RSS
12.1.3 Configuring the XCode project
12.2 Document Object Model (DOM)
12.3 Simple API for XML (SAX)
12.4 An RSS Reader Application
12.5 Putting It Together
12.6 Summary

13 Location Awareness
13.1 The Core Location Framework
13.1.1 The CLLocation class
13.2 A Simple Location-aware Application
13.3 Google Maps API
13.3.1 A geocoding application
13.4 A Tracking Application with Maps
13.5 Working with ZIP Codes
13.6 Working with the Map Kit API
13.6.1 The MKMapView class
13.6.2 The MKCoordinateRegion structure
13.6.3 The MKAnnotation protocol
13.6.4 The MKAnnotationView class
13.6.5 The MKUserLocation class
13.6.6 The MKPinAnnotationView class
13.7 Summary

14 Working with Devices
14.1 Working with the Accelerometer
14.1.1 Basic accelerometer values
14.1.2 Example
14.2 Working with Audio
14.2.1 Playing short audio files
14.2.2 Recording audio files
14.2.3 Playing audio files
14.2.4 Using the media picker controller
14.2.5 Searching the iPod library
14.3 Playing Video
14.3.1 Using the MPMoviePlayerController class
14.4 Accessing Device Information
14.5 Taking and Selecting Pictures
14.5.1 Overall approach
14.5.2 Detailed example
14.6 Monitoring Device Battery
14.6.1 Battery level
14.6.2 Battery state
14.6.3 Battery state and level notifications
14.6.4 Putting it together
14.7 Accessing the Proximity Sensor
14.7.1 Enabling proximity monitoring
14.7.2 Subscribing to proximity change notification
14.7.3 Retrieving the proximity state
14.8 Summary

15 Internationalization
15.1 String Localization
15.2 Date Formatting
15.2.1 Custom formats
15.3 Number Formatting
15.4 Sorted List of Countries
15.5 Summary

16 Custom UI Components
16.1 Text Field Alert View
16.2 Table Alert View
16.3 Progress Alert View
16.4 Summary

17 Advanced Networking
17.1 Determining Network Connectivity
17.1.1 Determining network connectivity via EDGE or GPRS
17.1.2 Determining network connectivity in general
17.1.3 Determining network connectivity via WiFi
17.2 Uploading Multimedia Content
17.3 Computing MD5 Hash Value
17.4 Multithreaded Downloads
17.4.1 The application
17.5 Push Notification
17.5.1 Configuring push notification on the server
17.5.2 Configuring the client
17.5.3 Coding the client
17.5.4 Coding the server
17.6 Sending Email
17.6.1 Using the mail composition view controller
17.7 Summary

18 Working with the Address Book Database
18.1 Introduction
18.2 Property Types
18.3 Accessing Single-Value Properties
18.3.1 Retrieving single-value properties
18.3.2 Setting single-value properties
18.4 Accessing Multi-Value Properties
18.4.1 Retrieving multi-value properties
18.4.2 Setting multi-value properties
18.5 Person and Group Records
18.6 Address Book
18.7 Multithreading and Identifiers
18.8 Person Photo Retriever Application
18.9 Using the ABUnknownPersonViewController Class
18.10Using the ABPeoplePickerNavigationController Class
18.11Using the ABPersonViewController Class
18.12Using the ABNewPersonViewController Class

19 Core Data
19.1 Core Data Application Components
19.2 Key Players
19.2.1 Entity
19.2.2 Managed object model
19.2.3 Persistent store coordinator
19.2.4 Managed object context
19.2.5 Managed object
19.2.6 Summary
19.3 Using the Modeling Tool
19.4 Create, Read, Update and Delete (CRUD)
19.4.1 Create
19.4.2 Delete
19.4.3 Read and update
19.5 Working with Relationships
19.6 A Search Application
19.6.1 The UISearchDisplayController class
19.6.2 Main pieces
19.7 Summary

20 Undo Management
20.1 Understanding Undo Management
20.1.1 Basic idea
20.1.2 Creating an undo manager
20.1.3 Registering an undo operation
20.1.4 Hooking into the undo management mechanism
20.1.5 Enabling shake to edit behavior
20.2 Detailed Example
20.2.1 The view controller class
20.2.2 First responder status
20.2.3 Editing mode and the NSUndoManager instance
20.2.4 Registering undo actions
20.3 Wrapping Up
20.4 Summary

21 Copy and Paste
21.1 Pasteboards
            21.1.1 System pasteboards
            21.1.2 Creating pasteboards
            21.1.3 Properties of a pasteboard
            21.2 Pasteboard Items
            21.2.1 Pasteboard items
            21.2.2 Manipulating pasteboard items
            21.3 The Editing Menu
            21.3.1 The standard editing actions
            21.3.2 The UIMenuController class
            21.3.3 The role of the view controller
            21.4 Putting it Together
            21.4.1 The image view
            21.4.2 The view controller
            21.5 Summary


            A Saving and Restoring App State

            B Invoking External Applications

            C App Store Distribution

            D Using XCode
            D.1 XCode Shortcuts
            D.2 Creating Custom Templates
            D.2.1 Changing template macro definitions
            D.3 Build-Based Configurations
            D.4 Using Frameworks

            E Unit Testing
            E.1 Adding a Unit Test Target
            E.2 Adapting to Foundation
            E.3 The Model
            E.4 Writing Unit Tests for the Employee Class
            E.4.1 The setUp and tearDown methods
            E.4.2 Testing for equality
            E.4.3 Testing for nullity
            E.5 Adding a Build Dependency
            E.6 Running the Tests

            F Working with Interface Builder
            F.1 National Debt Clock Application
            F.1.1 Creating the project
            F.1.2 Creating the view controller class
            F.1.3 The application delegate class
            F.1.4 Building the UI
            F.2 Toolbar Application
            F.2.1 Writing code
            F.2.2 Building the UI
            F.2.3 Putting it together

            References and Bibliography


Ordering:   Order Online -

            Order by Fax - using the form below
Order by Post - print the order form below and sent to

             Research and Markets,
             Guinness Centre,
             Taylors Lane,
             Dublin 8,
                                                          Page 1 of 2

Fax Order Form
To place an order via fax simply print this form, fill in the information below and fax the completed form to 646-607-
1907 (from USA) or +353-1-481-1716 (from Rest of World). If you have any questions please visit

Order Information
Please verify that the product information is correct.

               Product Name:           iPhone SDK 3 Programming: Advanced Mobile Development for Apple iPhone
                                       and iPod touch
               Web Address:  
               Office Code:            OC8HPLSTTNTVU

Product Format
Please select the product format and quantity you require:


               Hard Copy:                EURO €34.00 + Euro €25.00 Shipping/Handling

Contact Information
Please enter all the information below in BLOCK CAPITALS

      Title:                  Mr              Mrs            Dr         Miss              Ms         Prof

      First Name:                                                 Last Name:

      Email Address: *

      Job Title:




      Postal / Zip Code:


      Phone Number:

      Fax Number:

     * Please refrain from using free email accounts when ordering (e.g. Yahoo, Hotmail, AOL)
                                                              Page 2 of 2

Payment Information
Please indicate the payment method you would like to use by selecting the appropriate box.

          Pay by credit card:                     American Express

                                                  Diners Club

                                                  Master Card

                                           Cardholder's Name

                                           Cardholder's Signature

                                           Expiry Date

                                           Card Number

                                           CVV Number

                                           Issue Date
                                           (for Diners Club only)

          Pay by check:                    Please post the check, accompanied by this form, to:

                                           Research and Markets,
                                           Guinness Center,
                                           Taylors Lane,
                                           Dublin 8,

                                           Please transfer funds to:
          Pay by wire transfer:
                                           Account number                   833 130 83
                                           Sort code                        98-53-30
                                           Swift code                       ULSBIE2D
                                           IBAN number                      IE78ULSB98533083313083
                                           Bank Address                 Ulster Bank,
                                                                        27-35 Main Street,
                                                                        Co. Dublin,

     If you have a Marketing Code please enter it below:

           Marketing Code:

      Please note that by ordering from Research and Markets you are agreeing to our Terms and Conditions at

                                              Please fax this form to:
                                  (646) 607-1907 or (646) 964-6609 - From USA
                          +353 1 481 1716 or +353 1 653 1571 - From Rest of World

To top