Quick Start Resources

Apple iOS Tutorials

Image of a young plant growing in a plate pull of coins

If you are new to iOS development then this guide will provide you with resources to get you up to speed quickly and efficiently. Most of the resources are freely available video tutorials, but we also describe and link some written and paid resources as well. At this time our focus is exclusively for people interested in developing apps for iPhone, iPad, and Apple Watch devices. As there are so many different tutorials on the web we strive to list and summarize the most effective tutorials here, so that you won't have to spend time searching. This guide should allow the online student to identify areas of interest and get up to speed in developing apps as quickly as possible.

Most of the resources here require very little experience with other computer languages. Because development languages and the devices they are deployed on are constantly changing, we’ll be updating this list on a regular basis. Also tutorials become stale and new methods (and languages) are constantly being developed, so the learning styles will change. You will notice that some tutorials here address earlier versions of Xcode, however we'll leave them up as long as they are not obsolete.

We invite the reader to submit any links to resources that they have found useful. We are not being paid to provide links here and are happy to consider any tutorials, both free and paid that would benefit readers.

Part I - Quick Start Resources

Section I – Getting Familiar with the Development Environment - Xcode

Let's first take a look at the official documents. While not a video tutorial, this resource comes directly from the horses mouth, so to speak. This is Apple’s official series of guides that begin with an introduction, move to structuring an application, implementation, and additional resources. This is one of the best guides and where we recommend you start.
Start Developing iOS Apps Today - Apple.com
https://developer.apple.com/library/ios

A Very Swift tour of Xcode 6 Features
This video provides a quick tour of Xcode 6 and it's basic but most used features to be able to get started creating apps quickly. You will take a brief look at the File Navigator, the Code Editor, Interface Builder, the Inspector Pane, Debugger View, Library Pane and available elements. You will be shown how to add a button to the Interface Button and how to run and stop projects in different simulators.
Code With Chris
How To Make an App - Ep 3 - Xcode 6 Tutorial (8:20)

An informal walk-through of the Xcode IDE (Integrated Development Environment) in this 10 minute video.
This will help the newcomer become familiar with Xcode 6, even though the tutorial was created using Xcode 5.
The Casual Programmer
iOS Application Development Tutorial 1: Basics of iOS 7 and Xcode 5 (10:48)

Section II - Learning the Basics of App Development Using Xcode for Swift and Objective-C

This is a very important video tutorial and worth every second of the three minute runtime. You will be introduced to the most important aspect of development: architecture. If you start out building apps using the Model, View, Controller (MVC) paradigm right away, your career as a developer will be on the right foot (“correct foot”, for non-english readers).
Code With Chris
How To Make an App - Ep 4 - App Anatomy (3:11)

Xcode 6 iOS 8 An Introduction to Storyboard and the Preview Feature
This short tutorial will show you how to use the Any-Any abstract size in the Storyboard along with the how Preview lets you simultaneously preview an iPhone and iPad in Autolayout.
Novall Khan
Xcode 6 Tutorial for iOS 8: Universal Storyboard (4:45)

Adaptive Autolayout Using View Containers
This written step-by-step "recipe" was created to serve as a starting point for using adaptive auto layout successfully in Xcode for iOS development. You'll learn how to use size classes with UIViews as containers, to support different devices in portrait and landscape orientation. We'll make use of the Preview feauture in Xcode.
Chris Jungmann
Chris' Cookbook - Adaptive Autolayout Recipe

Say Hello to Swift Labels and Colors
A short tutorial on getting started with colors and using the playground in Swift. You will create a “Hello Playground” app that uses UILabel and background colors to get familiar with the environment. Very basic, but an excellent way to start.
Novall Khan
Swift Tutorial: Colors in Playground (4:24)

Section III - Creating Your First Basic Apps

If you have not already come across TeamTreeHouse tutorials then this link will be useful for you if you are considering a subscription based resource. They have beginner and intermediate level tutorials covering iOS, Android, web development and web design using various established technologies. Their goal based approach will take you through creating your first app or web page step by step at your own pace.
TeamTreeHouse – Paid monthly $
www.teamtreehouse.com

Build “Hello World” with No Programming Experience in Swift
This fast-paced tutorial is excellent for developers with previous experience. While the tutorial doesn’t get deep into the mechanics of development, you’ll get a jump-start in Swift development. I would recommend this to Objective-C developers looking to leverage skills quickly in Swift. The tutorial starts out by first creating the data model by creating a task manager, and then moves to the view controllers that interact with the manager by adding, and deleting tasks. You might notice that rm2kdev is a C# developer and adds a few semicolons along the way. Those are optional in Swift.
How To Make an App - Ep 5 - Your First Swift App (11:57)

Build a more useful ToDo List App in Swift
Learn how to create a single-view “Hello World” application. The tutorial starts with the basics of selecting the language (Objective-C or Swift), naming the application bundle, using source control, and the files automatically created. You are provided an overview of the methods created, and the Model, View, Controller (MVC) design pattern, and some tips on how to navigate the Storyboard and add elements to it. Lastly you'll run “Hello World” in the iOS simulator, while getting an introduction to Auto-Layout with constraints.
by Rm2kdev
Swift Tutorial - Todo List App (35:43)

