A new session of each course opens each month, allowing you to enroll whenever your busy schedule permits!
How does it work? Once a session starts, two lessons will be released each week, for the six-week duration of your course. You will have access to all previously released lessons until the course ends.
Keep in mind that the interactive discussion area for each lesson automatically closes 2 weeks after each lesson is released, so you’re encouraged to complete each lesson within two weeks of its release.
The Final Exam will be released on the same day as the last lesson. Once the Final Exam has been released, you will have 2 weeks plus 10 days to complete the Final and finish any remaining lessons in your course. No further extensions can be provided beyond these 10 days.
Lesson 01 - Learning How to Write Programs for the Mac, iPhone, and iPad
Computers, smartphones, and tablets may look nice, but they're essentially useless without software to make them work. Today one of the hottest computers around is the Mac, one of the most popular phones is the iPhone, and one of the dominant tablets is the iPad. With so many people buying these devices, there's a tremendous opportunity to write and sell software or apps for all these millions of Mac, iPhone, and iPad users. In this lesson, you'll learn the basics of how programming works for any computer. Then you'll learn how a programming tool called Xcode can help you create programs or apps for the Mac, iPhone, and iPad.
Lesson 02 - Getting to Know Xcode
To create an OS X program or an iOS app, you need to use Xcode, Apple's free programming tool that runs on a Mac. With Xcode, you can create projects that consist of multiple files. Then you can write and edit Objective-C and Swift code in one file while designing your program's user interface in a different file. This lesson teaches you what Xcode can do and how it works so you can get comfortable using its features.
Lesson 03 - Creating User Interfaces, Part I
Every type of program you create, whether it's an OS X program or an iOS app, needs a user interface. And that user interface needs to accept data, display information, and allow the user to control the program by giving commands. OS X programs have a standard user interface that consists of a menu bar with pull-down menus along with multiple, resizable windows. On the other hand, iOS apps can display only one screen at a time that responds to touch gestures with a limited number of options on display at any given time. By understanding the different types of user interfaces for OS X and iOS, you can design an OS X program or iOS app that meets (or exceeds) the user's expectations.
Lesson 04 - Creating User Interfaces, Part II
User interfaces offer features that all OS X programs and iOS apps share. However, an interface must be able to adapt to user changes in window size, screen size, or orientation without requiring reprogramming. This lesson explains more about how constraints can define the position and size of the items on your user interface. In addition, this lesson helps you better understand Xcode's user interface, which provides multiple ways to perform commands.
Lesson 05 - Working With Views
The main feature of every user interface is a window, which Xcode calls a view. A view lets you place and arrange other user interface items on it, such as buttons, text fields, and labels. Xcode stores your user interface in either a .xib or .storyboard file. You can use either .xib or .storyboard files for OS X programs, but you can use .storyboard files for iOS apps only. In this lesson you'll even learn how to create custom user interfaces for different screen sizes or orientations, which can be especially useful for iPhones.
Lesson 06 - Working With User Interface Items
The purpose of every user interface is to allow input, display information, and allow the user to give commands. To design a user interface, you have to fill a window or view with items such as text fields, buttons, and labels. And to make your user interface responsive, you have to connect user interface items to your code using IBOutlets. An IBOutlet variable lets you put data in a user interface item, such as a label or a text field. This lesson teaches you the basics of connecting your user interface with your Objective-C or Swift code.
Lesson 07 - Learning More About Xcode
The main tool for writing OS X programs and iOS apps is Xcode. Although you've used Xcode to create projects, up until now you've used only a fraction of its features. In this lesson, you'll learn to customize Xcode and get help from Apple's documentation. You'll also find out about the basics of object-oriented programming and how it relates to creating OS X and iOS projects. By the time you finish this lesson, you'll have a better understanding how Xcode can help you create programs easier and faster than ever before.
Lesson 08 - Learning to Write Objective-C and Swift Code
While you can design your program's user interface without writing any code, eventually you'll need to know how to write code to make your program actually work. In this lesson, you'll start learning to write Objective-C and Swift code. You'll find out how to write commands in each programming language. By writing Objective-C and Swift code, you can customize the behavior of your program and make it solve useful problems.
Lesson 09 - Creating and Using Class Files
To fully understand OS X programs and iOS apps, you need to understand object-oriented programming. To create objects, you must first define class files, which define properties and methods. All user interface objects are classes, and all OS X programs and iOS apps are based on classes. For maximum flexibility, you can create your own custom class files as well. In this lesson, you'll learn the steps to creating class files for both OS X and iOS projects in Objective-C and Swift.
Lesson 10 - Storing and Retrieving Data in User Interface Items
In previous lessons you learned to retrieve text typed into a text field and display new text in a label. In this lesson, you'll practice retrieving and storing data in various user interface items. To find out how to store and retrieve data, you need to understand that all user interface items are classes, and all classes have properties. By learning how to find properties for class files and using inheritance to help you find related classes, you can find properties and methods that you can use in your own programs.
Lesson 11 - Creating User Interface Items in Code
Xcode provides different user interface items that you can drag out of the Object Library and place on a user interface. While it's possible to create a user interface entirely in code, that's not common. However, there are some user interface items you can't use unless you create them in code. In this lesson, you'll learn how to create an alert dialog box using Objective-C and Swift to display information on the screen for the user to respond to.
Lesson 12 - Continuing Your Education
The first eleven lessons gave you an introduction to several topics: Xcode, Objective-C, Swift, and user interface design. Obviously this short course can't teach you everything you need to know, but it can give you a solid foundation so you'll feel confident learning more on your own. In this lesson, you'll get a brief overview of several additional topics that you'll likely need when you start creating your own OS X programs and iOS apps . . . from fixing problems in code to working with teams of programmers.