
Learn how Objective-C adds objects to C with minimal disruption, enabling apps for OS X and iOS through a messaging model used in HealthKit, HomeKit, and WatchKit.
Explore the evolution of Objective-C from next step to open step, and learn how Cocoa and Cocoa Touch underpin modern iOS development after Apple’s NeXT acquisition and Steve Jobs’ return.
Learn how to use Xcode on a Mac to build iOS and OS 10 apps, explore free and paid developer plans, and start a new universal Objective-C master-detail project.
Explore the workspace window in Xcode, view the editor and navigators, and understand how Finder folders relate to Xcode groups and the project file.
Explore the Xcode workspace navigation area, use the project, symbols, and search navigators, and learn to organize files with groups while debugging and setting breakpoints.
Explore the utilities area library to access file templates, code snippets, interface builder objects, and media, then drag items into your project and tailor the library layout.
Explore the utilities area, including quick help, the file inspector, and library, and learn how selection updates the inspector and how file paths relate to groups and on-disk locations.
Edit code the traditional way in objective-c by typing in the master view controller's implementation file and using code completion to create a correct instance method like awake from nib.
Explore advanced editing features in Xcode, including code completion via type ahead, fix-its, and real-time error highlighting with matching brackets to streamline Objective-C development.
Organize your project by creating groups in the project navigator and master multi-file searching with the search navigator, including find in project and find and replace across scopes.
Use the jump bar to navigate between related and companion files, move back and forward, and explore header and implementation files while tracing superclass hierarchies.
Navigate a project using logical and hierarchical file relationships, then use the assistant editor to view two related files side by side, such as dot m and dot h counterparts.
Learn to track changes in Xcode using git source control: create a repository, commit edits, view history, manage added or deleted files, and revert to previous versions for collaborative projects.
Explore managing source control in Xcode by creating and switching branches (like test branch), committing changes, merging into master, and reviewing history for collaborative development.
Navigate Xcode preferences to manage general settings, provisioning profiles, and debug views; customize text editing, indentation, and downloads to keep the SDK and simulator aligned across projects.
Explore the origins and design goals of Objective-C, including C with classes, two-file class structure (header .h and implementation .m), and organizing projects with storyboards in Xcode.
Explore how object oriented languages use classes to define and instantiate objects, distinguish class declarations from definitions, and understand header and implementation files, including AppDelegate and UIResponder.
Explore how Objective-C uses messaging with square bracket syntax to send messages to a view controller, its superclass, and how header files, templates, and Cocoa Touch frameworks shape class hierarchies.
Explore a master detail objective-c app template to understand headers and implementations, app delegate, view controllers, storyboards, image assets, and interface builder outlets, with core data usage.
Build a master-detail iOS app in Xcode using a built-in template, customize with Objective-C code, and run it in the simulator with core data and provisioning profile.
Learn how main.m loads Objective-C apps, how the operating system hands control to the app delegate, and how to debug main crashes using the console and debug area.
Explore how Objective-C uses header (.h) and implementation (.m) files, including app delegate handoffs, and learn the import patterns for frameworks and project headers, plus the interface and implementation blocks.
Explore the implementation of the Objective-C class file, navigate the project structure and sections, and learn how header and implementation files define a class, its properties, and overridden methods.
Learn how header files and import statements shape an Objective-C project, and how forward references using @class defer Detail View Controller details for looser coupling and maintainability.
Learn how to create a new Objective-C class, including header and implementation files, choose a superclass, and organize files into a project group for a clean app structure.
Learn how to create and organize a class in objective-c, import its header, instantiate the class, and troubleshoot common compilation errors during app delegate setup.
Set a breakpoint to pause at the variable declaration, step over to see the class become nil, and learn how the debugger shows memory locations and the debug area.
Explore how to declare, allocate, and initialize an Objective-C class instance by creating memory for an object and calling its init method.
Explore declared properties in Objective-C 2.0, including their decorators, type, and name, and how they compare to instance variables; see practical use in a sample Xcode project.
Explore how declared properties use a parentheses-based attributes list, with keywords like read-only, atomic versus non-atomic, and strong versus weak memory management for outlets in Interface Builder.
Discover how declared properties automatically synthesize backing variables behind the scenes, typically named with an underscore, accessible as self.property, with Xcode templates simplifying the process.
Learn to fine-tune declared properties in objective-c with optional getters and setters that lazily create or return the backing variable, such as the managed object model.
Explore memory management in Objective-C, focusing on properties, qualifiers such as strong and non-atomic, pointers and id, backing variables, and how getters and setters control memory allocation for objects.
Explore memory management in Objective-C by examining nil and uninitialized pointers, their safe use, and the save context pattern for Core Data managed objects.
Demonstrate automatic reference counting in objective-c, showing how has changes checks and nils interact with saves, and how ARC deallocates heap memory when the last reference drops.
Let Xcode guide you as you create a universal tabbed app in objective-c, set up a new project, define a reverse domain bundle identifier, and configure targets and templates.
Run the default Xcode template to see the app launch in the simulator, build the project, inspect the storyboard UI, and explore two views with a tab bar.
Learn to configure a tab bar controller with two views, update label text through a data entry field, and explore Interface Builder's scene, view controller, and label hierarchy.
Add an editable text field to the first view and align it with the title and subtitle, then use a button to transfer the text into the title in Objective-C.
Wire the interface built in Interface Builder to Objective-C code by creating outlets for the title and subtitle fields.
Align interface views in objective-c by using constraints to center and position a text field relative to the subtitle and the first view, previewing changes in the iOS simulator.
Position the text field using center alignment and vertical spacing constraints, rotate the simulator to test orientation, and pin a fixed width to maintain layout across orientations.
Wire a storyboard text field to an Objective-C property using the assistant editor, creating a weak outlet and verifying the connection in the document outline.
Learn how to wire a button in objective-c by connecting an action in the header file, using control-drag and touch up inside, and testing with a breakpoint to debug.
Implement a single line of code to move the text field's contents into the title field using self.titleField.text = self.textField.text, after wiring outlets from the storyboard.
Explore collection types in Objective-C—arrays, dictionaries, and sets—and see how the three values red, green, and blue form a single entity.
Create and initialize a test class in an Objective-C project, import its header, declare and allocate an instance, and prepare methods to test arrays and dictionaries.
Declare and implement a test method in an Objective-C class, expose it in the header, and repeatedly build and run to test messaging the instance.
By default, collections such as arrays, dictionaries, and sets are immutable; change values, not structure, and use a mutable array to alter the structure, then copy to switch forms.
Explore Objective-C array literals to build immutable arrays with @[] square brackets syntax, containing strings or numbers, and contrast with mutable arrays you can copy back and forth.
Learn how to create and access an NSDictionary using modern Objective-C literals, using key-value pairs and colon separators, with comparisons to arrays and note of older methods not covered.
Learn how to access a specific element and enumerate all elements in arrays and dictionaries, using C loops and Objective-C fast enumeration, with NS object basics and zero-based indexing.
Learn fast enumeration in Objective-C to loop through arrays as an object-oriented alternative to procedural loops, with optional index tracking.
Explore dictionaries in objective-c, comparing the old for-key access with the modern subscript syntax, and learn to enumerate keys using fast enumeration to retrieve and process values.
Learn how to use breakpoints and debugging in Objective-C by inspecting arrays and dictionaries with for loops and fast enumeration, reading console output, and monitoring values during app launch.
Set breakpoints to pause execution before a line, inspect variables and memory via the breakpoint marker, and step with the green arrow to see an array created with two elements.
Explore debugging values in Objective-C by using breakpoints, stepping through executable lines, inspecting arrays and objects in the variables view, and querying types and memory locations in Xcode.
Breakpoints do more than pause code; enable or disable them in the gutter and breakpoint navigator. Edit breakpoints with a control-click to add logging and continue after evaluating.
Use breakpoints to pause at suspected code, step through to the next executable line, and manage breakpoint conditions to fire only under defined circumstances.
Learn to use NSLog to log messages to the console in Objective-C, format output with format strings, and debug by inspecting variables and breakpoints.
Explore how protocols and delegates in Objective-C simulate multiple inheritance, with a class adopting a protocol and implementing required methods while also handling optional ones.
Conform to a protocol to provide functionality via a delegate, enabling the master view controller as the fetched results controller's delegate for lazy loading in Cocoa and Core Data.
Explore how protocols and delegates collaborate by wiring a fetched results controller to a master view controller and implementing its delegate methods to handle content changes and updates.
Explore how protocols and delegates operate in Cocoa and Cocoa Touch frameworks, with a master view controller adopting the fetched results controller delegate protocol and implementing required methods.
In this hands-on course, trainer Jesse Feiler will teach you how to build an iOS or OS X app using Objective-C and Xcode. This tutorial series is designed for those who have some programming knowledge, although no experience with Objective-C is required. You will start by learning how to work with Xcode, including how to edit code, use the utility area, find and search, and track changes. From there, Jesse will teach you about Objective-C and how to communicate with messages.
This video tutorial will also teach you how to add and customize your own code, create new classes and methods, and manage declared properties. You will also learn how to work with the built-in debugger, as well as use protocols and delegates, work with class extensions, and use blocks. Finally, you will learn how to handle exceptions and use selectors. Once you have completed this computer based training course, you will be fully capable of building your own app from an Xcode template, and be able to customize it to your own preferences.