Section IV - Working With Specific iOS Frameworks

Close-up of Eiffel Tower framework

Introduction to Using Table Views with a Storyboard
Learn how to create a simple table view controller using the Xcode Storyboard and initialize the table cell with different styles. You are shown how to create project, add a tableview, set the delegates, programmatically create an array of Greek letters, add an image to the project, then display this using table view cells within the first nine minutes of the video. In the last part of this 17 minute video you will learn how to use initWithStyle to change the table cell’s appearance. You will learn how to create control logic using willSelectRowAtIndexPath to manage the user’s interaction with the table rows. Finally Chris covers the code for setting font and size and table height.
A Casual Programmer
iOS Application Development Tutorial 8: Simple UITableView with storyboards in Xcode 5 (17:27)

Working with UITextField and UIKeyboard
This tutorial covers adding text fields in a view and connecting them to the view controller. The author shows the viewer how to configure the keyboard type programmatically, to handle different types of text inputs (default, emails, number pad, decimal pad). Also covered is how to dismiss the keyboard when user presses the return button, selects a UIButton or taps outside of the screen. The viewer learns how to set a text field’s delegate to the file’s owner using Interface Builder, and how to connect multiple UIButtons to a single action using tags identifying the button in the action method. This tutorial can be used to build a fahrenheit to celsius conversion app for example.
Vishal Kurup
iOS Tutorial - Working with UITextField and UIKeyboard - Dismissing the keyboard in your app (27:15)

iOS Development with Swift Tutorial - 18 - Adding Brains to the View
Learn how to connect your view to the underlying model. This is actually just on of an entire series of videos by The New Boston.
The New Boston
Swift Tutorial - Adding Brains to the View (8:52)

Section V - Creating An Intermediate Complexity App

The Complete Stanford University Swift CS193p Course
This is the start of the Stanford University Swift lecture for the CS193p course. There are 13 videos and each one is a little over an hour long. This is for the serious developer that wishes to take a deep dive into iOS development, and go pro. The instructor is outstanding (what else can we expect from Stanford?) and while it may seem like a lot of time to invest you will rise above the chaff of cut-and-paste developers that have no idea what they're pasting. I'm not judging, I've been there and done that. In any event, there's no comparison with other online videos and you’ll become a much better programmer as a result. The bottom line is these are professional level courses for free, worth thousands if not tens of thousands of dollars, and I highly recommend them.
by Stanford University
Developing iOS 8 Apps with Swift: 1. Logistics, iOS 8 Overview (1:08:18)

A UITableView with Storyboards Master-Detail app using JSON created with PHP from a MySQL database Vishal Kurup
Part 2 (6:18)
Part 3 (14:36)
Part 4 (12:52)
Part 5 (17:54)

Section VI - Using Open Source or Attributed License Components

It doesn’t make sense to re-invent the wheel does it? You would certainly learn more writing your own code to do everything, but there’s always a compromise. If you’d rather get your app done as quickly as possible then look for open source components that you can use with the proper license.

Here’s a link to GitHub where the majority of open source projects are posted:
GitHub

As an example we’ll illustrate one solution to a common problem. How does one move a text label out of the way of the keyboard? You will likely encounter this problem when creating a login other page that asks for user information. There are many sets of classes available on GitHub for this and we present one that has worked well for us in the past:

TPKeyboardAvoiding
A drop-in universal solution for moving text fields out of the way of the keyboard in iOS
Author: Michael Tyson
TPKeyboardAvoiding - Github

Part II - Planning

An indoor architectural structure

By now you should be ready to create a unique app. But would you consider building a house without a plan? Most certainly not, and this is even more important a question when building something virtual. So remember these words: Before you write a single line of code, start with a design. Because if you don’t you will probably never finish your app. Even if you are using a paper napkin, it’s better than nothing.

Take a look at Stone.com founder and Twittelator author Andrew Stone’s ’10 Steps to a successful app’. You can skip to the last slide for all 10 steps if you’re in a real hurry to get started.
Stone.com/10

Part III – Other Resources

A computer monitor

If you're based in New Mexico, be sure to register a profile on Built In New Mexico, a grassroots organization that supports technology people working in New Mexico. When you get stuck on something, Google and Stackoverflow.com are your friends. Also join your local meetup.com developer group. If you are in Albuquerque join the Cocoa Conspiracy that meets very Thursday mornings at Winning's Coffee and Ideas and Coffee.

Author - Chris Jungmann

Small icon image of company founder Chris Jungmann

Chris is a software developer with a computer engineering background. He leverages over twenty years of technology work, and his experience spans from the client to web server, and more recently mobile. He is founder of inCaffeine Studios and is passionate about creating new things, sharing knowledge and building community.