Learn to Make iPhone Apps with Objective C for iOS7

Create apps for iOS7 without any programming experience. Learn how to write Objective C code, design UI, and use Xcode.
4.7 (114 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
20,894 students enrolled
Instructed by Paul Solt Development / Mobile Apps
50% off
Take This Course
  • Lectures 70
  • Length 13.5 hours
  • Skill Level All Levels
  • Languages English, captions
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 11/2013 English Closed captions available

Course Description

Learn to create iPhone apps with Objective C programming.

  • Follow along in Xcode 5 to turn your ideas into iPhone apps.
  • Create iPhone apps with easy to follow, step-by-step instructions, in this in-depth course taught by an expert instructor.

This course features HD lectures and programming screencasts with large, clear text. Listen to crisp audio and follow Paul Solt’s instruction with demonstrations and on-screen pointer and highlighting.

If you’ve tried to learn how to program iPhone apps from other online resources, you know it can be very frustrating.

In this course, Paul Solt shows you how to get started

  1. You will learn the programming topics that computer science students learn, and in far less time
  2. All of the Objective C code works with iOS 7 apps
  3. Paul provides explanations and examples on how existing apps use different features

Jump in and start learning to write code today!

What are the requirements?

  • Mac with Mountain Lion or Later
  • Xcode 5
  • PC with MacinCloud.com

What am I going to get from this course?

  • Make apps for iOS7
  • Use Xcode to design user interfaces for iPhone apps
  • Learn to code in Objective C
  • Prototype ideas on paper

Who is the target audience?

  • People who want to make iPhone apps
  • Anyone with an idea for an app
  • Non-programmers
  • Designers
  • Artists
  • Web developers

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Introduction

Welcome to How to Program iPhone Apps from Scratch in Objective-C


Welcome to our beginner iPhone development class, where we want to help you make your first iPhone app today.

Here we will go over what you will get out of this course, and how you can make your way through it.


  • Mac (2008+) or MacInCloud.com
  • Xcode 5+ and Mountain Lion (10.8+)
  • Notebook


  • Read/Write Code
  • Utility iPhone Apps
  • Sketch Ideas


  • Schedule 1-2 hours/day (7-14 hours/week)
  • Coding: 30-60 minutes/day
  • Reading/Watching: 30-60 minutes/day
  • Track Progress

Learn how to setup your Mac with Xcode 5.


Learn how to setup up a PC with MacInCloud.com so you can start today.


Create your first iPhone app and run it on the simulator.

Here you will see how yo make a simple calculator app for iOS. Create a new project in Xcode, design a simple UI and make it work.

Follow along to build a working app that with do the math for us when brewing Artisan Coffee.

P.S. Interested in Artisan Coffee brewing? See my blog post.


We all run into bugs when coding, especially when we are learning new techniques. Here you will learn the basics of debugging.

Turn on line numbers in Xcode, see some common bugs, and learn how to squash them with Xcode’s recommendations.

Learn how to rename variables, fix broken connections to your UI, comment out lines of code, and read the debugger output.

Section 2: Variables and Types

Variables are how we store information in our apps. We use them to ask the computer to remember a date, or a number, or other information. In code, we give this data a name so we can remember it too.

Learn about the common kinds of data or types, how to create them with names or aliases, and assign an expression to this variable.

Some basic types:

  • short/int/long: -1,0,1
  • float/double: 3.14
  • char: ‘a’, ‘b’, ‘c’
  • pointers: int *(store addresses)
  • struct: (x,y)

Jump into Xcode and make simple mac to learn how variables work in code.

See how to use NSLog to print out your variable as a means to checking its value. This practice will become very useful to test your apps behavior as you develop.

Create the common variable types (ints, floats, etc), perform operations on them, and see how they behave.

Challenge - Variables and Types
1 page
Challenge Solution - Variables and Types
Section 3: Decision Making

We need to teach our apps how to make choices. If it is rainy out, we need to bring an umbrella.

This lecture will go over logical decision making. We will cover if, else and else if statements so we can make these logic based decisions. Learn the syntax needed to implement the choices your app will need.

We will cover a new type called BOOL, boolean operators like less than or equal to, and the logical operators AND, OR, and NOT.


Create an iPhone app on the storyboard to see how decision making works in practice. design a user interface with labels and buttons. Change label text in your app when your defined conditions are met.

Practice making working iPhone apps in Xcode. Follow along to practice making and modifying variables, implementing if statements, and working with the BOOL type and logical operators.

Learning how to implement decisions is a crucial part of app development. This video will show you how to work with decision making in iPhone Apps.

Challenge - Decision Making
2 pages
Challenge Solution - Decision Making
Section 4: Functions

Functions are the building blocks for how we get our apps to behave how we want them to. You can think of functions like the directions that come with IKEA furniture. They show you how to take all of the parts and put them together in order to build you piece of furniture.

If you had another set of the parts, you could use them again and again. Functions are the same way in that we can use the same code many times without have to rewrite it.

Learn about how functions can save you lines of code, and how their implementation works in memory with the stack frame.

Xcode - Functions
Section 5: Advanced Functions

Learn more about how functions work. We'll also learn more about the Xcode debugger for stepping line by line through code.

Xcode - Advanced Functions
Xcode - Global Variables
Section 6: Numbers

Numbers are a fundamental building block of apps. We will use them to store user data, control the components in our apps, and perform calculations.

Here we introduce the types of integers and floating-point numbers we will commonly use. We cover how they work with the NSLog function, and how we can gain access to the built in math libraries so you don’t have to write code for basic functions like sine, cosine, etc.

Common Versions of Integers:

  • char
  • short
  • int
  • long
  • long long

Common Versions of Floating-point Numbers:

  • float
  • double

Numbers are a fundamental building block of apps. We will use them to store user data, control the components in our apps, and perform calculations.

Follow along to work with the common types of numbers and see how your apps will handle them. See how overflow errors can cause strange behavior, a good reason to choose the proper number type. We will also go over the orders of operation so you know where to put your parenthesis in your calculations.

Additionally we will cover the math libraries and special operators such as the increment and decrement operators that will save you lines of code.

Section 7: Loops

Loops allow us to repeat actions multiple times. We use loops in when downloading an album of pictures from the web, when we are editing photos, or even when you are making a game and checking if a player has won yet.

Here we cover the structure of basic loops, the while and for loops. We also go into the functionality of the keywords break and continue that end the loop early or skip a particular iteration, respectively. This background will show you how to create the behavior you are looking for in a loop.


Loops allow us to repeat actions multiple times. We use loops in when downloading an album of pictures from the web, when we are editing photos, or even when you are making a game and checking if a player has won yet.

Follow along as we use a loop to reproduce the behavior we had in the countdown clock without having to use the recursive function call. Next we cover the for loop and use the debugger to see exactly what the computer is doing as it runs through our code. Lastly we add a continue call to the code so we can see its behavior with the debugger.

Section 8: Pointers

Pointers are a special variable type that allow us to store the memory address of another variable. This gives us access to the location of our variables while not having to hold on to them all at once, akin to having the catalog for a library instead of carrying around all of the books.

In this lecture, we introduce memory and how your computer handles it. We use this context to show how we can use pointers to store the location of variables and how we can use that to retrieve and modify them. Lastly we introduce the NULL pointer and its uses.


Pointers are a special variable type that allow us to store the memory address of another variable. This gives us access to the location of our variables while not having to hold on to them all at once. Follow along to practice creating pointers, dereferencing pointers, modifying variables via pointers, using the NULL pointer, and using the sizeof function.

Section 9: Pass By Reference

Pass by reference allows us to give a function or method the address (via a pointer) to the data we want to operate on. This is especially important when dealing with large data sets like images or videos. You don’t want to have to copy an entire movie just to play it, rather, it would save time and memory to play it from its current location. Pass by reference allows us to do this.

Additionally, pass by reference allows us to modify variables within a new stack frame such as in a function or method without having to use global variables. This leads to more robustness and reusable code.


Pass by reference allows us to give a function or method the address (via a pointer) to the data we want to operate on. This is especially important when dealing with large data sets like images or videos. Follow along to see examples of Pass by Reference and pass by value.

Section 10: Structures

Structures are a way to easily organize data. Instead of having separate entries for the same person, have a single contact with all the information for home number, mobile number, addresses, etc.

Xcode - Structures
Section 11: The Heap

Managing memory is especially important on mobile devices. Learn about how applications can create a buffer of data to speed up user access. This is what YouTube does when it downloads part of a video so you can start watching right away.

Xcode - The Heap
Section 12: Objects

Objects are a way to easily organize data and functions for reusability. Instead of building functions to turn a car in a game, build a car class that comes with them anytime you make a car.

Xcode - Objects
Lecture - Object id and nil
Section 13: NSString

NSString is a class that you will use often in your apps. Learn how to make new strings and utilize the given class methods.

Xcode - NSString and Common Mistakes
Section 14: NSArray

Your apps will have to deal with lists. Lists of enemies in your game, lists of dates, or lists of other data. Learn about the NSArray class to manage them.

Xcode - NSArray
Section 15: Documentation

Apple's documentation is your best friend when you are trying to implement something new. See how to go about looking up documentation.

Section 16: Custom Objects

Your apps will have custom components. Learn how to make your own objects so you can reuse them and write less code.

Xcode - Custom Objects
Section 17: Properties

Properties help you write less code. Take advantage of them to speed up app production and to write fewer bugs.

Xcode - Properties
Section 18: Class Inheritance

Learn how your subclasses take on the properties of their super classes. A convertible car is a car, so it can drive, turn, etc., but it also can open its top. Subclass car so all you have to write is the code to open its top.

Xcode - Class Inheritance
Xcode - Troubleshooting Class Inheritance
Section 19: Object Ownership

Apple's Automatic Reference Counting (ARC) saves you a ton of coding and avoids bug. We need to know how objects we create will be treated. Learn how object ownership works with ARC.

Xcode - Object Ownership Part 1
Xcode - Object Ownership Part 2
Xcode - Object Ownership Part 3
Section 20: Memory Leaks

When object ownership is not handled properly you will have memory leaks. Learn how to diagnose memory leaks to make fast apps that don't crash.

Xcode - Memory Leaks
Section 21: Properties Modifiers

Learn about the different ways to modify your properties and what that does to their behavior in your apps.

Xcode - Properties Modifiers
Section 22: Course Review

Round up of what you have learned so far.

Section 23: iPhone User Interface

Now that you have the basics, lets jump into making an iPhone App.

Xcode - UI Design
Lecture - Paper Prototyping
Section 24: Connecting UI Outlets and Actions

Here we start to connect the elements of our user interface to code so that the users actions can translate to the responses we design.

Section 25: App Logic for MatBorder Class

We implement the main functionality of our app in a separate, reusable class.

Section 26: Connecting App Logic to UI

Now that we have the functionality working, we need our app to utilize it when the user interacts with our UI.

Section 27: Keyboard and Delegate Objects

Often we use the keyboard for user input. We need to teach our app to hide it when the user is done. Here we also cover how to get special keys like the return key to work.

Xcode - Keyboard and Delegate Objects
Section 28: AutoLayout Primer

Here we learn the tricks of AutoLayout and how to recover from common issues.

Xcode - AutoLayout Primer Debugging
Section 29: Practical AutoLayout
Xcode - Practical AutoLayout
Xcode - Connecting Layout Constraints with Live Preview
Xcode - App Logic for the Mat Border Live Preview
Section 30: Moving Forward
Lecture - iPhone Programming Courses
2 pages

Connect to stay in touch!




Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Paul Solt, iPhone App Expert

Howdy, I’m Paul! I have a master's degree in Computer Science from Rochester Institute of Technology and I used to work for Apple.

After working at Apple, I decided that I wanted more freedom. I started my own app company and followed the money (you can too!). Instead of reporting to a boss – I set my own hours and enjoy my work.

I’m passionate about teaching around the world – most recently I taught high school kids in Athens, Greece how to make iPhone games (technology skills have their perks!). People all over the world use my courses to jump-start their careers into iPhone apps.

You wouldn’t believe the opportunities, freedom, and jobs that iOS development opens to you. Sign up and find out for yourself why so many people are taking my iPhone app courses.

I believe my courses provide the most complete and comprehensive background for any beginner or experienced developer. If you don’t agree I will happily refund your money.

Sign up for the Swift and iOS 8 Apps in 31 Days course and join me on an amazing adventure to the App Store.

Ready to start learning?
Take This Course