UIKit Fundamentals Wiki

Supporting Course for the iOS Developer Nanodegree

Welcome to UIKit Fundamentals! We are so excited to build iOS Apps with you!

Need help getting started?


Course Resources

Apple's The Swift Programming Language

Downloadable Materials

You can download Supplemental Materials, Lesson Videos and Transcripts from Downloadables (bottom right corner of the Classroom) or from the Dashboard (first option on the navigation bar on the left hand side).

Course Syllabus

Lesson 1: Outlets and Actions

In this first lesson we want to take a close look at each object that is used to create an app. We’ll write an app completely in code, and then show how storyboard can be used to replace some of the code. Along the way we will cover object diagrams, target/actions, optionals, and making connections in Storyboard. We'll end with a Challenge App.

Code Reference Sheet

Lesson 2: Presenting View Controllers

This lesson focuses on view presentation and segues, beginning with a comparison of modal presentation and navigation. We will explore multiple options for presenting both off-the-shelf and custom view controllers and finish up by building a version of Roshambo

Code Reference Sheet

Lesson 3: Delegates

In this lesson students learn about the Delegate Design Pattern and explore in detail its use in the UITextField class. At the end of the lesson students will be challenged to implement a series of customized text fields

At this point students are asked to clone the course github repository. Here is the clone url and some tips on using git throughout the nanodegree. 

Code Reference Sheet

Lesson 4: Table Views

In this lesson we'll dig into Table Views, a cornerstone of UIKit.  We'll identify essential delegate and datasource methods, review Swift Collections, and discuss how UITableViews take advantage of reusable cells. After implementing an example table, we'll finish up with a Challenge App, an extension of the Roshambo app from Lesson 2. 

Code Reference Sheet

Lesson 5: Navigation

This lesson focuses on Navigation, which is used when presenting a hierarchy of views from side-to-side. We'll talk about how navigation stacks function in UIKit, review Swift classes and structs, and implement a navigation structure for an example app. At the end of the lesson students will implement navigation controllers on their own in three different scenarios. 

Code Reference Sheet

Lesson 6: Preparing for MemeMe

The final lesson covers skills specifically needed to build MemeMe, including: presenting the UIImagePickerController and the UIActivityView, adjusting the view to account for the keyboard, using image context, and sharing data across classes. 

Code Reference Sheet

Final Project: MemeMe

MemeMe is a meme-generating app that enables a user to attach a caption to a picture from their phone. After adding text to an image chosen from the Photo Album or Camera, the user can share it with friends. MemeMe also temporarily stores sent memes which users can browse in a table or a grid.

MemeMe covers many of the UI components covered in the previous lessons and found in essentially every app. Check out the complete project description and download the detailed spec.


Thank you to Kim Dryden, Calvin Hu, and Trish McCallister for video production and editing. This course would not exist without their hard work and dedication. We are so lucky to have such a talented production team.