s
menu
menu
Login  |  Register  |  Media Kit  |  Press  |  Site Map  |  Contact Us  |   Follow us at Twitter Become a Deitel Fan on Facebook Deitel on Google+  
Custom Search



Minimize
iPhone for Programmers Cover


ISBN: 013705842X
© 2010, pp. ~400

Order print and electronic versions now at Safari® Books Online. Order print versions from Amazon.com.

iPhone® App Development for ProgrammersMinimize

Overview
This 5-day, lecture-and-lab course (or 3-day, lecture-only course) based on iPhone for Programmers: An App-Driven Approach presents iPhone® app development with Objective-C, Cocoa and Xcode. Key topics include iPhone SDK 3, classes, objects, interfaces, inheritance, polymorphism, event-driven programming, graphical user interfaces (GUIs), exception handling, file processing, multithreading, generics and generic collections. Students create iPhone apps, understand object-oriented programming, learn to use various Cocoa frameworks and web services APIs, and participate in extensive hands-on laboratory assignments. 

Prerequisites

  • Familiarity with Mac OS X (students will need to work on a Mac to develop iPhone apps).
  • Experience working in a C-based object-oriented language such as Objective-C, C++, Java or C#.
  • Helpful if you’ve done some event-driven programming, though you’ll learn it in the course.

Course Topics

Introduction to iPhone App Development

  • iPhone Overview
  • Key New iPhone 3GS and OS 3.x Features and Enhancements
  • iPhone OS 3.x
  • Objective-C Programming Language
  • Cocoa Frameworks
  • New iPhone SDK 3 Features
  • Xcode Toolset
  • Test-Driving the Painter App in the iPhone Simulator

iPhone App Store and App Business Issues

  • iPhone Developer Program: Setting up Your Profile for Testing and Submitting Apps
  • Setting Up Your iPhone Development Team
  • Getting an iPhone Development Certificate
  • Registering Devices for Testing
  • Creating App IDs
  • Creating a Provisioning Profile
  • Using the Provisioning Profile to Install an App on an iPhone or iPod Touch
  • Submitting Your App for Distribution
  • Testing Your App

Introduction to Xcode, Cocoa and Interface Builder

  • Introduction to the Xcode IDE and Interface Builder
  • Navigating Xcode
  • Creating a new project
  • Displaying a picture using an Image View in Interface Builder
  • Displaying text using a Label in Interface Builder
  • Editing properties of GUI components
  • Compiling your app and executing it in the iPhone simulator

Tip Calculator App : Introducing Objective-C Programming

  • Introduction to Objective-C and object-oriented programming
  • Objects, classes, interfaces, inheritance, data types, operators, control statements, keywords
  • Declaring variables to programmatically interact with GUI components
  • Using Interface Builder to visually “connect” variables with GUI components
  • Declaring and implementing methods
  • Using message passing to invoke an object’s methods
  • Event handling
  • Dragging-and-dropping in Interface Builder (linking GUI component to methods)

Favorite Twitter® Searches App: Collections and Cocoa GUI Programming

  • Views
  • Scroll Views
  • Buttons
  • Storing key-value pairs in an NSDictionary
  • Maintaining Buttons in an NSArray
  • Using NSMutableArray and NSMutableDictionary
  • Modifying the GUI in response to user interactions
  • Programming Button sizes and positions and specifying their target objects and actions

Flag Quiz Game App: Controllers and the Utility Application Template

  • Utility Application template: autogenerating interface elements for changing between views
  • Frontside and flipside views
  • View Controllers—single view and subviews
  • Responding to view events
  • Info Buttons
  • Done Buttons
  • Segmented Controls for presenting a series of choices
  • Buttons and radio buttons
  • Memory management in Cocoa using retain counting
  • NSObject
  • Convenience constructors: stringWithFormat:

Spot-On Game App: Using UIView and Detecting Touches

  • Using UIImageView to display a custom image
  • Implementing touch handling
  • Processing multi-touch events
  • UIView methods for getting touch information from the iPhone
  • Retrieving touch coordinates
  • Using the Core Animation framework
  • Using the built-in animation methods for easy access to basic animations
  • Accessing the CALayer (Core Animation Layer)
  • Adding sounds using the AVFoundation framework
  • Using AVAudioPlayers to play back .wav files stored on the iPhone
  • Using AVAudioPlayer objects to control playback of .wav files
  • Using NSObject method perform-Selector:withObject:afterDelay: to call functions

Cannon Game App: Animation with NSTimer and Handling Drag Events

  • Performing manual animations by responding to NSTimer events
  • Initializing an NSTimer object
  • Simple collision detection
  • Using structures to group two points that represent the endpoints of a line
  • Using Core Graphics framework functionality to draw lines and text, change line thicknesses, change colors, and save and restore graphics contexts

Painter App: Using Controls with a UIView

  • Creating a custom class containing an array of points, a UIColor object and a numeric line-width value
  • Placing a unique key in an NSMutableDictionary
  • Adding new points to the class
  • Transferring data from a dictionary to an array
  • Using the MainView display
  • Setting line characteristics in FlipsideView
  • Sliders
  • Using a UIView’s backgroundColor property
  • Loading values from the Sliders and passing them to the MainView

