Learn your way! Get started

iOS Dev Using Objective-C: Fundamentals

with expert David Solberg


Course at a glance

Included in these subscriptions:

  • Dev & IT Pro Video
  • Dev & IT Pro Power Pack

Release date 5/18/2012
Level Intermediate
Runtime 9h 40m
Closed captioning N/A
Transcript N/A
eBooks / courseware N/A
Hands-on labs N/A
Sample code Included
Exams Included


Enterprise Solutions

Need reporting, custom learning tracks, or SCORM? Learn More



Course description

This course provides an introduction into the basics of iOS programming using Objective-C. This course is ideal for a programmer who is familiar with other programming languages and wants to start developing for the iPhone and iPad. In this course, you will learn how to use the Xcode IDE to write code along with the built-in Interface Builder to drag and drop interface elements into views. We will cover how to work with Objective-C and Cocoa design patterns. You will learn how to use navigation and tab bar controllers and how to make your own table views to navigate data. Finally, we will discuss debugging and testing using Apples tools.

Prerequisites

A general understanding of programming using Xcode on a Mac.

Learning Paths

This course is part of the following LearnNowOnline SuccessPaths™:
iOS Mobile Development

Meet the expert

David Solberg has been developing iOS applications for several years for both consumers and enterprises. He has multiple applications in the App Store in addition to numerous private applications for internal business use. He is co-organizer of the Twin Cities, Minnesota, Meetup group for iOS developers. In addition to his many years training people to use technology, David has architected online assessment systems.

Course outline



Module 1

Overview (26:11)
  • Introduction (01:17)
  • Overview (00:54)
  • Why Go Native with iOS? (03:30)
  • Making the decision (01:39)
  • Xcode IDE (00:48)
  • Xcode Package Contents (01:14)
  • Xcode Overview (00:52)
  • Performance Tools (00:45)
  • iOS Simulator (01:24)
  • Simulator Features (01:05)
  • Simulator simulations (01:04)
  • Simulator Limitations (00:48)
  • Running on Devices (01:11)
  • Objective-C (01:07)
  • Demo: Xcode (01:00)
  • Demo: Add a New Project (03:38)
  • Demo: Storyboard File (02:52)
  • Demo: Launching App (00:38)
  • Summary (00:15)
An in Depth Look at XCode (34:28)
  • Introduction (00:37)
  • Demo: Xcode in depth (00:36)
  • Demo: Xcode Interface (01:53)
  • Demo: Application Folder (01:55)
  • Demo: Storyboard (02:11)
  • Demo: Support Files (02:57)
  • Demo: Build Project (00:41)
  • Demo: Main Code Area (01:18)
  • Demo: Project & Target Window (04:55)
  • Demo: Info Display (00:13)
  • Demo: Build Settings (01:45)
  • Demo: Build Phases (01:31)
  • Demo: Build Rules (00:11)
  • Demo: View Source Control (01:57)
  • Demo: Utility Toolbar (02:21)
  • Demo: User Interfaces (03:14)
  • Demo: Organizer (01:50)
  • Demo: File System (04:01)
  • Summary (00:15)

Module 2

Interface Builder (15:37)
  • Introduction (00:36)
  • MVC Philosophy (00:57)
  • MVC Applied (00:32)
  • Resistance is Futile (00:53)
  • Storyboards vs. Individuals (01:57)
  • Demo: Interface Builder (02:20)
  • Demo: Create More Views (01:19)
  • Demo: View Controller (03:19)
  • Demo: Simulated Metrics (02:05)
  • Demo: Trigger Events (01:14)
  • Summary (00:20)
Adding Subviews (26:36)
  • Introduction (00:34)
  • Interface Builder Structure (00:39)
  • Cocoa Touch Element Hierachy (00:56)
  • Demo: View Hierachy (01:16)
  • Demo: Objects Added (03:08)
  • Demo: Table View Controller (01:54)
  • Demo: Tab Bar Controller (02:33)
  • Demo: User Interface Objects (04:19)
  • Demo: UI Label (04:44)
  • Demo: UI Label View (01:21)
  • Demo: UI Text Field (02:29)
  • Demo: Segmented Control (01:16)
  • Demo: Progress Slider (00:56)
  • Summary (00:23)
