Course

Objective-C Basics

iOS apps are written in the object-oriented superset of the C programming language called Objective-C. Without a good understanding of C and Objective-C it is not possible to be a competent and productive iOS developer. This course will teach you the basics of C such as: scalar types, arrays, structs and memory allocation. Laying the groundwork for Objective-C topics such as: classes, object messaging, properties, methods, ARC, dynamic typing and protocols. Towards the end of the course you will be armed with sufficient knowledge of the concepts and practical uses of the language Objective-C.

7 Achievements

C is a functional programming language serving as the basis of Objective-C. Learn about the main() function which is part of every C program. Moreover, you will learn the fundamentals of C programming such as: variables, arrays, and mathematical operators and expressions.

Functional programming is a form of declarative programming which involves composing the problem as a set of functions to be executed. You define carefully the input to each function, and what each function returns. In addition to functions, C provides the basic constructs found in any other programming language such as: conditional statements, loops to repeatedly execute statements and scope to bind variables.

C programming requires first hand knowledge of how memory is allocated and destroyed. Variables use pointers to determine where data is stored in memory. Furthermore, learn how memory is organized in either heaps or stacks and the benefits of either. A good understanding of these concepts will mean efficient writing of code.

Objective-C is an object oriented superset of the C language used to create iPhone or iPad apps. Objective-C offers a variety of features found in most object oriented languages such as: inheritance, composition and encapsulation when creating classes.

A framework is a reusable software platform for accelerating the development of an application. The Foundation Framework provides basic classes to store structured data such as: NSString, NSNumber or a collection of data such as NSArray and NSDictionary. A framework saves the programmer significant software development time by eliminating the need to start from scratch each time they build an application.

Objective-C offers two ways to extend the functionality of classes. Firstly, by use of categories you can add methods to any existing custom or system class. Secondly, a protocol allows any class to respond to a set of messages. Several classes can implement a protocol and a class can implement several protocols. Finally, you can use dynamic typing to determine the object type at runtime while using introspection you can determine the class of an object at runtime. All these seemingly advanced features make up a proficient Objective-C programmer.

An in-depth look into how pointers work. Gain a better understanding of how memory is allocated and initialized. Finally, learn about the differences between the strong and weak attributes of a property.

Instructors

Doug Turner is an Apple alumnus and Silicon Valley veteran. He later spent eight years consulting and teaching in Scandinavia while based in Reykjavik, Iceland. He is now based in Boston where he runs an iOS software development and training company.