Address Book App: Tables and UINavigationController

  • Tables: UITableView
  • UITableViewCells: editable and non-editable
  • Reusing UITableViewCells in UITableViews to save memory and improve performance
  • UITableView’s dequeueReusableCellWithIdentifier: method
  • UIViewControllers
  • Using the navigation bar to add Buttons
  • UINavigationItems
  • RootViewController
  • Showing multiple views
  • Using UIKeyboardTypes provide the user with the correct keyboard for the type of information being entered

Route Tracker App: Map Kit and Core Location (GPS and Compass)

  • Displaying a map using the Map Kit framework’s MKMapView
  • Rotating, zooming and drawing to the map
  • Displaying a route by drawing directly to the MKMapView
  • Using the Core Location framework to get the user’s location and compass heading
  • Using CLLocationManager to monitor the iPhone’s location and compass heading and send messages to the Controller class when either reading is updated
  • Using a CLLocation object to provide the iPhone’s latitude, longitude and altitude at a specific time
  • Receiving a CLLocation from the CLLocationManager to draw the route line to the new location
  • Using the CLLocation class to calculate the distance between two CLLocations and calculate the user’s total distance traveled in a route
  • CLHeading object
  • Rotating the map’s orientation to the direction the user is facing
  • Initializing an NSDate object to the current time
  • Calculating the time since tracking began and using that time to calculate the user’s speed

Slideshow App: Photos and iPod Library Access

  • UITableView and custom UITableViewCells
  • UITableView with standard UITableViewCells to display images
  • Using a UINavigationController with a UIToolbar to navigate between screens
  • Using UIBarButtonItems to switch between views
  • Photo API and image pickers
  • Creating a UIImagePickerController to add photos from the photo library
  • Using MPMediaPickerController for iPod library access
  • Storing songs from the iPod music library in an MPMediaItemCollection
  • Playing songs using the MPMusicPlayerController
  • Using UIActionSheet for image transitions
  • Using enum to define the different transition styles

Enhanced Slideshow App: Saving Data and Playing Video

  • Playing videos from the iPhone’s photo library using an MPMoviePlayerController
  • Settinga  UIImagePickerController’s mediaTypes property
  • Adding Core Animation image transition
  • Using UIViewAnimationTransitionFlipFromRight animation transitions
  • Object serialization using a subclass of the NSCoder abstract class
  • Archiving
  • NSCoder
  • NSKeyedArchiver
  • Object graph
  • Deserialization (decoding or unarchiving) using a subclass of NSCoder

Voice Recorder App: Audio Recording and Playback

  • Using the AV Foundation framework to record and play back sounds
  • Accessing the AVAudioSession object
  • AVAudioSessionCategoryRecord to silence audio
  • AVAudioSessionCategoryPlayback to play back recordings and to force audio to play even when the Ring/Silent switch is set to silent
  • Playback while the iPhone is locked
  • NSPredicate class and regular expressions
  • E-mailing a saved audio recording by converting the saved file to an NSData object, then passing that as an attachment to an MFMailComposeViewController

Enhanced Address Book App: Managing and Transferring Persistent Data

  • Core Data framework
  • Model-View-Controller design pattern
  • Core Data data model (known as a managed object model)
  • Model objects (entities)
  • Attributes
  • Managed Object Context, represented by class NSManagedObjectContext
  • Representing entities using class NSEntityDescription
  • Using class NSManagedObject to create a new object representing a data object
  • Representing data using an NSManagedObject received from an NSEntityDescription
  • Manipulating an object in Objective-C code and inserting it back into the data model
  • Retrieving information using fetch requests (represented by class NSFetchRequest)
  • Using a FetchedRequestController to update the Core Data stored information and the UITableView displaying the contact information
  • Using the Game Kit framework to interact with other iPhones via Bluetooth
  • Using the GKPeerPickerController class to create a view displaying nearby iPhones running the Enhanced Address Book app
  • Using a GKSession to specify whether or not the iPhone is receiving or transmitting data
  • Using NSKeyedArchiver to serialize the NSMutableArray representing a contact’s information to an NSData object that we can transmit between iPhones using GKSession’s sendDataToAllPeers:withDataMode: method.

Twitter® Discount Airfares App: Internet Enabled Applications

  • Connecting to Web Services using class NSURLConnection.
  • Constructing a URL and passing it to NSURLConnection to handle the networking issues
  • Using NSURLConnection to inform a delegate object when events occur, such as receiving a response from the server, an authentication request or when the connection ends
  • Receiving XML/Atom feeds
  • Parsing XML using class NSXMLParser
  • Storing parsed data in an NSMutableArray
  • Displaying parsed data in a UITableView with custom UITableViewCells
  • Displaying web pages using a UIWebView

Price

  • Lecture fee:
    • 3-day Lecture Only Course: $12,995 for up to 20 students maximum. Add $1,000 for international or custom classes.
    • 5-day Lecture and Lab Course: $15,995 for up to 20 students maximum. Add $1,000 for international or custom classes.
  • Client purchases the books, at its own expense, directly from Pearson (the publisher) at the discounted Deitel rate.
    • Materials: iPhone for Programmers (ISBN: 013705842X)
  • Instructor Travel Reimbursement (if travel is required).

 

Print  

Deitel Dive-Into(R) Series Corporate Training

Discounts on SafariBooksOnline.com subscriptions

foot
Update :: May 16, 2012