Connecting Interface Builder (39:25)
  • Introduction (00:36)
  • Demo: Hooking up to Code (01:21)
  • Demo: Set Properties (01:28)
  • Demo: Connecting Code (01:12)
  • Demo: View Controller Code (02:50)
  • Demo: UI Label Class (02:37)
  • Demo: UI Text Field (02:56)
  • Demo: First Responder (03:36)
  • Demo: Delegate Method (02:51)
  • Demo: Build and Run (01:58)
  • Demo: Hook up Outlet (07:47)
  • Demo: Build and Run (00:24)
  • Demo: UI Slider (02:17)
  • Demo: Connections Inspector (03:06)
  • Demo: NS String (02:16)
  • Demo: Build and Run (01:09)
  • Summary (00:54)

Module 3

Responding to User Rotations (25:11)
  • Introduction (00:39)
  • Demo: Rotating User Interface (03:43)
  • Demo: Interface Builder and Code (03:00)
  • Demo: Re-Adding Image View (02:41)
  • Demo: Rotating in Code (03:21)
  • Demo: Text Location (04:02)
  • Demo: Set Outlets (05:08)
  • Demo: Build and Run (01:57)
  • Summary (00:35)
Objective-C (15:29)
  • Introduction (00:34)
  • Objective-C (01:20)
  • Objective-C Classes (01:19)
  • Objective-C (02:13)
  • Inheritance (01:09)
  • Demo: Objective-C Class (05:50)
  • Demo: Implementation File (02:47)
  • Summary (00:14)
Objective-C Syntax (19:21)
  • Introduction (00:29)
  • Objective-C Syntax Rationale (01:25)
  • Objective-C Syntax (02:27)
  • Chaining Method Calls (01:05)
  • Objective-C vs. Other Languages (01:46)
  • Verbose Language (01:26)
  • Demo: Printing to Log (05:10)
  • Demo: Setting Values (03:03)
  • Demo: Sending The Message (02:11)
  • Summary (00:15)

Module 4

Properties (41:16)
  • Introduction (00:39)
  • Properties (02:37)
  • @synthesize for getter and setter (01:02)
  • Property Syntax (01:11)
  • More Property Options (03:26)
  • Dot notation (01:00)
  • Demo: Properties (04:01)
  • Demo: Property Methods (03:39)
  • Demo: Weak Properties (04:56)
  • Demo: Implementing Methods (05:16)
  • Demo: More Methods (05:54)
  • Demo: Even More Methods (04:53)
  • Demo: Running the Program (02:16)
  • Summary (00:19)
More on Properties (19:14)
  • Introduction (00:40)
  • Class Communication (01:48)
  • Delegate Protocols (00:50)
  • Demo: Delegate Protocols (03:22)
  • Demo: Creating Delegate Object (03:32)
  • Table View Delegate Example (01:16)
  • Passing During Transitions (01:53)
  • Singletons (00:43)
  • Singleton Sample Method (01:55)
  • Key-Value Observing KVO (00:55)
  • KVO Implementation (01:50)
  • Summary (00:24)

Module 5

View Management (31:41)
  • Introduction (00:35)
  • Views and View Controllers (02:07)
  • Storyboard Rationale (01:26)
  • Storyboard Basics (01:03)
  • Storyboard View Transitioning (02:19)
  • Handling Storyboard Transitions (00:53)
  • Types of Segues (01:07)
  • Demo: Storyboard Transitions (03:38)
  • Demo: Connecting The Storyboard (06:55)
  • Demo: Adding Transitions (05:29)
  • Demo: The Bad Way (04:26)
  • Demo: Segue Style (01:17)
  • Summary (00:21)
Container Views (26:34)
  • Introduction (00:36)
  • Container View Controllers (00:53)
  • Apples Container Controllers (01:34)
  • Navigation Controller (01:01)
  • Demo: Navigation Controller (03:17)
  • Demo: In Action (03:36)
  • Demo: Identifying The Segue (04:32)
  • Demo: Next Controller (04:28)
  • Demo: Detail View Controller (03:01)
  • Demo: Running The Program (03:05)
  • Summary (00:26)
