iOS Guide

Swift Vs. Objective-C

To develop apps for iOS, you’ll need to learn either Swift or Objective-C. Objective-C used to be the main language used for both iOS and OSX development, however, Apple recently released Swift which is easier to read and learn. Swift will likely be the future of iOS development, so we recommend learning swift.

Swift

Apple’s Swift Guide is a great way to get acquainted with Swift’s syntax and capabilities. If you want more specific examples with sample projects, take a look at Learn Swift

Note

Since Swift is a new language it is constantly evolving and changing, we recommended to check Apple’s Swift blog to learn about new changes. Your code might break with newer versions of Swift or XCode, but you can use the Migrator tool in Xcode to update your swift code to the newest version: (Edit->Convert->swiftVersion). However, you might need to update some parts of the code yourself.

Objective-C

Code School has a fun interactive course that goes over the fundamental building blocks of Objective-C. TeamTreeHouse offers a great course that covers the basics and advanced concepts of Objective-C.

iOS Development Basics

We highly recommend following Apple’s Start Developing iOS Apps Today tutorial. It tries to familiarize you with Xcode’s interface, and important concepts behind iOS development such as the view hierarchy, types of views, and the basics of auto-layout.

Another important concept in iOS development is the UIViewController life cycle, and the MVC development pattern.

Where to go from here?

TeamTreehouse’s iOS development track covers a good range of iOS features that you will likely need when developing your nonprofit’s app.

We also recommend you learn and get comfortable with the following View Controllers:

  • UIViewController
  • UITableViewController
  • UICollectionViewController
  • UIScrollViewController

Below are a couple of resources and courses that are useful; see iOS Resources for more.

  • Developing iOS 8 Apps with Swift by Stanford : A great course recommended to people with some programming experience. The course used Swift 1.1, so expect some minor issues that can be dealt with easily.
  • Raywenderlich: Has a lot of tutorials that are clearly explained and are regularly updated. Should be the first place to go to if you want to learn about a specific controller and framework, since they probably have a tutorial about it.
  • AppCoda: Another good tutorial site.

Tools & Libraries

A popular concept in programming is to not reinvent the wheel. There are a lot of 3rd party libraries that make networking a breeze (see Alamofire), make simple beautiful charts (see ios-charts), and simplify building UI (awesome-ios-ui). You can find more in awesome-ios.

In order to incorporate these libraries to your project, you can either add their files manually into your project, or choose a dependency manager. Cocapods is a popular Objective-C dependency manager, that recently added Swift support. It simplifies the process of discovering and integrating 3rd party libraries. Carthage is another dependency manager that is gaining popularity, however, it can only be used on iOS8 projects and higher.