 |
 |
 |
Deitel Home About Deitel & Associates, Inc. Opportunities for Contract Trainers Media Kit Press Deitel SiteMap Deitel Gear at CafePress.com
Apps
Resource Centers
Training On-Site, Instructor-Led Training Training Overview Course Catalog and Pricing GSA Course Catalog and Pricing C Programming Curriculum Overview CPlusPlus Programming Curriculum Overview Java Programming Curriculum Overview Internet & Web Programming Curriculum Overview iPhone App Development for Programmers Visual Basic Programming Curriculum Overview Visual C# Programming Curriculum Overview Visual C++ Programming Curriculum Overview Self-Paced Training (DVD/Online)
Video
Books LiveLessons Video-Based Training Android Android for Programmers Android How to Program C C How to Program, 7/e C How to Program, 6/e C How to Program, 5/e Past Editions C How to Program, 3/e C How to Program, 2/e C How to Program, 4/e C++ C++ How to Program, 8/e, Early Objects Version C++ How to Program, 7/e C++ How to Program, Late Objects Version, 7/e C++ How to Program, 6/e C++ for Programmers Visual C++ 2008 How to Program, Second Edition Small C++ How to Program, 5/e Simply C++, 1/e Past Editions C++ How to Program, 5/e C++ How to Program, 4/e The Complete C++ Training Course, 4/e C++ In the Lab, 4/e C++ How to Program, 3/e The Complete C++ Training Course, 3/e C++ In the Lab, 3/e C++ How to Program, 2/e The Complete C++ Training Course, 2/e Visual C++ .NET A Managed Code Approach, 1/e Getting Started with Visual C++ 6, 1/e Visual C++ .NET How to Program, 1/e C# Visual C# 2010 How to Program C# 2010 for Programmers, 4/e Visual C# 2008 How to Program, 3/e C# 2008 for Programmers, 3/e Visual C# 2005 How to Program, 2/e C# For Programmers, 2/e Simply C#, 1/e Past Editions C# A Programmer's Introduction, 1/e C# for Experienced Programmers, 1/e C# How to Program, 1/e Internet/Web/Scripting Internet & World Wide Web How to Program, 5/e Internet & World Wide Web How to Program, 4/e JavaScript for Programmers Ajax, RIAs and Web Development for Programmers Internet & World Wide Web How to Program, 3/e Perl How to Program, 1/e Python How to Program, 1/e Web Services A Technical Introduction, 1/e Past Editions Internet & World Wide Web How to Program, 2/e Internet & World Wide Web How to Program, 1/e Wireless Internet & Mobile Business Training, 1/e e-Business & e-Commerce Training Course, 1/e Wireless Internet & Mobile Business How to Program e-Business & e-Commerce How to Program, 1/e e-Business & e-Commerce for Managers, 1/e iPhone iPhone for Programmers: An-App Driven Approach Java Java How to Program, 9/e, Early Objects Version Java for Programmers, 2/e Java How to Program, 8/e, Early Objects Version Java How to Program, 8/e, Late Objects Version Java for Programmers Java How to Program, 7/e Java How to Program, 6/e Simply Java Programming, 1/e Small Java How to Program, 6/e Java Web Services for Experienced Programmers, 1/e Past Editions Java How to Program, 5/e Java Student Solutions Manual, 5/e The Complete Java 2 Training Course, 5/e Java in the Lab, 5/e Java How to Program, 4/e The Complete Java Training Course, 4/e Java in the Lab, Java How to Program, 4/e Java How to Program, 3/e The Complete Java 2 Training Course, 3/e Java How to Program, 2/e The Complete Java Training Course, 2/e Java How to Program With Intro to Visual J++, 1/e Advanced Java 2 Platform How to Program, 1/e Operating Systems Operating Systems, 3/e Visual Basic Visual Basic 2010 How to Program Simply Visual Basic 2010 Visual Basic 2008 How to Program Simply Visual Basic 2008, 3/e Visual Basic 2005 for Programmers, 2/e Visual Basic 2005 How to Program, 3/e Simply Visual Basic 2005, 2/e Past Editions Simply Visual Basic .NET 2003, 1/e Simply Visual Basic .NET, 1/e Visual Basic. NET How to Program, 2/e Visual Basic .NET for Experienced Programmers, 1/e Visual Basic 6 How to Program, 1/e XML XML How to Program, 1/e Ancillaries Errata Translations CourseSmart Online Books for College Courses Web 2 eBook Dive Into Web 2.0 eBook Overview Contents Objectives and Outline Introduction What Is Web 2.0 Search Content Networks User-Generated Content Blogging Social Networking Social Media Tagging Social Bookmarking Software Development Rich Internet Applications (RIA) Web Services, Mashups, Widgets, Gadgets Location-Based Services XML, RSS, Atom, JSON and VoIP Web 2.0 Monetization Models Web 2.0 Business Models Future of the Web Wrap-Up Where to Go for More Web 2.0 Information Web 2.0 Bibliography Web 2.0 Glossary Index About Deitel About Internet & World Wide Web How to Program
Store
FAQs
Newsletter Subscribe to the Deitel Buzz Online Newsletter Current Issue Newsletter Archive
Tutorials Free tutorials and articles
|
|
 |
|
Training >> On-Site, Instructor-Led Training >> iPhone App Development for Programmers |
| |
|
|
|
| iPhone® App Development for Programmers |  |
| 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).
| |
 |


|
|
|
|
|  | |
|