Tab Bar Controller (18:04)
  • Introduction (00:38)
  • Tab Bar Controller (01:07)
  • Demo: Tab Bar Controller (03:48)
  • Demo: Apples PreBuilt Tab (02:26)
  • Demo: Adding Another View (05:31)
  • Demo: Adding Graphics (04:01)
  • Summary (00:30)

Module 6

View Life Cycle (20:24)
  • Introduction (00:42)
  • View Life Cycle (03:33)
  • Container View Controllers (01:25)
  • Demo: Controller Views (05:49)
  • Demo: View Controller Log (05:49)
  • Demo: Running The Program (02:34)
  • Summary (00:29)
Table View Introduction (15:16)
  • Introduction (00:34)
  • What is a table view? (02:23)
  • MVC Design Pattern (01:13)
  • Delegate Design Pattern (01:10)
  • What"s a UITableViewCell? (02:27)
  • Using UITableViewCell (01:59)
  • UITableViewcell Included Types (01:13)
  • Storyboard Implementation (00:44)
  • Demo: TableView (03:00)
  • Summary (00:30)
Table View Interface (21:35)
  • Introduction (00:39)
  • Demo: Building a TableView (03:58)
  • Demo: TableView Cell Types (04:20)
  • Demo: Reuse Identifier (03:54)
  • Demo: NSIndexPath (04:03)
  • Demo: Static Cell vs Dynamic (04:15)
  • Summary (00:24)

Module 7

Table View Customization (23:37)
  • Introduction (00:28)
  • Demo: Table View Customization (05:07)
  • Demo: Header View (04:56)
  • Demo: Grabbing Content (04:58)
  • Demo: NSString (04:34)
  • Demo: Getting the Array (03:01)
  • Summary (00:30)
Table View Customization 2 (21:38)
  • Introduction (00:30)
  • Demo: Changing to JPEG (04:56)
  • Demo: Cell Accessory Type (08:23)
  • Demo: Change Cells (04:38)
  • Demo: Reorder Control (02:48)
  • Summary (00:20)
Table View Persistence (31:10)
  • Introduction (00:31)
  • Demo: Table View Persistence (05:02)
  • Demo: Add Save Name (03:42)
  • Demo: Load Data From pList (04:23)
  • Demo: Editing Data (05:40)
  • Demo: Passing Information (04:10)
  • Demo: DetailViewController (04:16)
  • Demo: Cell Styles (02:57)
  • Summary (00:25)
Table view Persistence 2 (26:38)
  • Introduction (00:28)
  • Demo: Customizing Cells (05:19)
  • Demo: Saving Changes (05:17)
  • Demo: Leaving the TextField (04:55)
  • Demo: Add New Items (05:50)
  • Demo: Passing new Dictionary (01:38)
  • Demo: Rotation (02:37)
  • Summary (00:29)

Module 8

Debugging NSLog (32:57)
  • Introduction (00:26)
  • Xcode Debugging Tools (01:49)
  • Useful NSLog Statements (02:11)
  • Demo: Using NSLog (06:42)
  • Demo: Running NSLog (01:46)
  • Demo: NSString From Selector (05:28)
  • Demo: Debugging (05:06)
  • Demo: Debugging Review (04:22)
  • Demo: Storyboard Segue (03:56)
  • Demo: Console Limitations (00:45)
  • Summary (00:21)
Advanved Debugging (18:30)
  • Introduction (00:32)
  • Demo: Breakpoints (02:21)
  • Demo: Edit Breakpoints (05:22)
  • Demo: Breakpoint Sounds (04:59)
  • Demo: Debugging Logs (04:50)
  • Summary (00:24)
Debugging in Action (29:02)
  • Introduction (00:29)
  • Demo: Debugging Live Code (04:48)
  • Demo: Breakpoints in Action (05:13)
  • Demo: Deleting TableView Cells (04:44)
  • Demo: Loading the View (04:43)
  • Demo: Crash (03:19)
  • Demo: Post Restart (03:02)
  • Demo: Fixing the Error (02:19)
  • Summary (00:22)