Learning Adventure
Learn to Build iPhone Apps
iOS Developers write software applications (apps) using a programming language called Objective-C and a development environment called Xcode. In this Learning Adventure, we'll get off to a running start by building a simple crystal ball iPhone app that can predict the future! Then, we'll switch gears and get a more formal introduction to programming and iOS development. Finally, we'll finish things up by building a more intermediate iPhone app that reads external data sources. Please note: iOS apps can only be built on a Mac computer, and not a PC.
- Things You'll Learn
- Programming
- Objective-C
- iPhone App Development
4 badges • 9 videos
-
Overview
Introduction to Programming
Basic programming skills are essential for all web professionals, including designers. Many programming languages share a common set of concepts, which will be covered in this course.
-
Step 1
Basics
Computer programming can be intimidating at first, but this gentle introduction to the subject will make the learning curve a bit easier to climb.
-
Step 2
Control Structures
Control structures determine the flow of execution within an application. A conditional statement can fork the execution down several paths or a loop can execute the same code several times until a condition is met.
-
Step 3
Objects and Arrays
An array is a way of storing multiple items and each item is associated to a number called the index. Each item can be accessed using the index value. Objects are usually associated to meaningful pieces of data which it can hold and manipulate.
-
Step 4
Functions
A function contains a piece of code that needs to be executed several times from different parts of your application. A function optionally takes in arguments and returns an object or value as a result.
6 badges • 22 videos
-
Overview
Build a Simple iPhone App
This simple app will introduce the Objective-C language, Xcode, and some very basic concepts in the iOS SDK. By the end, students will learn how to build a simple iPhone app that responds to touch and motion events with a nice animation.
-
Step 1
Getting Started with iPhone
Learn to create an iPhone app without any prior programming experience. Get a taste of the programming language Objective-C and get familiar with the tool known as Xcode. Learn how to use Xcode by adding controls to create a simple app.
-
Step 2
Learning the Language
Learning a programming language is like learning a foreign language, it has rules and constructs. Learn about some of the constructs in the programming language Objective-C, like the distinction between classes and objects, strings and arrays, properties and methods.
-
Step 3
Making It Pretty
An app without design is no app at all. Learn how to spruce up your app with design elements like adding a background image for our entire Crystal Ball app and customizing the button.
-
Step 4
Shaking Things Up
The iPhone has two remarkable built-in sensors which detect motion and acceleration. Learn how to use these sensors to add features to the Crystal Ball app. In addition, learn to use the touch gestures and eliminate the use of a button.
-
Step 5
Animate This
Animations are a great way to make an app stand out. There are several animation techniques like animating a series of images using an UIImageView or simple view animations based on view properties.
-
Step 6
Share Your Creation
Prior to submitting an app to the App Store it must be tested on an actual device and then checked for memory leaks. Once ready there are several steps to be taken to deploy it to the App Store such as: provisioning profiles, iTunes Connect setup, archival and submission of binaries.
6 badges • 22 videos
-
Overview
Build a Blog Reader iPhone App
The Blog Reader app will teach us one of the most common and important needs when creating an app: downloading data from the Internet and displaying it in a list. We will investigate the Model-View-Controller design pattern (MVC) that is essential for all iPhone apps, learn how to request data from the web, parse and use information in JSON format, and utilize the built-in UITableViewController to display a list of blog post titles and thumbnails. We'll also see how to display a webpage inside our app.
-
Step 1
Exploring the Master-Detail Template
Xcode’s Master-Detail template makes it easy to create an app that displays a list view along with a detail view. We will look at all the code generated by the template and learn about table view controller, delegate and datasource.
-
Step 2
Rebuilding from Scratch
Time to ditch the template code and recreate the master-detail app from scratch. Rebuilding allows us to learn the fundamental design pattern known as Model-View-Controller (MVC). In addition, we will learn about the view controller lifecycle and how to connect view elements on the storyboard to our code.
-
Step 3
Getting Data from the Web
Learn how data can be requested from a web service, parsed and then stored. We will learn how to access data in the JSON format which involves downloading and parsing it. Once parsed, the data needs to be stored in a collection object such as a dictionary.
-
Step 4
Data Modeling
The advantage of object-oriented programming is the ability to model your data after real-world objects. Parsing the JSON data gave us a better understanding of its structure. We can now create a custom class to represent an individual blog post. The custom class will serve as a concrete representation of a blog post and will make our code manageable and readable.
-
Step 5
Adapting Data for Display
The downloaded data needs to be neatly displayed in the table view. Each row will show the blog post title, author and thumbnail, which involves customizing the table view cell to accommodate all three elements.
-
Step 6
Viewing a Web Page
Upon selecting a blog post from the list, the user is taken to a detail view where they can read the entire blog post. The blog post is simply a web page displayed with the help of a special view known as a web view of the class UIWebView.
10 badges • 43 videos
-
Overview
iOS Foundations
Learn fundamentals such as: Core Data, Web View, Notifications and App Preferences using the latest version of Xcode and iOS. You will also learn some features that are new with iOS and fundamental to app development such as: Automatic Reference Counting (ARC), storyboards, and appearance.
-
Step 1
Automatic Reference Counting
Automatic Reference Counting is an exciting new addition to iOS 5 that makes manual reference counting obsolete. It is a compiler level feature that removes all the hassle out of memory management and makes iOS development easier.
-
Step 2
Storyboards
A storyboard is a visual representation of the user interface for an iOS application. A storyboard is composed of a sequence of scenes, each of which is represented by a view controller and its views. Scenes are connected by a segue, which represents the transition between two view controllers.
-
Step 3
Web View
The UIWebView class uses the WebKit rendering engine to embed web content in an application. It can also display documents such as: PDF, Excel, Keynote, Numbers, etc. It supports browser navigation such as moving forward and back in the history stack and intercept browser events.
-
Step 4
Core Data
Core Data is not a database, it is a framework that helps in managing and persisting the object graph. It provides additional features such as schema migration, change tracking, relationship maintenance, validation, querying and more.
-
Step 5
Notifications
A notification is an iOS design pattern that broadcasts messages to observing objects. The centerpiece of the notification mechanism is a singleton object known as the notification center. When an object posts a notification, it goes to the notification center, which acts as a kind of clearing house and broadcast center for notifications. Objects that need to know about an event elsewhere in the application register with the notification center to let it know they want to be notified when that event happens.
-
Step 6
Appearance
iOS 5 has new capabilities to help customize the appearance of UIKit views and controls giving your application a unique look and feel. In addition, the appearance proxy helps you consolidate customization while providing a consistent look and feel.
-
Step 7
App Settings
Every app needs to provide the user with settings to customize its appearance or functionality. In iOS the easiest way to provide these preferences are via the settings app which involve knowing: property lists, user defaults and settings bundle. The user defaults and property lists are key-value stores designed for storing simple data types such as: strings, numbers, dates, Boolean values, data objects and more.
-
Step 8
Blocks and Categories
A category is used to define additional methods of an existing class without subclassing. Blocks are simply a block of executable code that have access to local variables and can be stored or passed around.
-
Step 9
API Access
Accessing a third-party Application Programming Interface or API involves making a request to a server to send or receive data. This data is usually in the format of an XML document. Parsing the XML document involves traversing through the document to extract information. iOS has two different parsing methodologies and several different classes that apply these methodologies.
-
Step 10
Location
The Core Location framework helps you determine the current location associated with a device. The framework uses the available hardware to determine the user’s position and heading. The classes and protocols in this framework provide periodic location and heading updates based on the required accuracy. In addition, reverse geocoding capability determines geographic information such as: street address, city, state, locality, zip code, etc.
The Finish Line!
If you've made it this far, congratulations! If you think you're up for it, why not check out the related bonus content or take on another Learning Adventure?
Related Bonus Content
-
Bonus Video
What's It Like to be an iPhone Developer? - with Jeff LaMarche
31 minutes 26 seconds
-
Bonus Video
How to Design Elegant Mobile Interfaces - with Dave Wiskus
16 minutes 34 seconds
-
Bonus Video
Insights into Mobile Design, Analytics and Managing a Team - with Jonathan Ozeran
22 minutes 30 seconds