Menu Search Sign up

Objective-C Programming for Mac/iPhone/iPad

Objective-C is the programming language of choice for developing apps for Mac/iPhone/iPad devices. To be able to use Objective-C to develop Mac/iPhone/iPad apps, you need to master the skills to:

  •  Create, compile and run Objective-C programs using Xcode
  •  Build applications by applying Objective-C language constructs, syntax and semantics
  •  Implement object-oriented designs using encapsulation, inheritance and polymorphism
  •  Develop graphical user interfaces (GUIs) for Mac OS X using the Cocoa framework
  •  Program a simple iPhone/iPad application using the Cocoa Touch framework

e2College offers a training course "Objective-C Programming for Mac/iPhone/iPad" to help you gain knowledge in this subject area. The training course includes activities and hands-on exercises to reinforce understanding of the different technical details of Objective-C programming.

The course is taught by e2College instructors who are subject matter experts in Objective-C programming and mobile app development.

Course Objectives

The objective of this course is to help students gain knowledge and hands-on experience in Objective-C Programming for Mac/iPhone/iPad.

Course Content

The training course "Objective-C Programming for Mac/iPhone/iPad" covers the following topics:

Objective-C Introduction and Fundamentals

  • Evolution of Objective-C
  • Xcode development environment
  • Syntax and semantics
  • Pointers, structs, functions
  • Decisions, loops and logic

Developing Classes in Objective-C

  •  Declaring the class interface with @interface
  •  Programming the class using @implementation
  •  Encapsulating attributes with methods and properties
  •  Importing the interface
  •  Writing constructors
  •  Instantiating the classes and invoking methods
  •  Reusing Classes Through Aggregation
  •  Building groups of complex classes

Foundation Framework Classes & OO Class Hierarchies

  •  Simplifying application development with class libraries
  •  Working with collection classes including NSArray, NSDictionary, NSSet
  •  Iterating collections with enumerators
  •  Structuring OO Class Hierarchies
  •  Exposing interfaces with protocols
  •  Defining optional and required contracts
  •  Designing to an interface rather than an implementation

Inheritance, Polymorphism, Categories, Extensions

  • Identifying the Is-A relationship
  • Defining constructors in subclasses
  • Leveraging dynamic binding through polymorphism
  • Creating categories to extend classes without inheritance
  • Redeclaring access rights with extensions
  • Hiding private methods

Building GUIs with Cocoa

  • Designing Mac GUIs using Interface Builder
  • Communicating between objects with targets
  • Implementing the delegate pattern with @selector
  • Developing an application with MVC
  • Registering bindings to observe changing data
  • Responding to mouse and keyboard events
  • Enhancing user interfaces with views and controls
  • Designing GUIs for the iPhone and iPad
  • Choosing appropriate controls for the limited screen space of mobile devices

Interacting with the Operating System

  •  Comparing memory management techniques
  •  Manual reference counting (MRC)
  •  Automatic reference counting (ARC)
  •  Storing and retrieving data with NSFileManager
  •  Obtaining directory and file information

Class Archiving & Code Packaging

  • Conforming to the NSCodingProtocol
  • Working with NSData, NSKeyedArchiver and NSKeyed Unarchiver
  • Comparing dynamic and static libraries
  • Wrapping code for public or private reuse
  • Developing shared code

Course Format & Schedule

The training course "Objective-C Programming for Mac/iPhone/iPad" is offered as an online live class and you can log in at the scheduled times and join your instructor and classmates in an interactive virtual classroom. Classes meet two evenings a week for six weeks for a total of 8 sessions. The evening class time is usually between 7:30pm to 10:00pm local time (Specific class time may vary a little to accomodate attendees from different time zones).

Course Prerequisites

This course is intended for people with some programming experience in an OO (object-oriented) language such as Java, C, C++, C# or Visual Basic.