The following is just a guide to what’s important when venturing into the world of iOS development.

Disclaimer: It should be duly noted that what I mention here is based on my own experiences and what I think is important to you. From a friend to another.

1. Work Environment: Xcode

Xcode is the IDE that Apple puts at your disposal so that you can easily develop apps for Mac, iOS, Apple Watch, or Apple TV.

You can get Xcode for free, but you need a Mac to install it. The machine must be able to at least run OS X Mavericks 10.9.

2. Objective-C or Swift?

Swift should be your choice. At this point, Swift already is more stable. It has been widely adopted by the community and there is enough documentation and support, and many collaborative sites available.

This is not to say that Objective-C is bad. At this point, it is more of a legacy language for maintaining legacy apps.

Once you have installed Xcode, I recommend you take a peek at Playgrounds. There you will be able to experiment with the code in real time. It is a way to see what your code is doing and familiarize yourself with the language.

For more info, look at The Swift Programming Language.

3. Fundamentals

Do not try to understand or learn everything at once. There is a world of information out there on iOS development. For now, I’d suggest you focus on what is important.


It is important that you have a certain level of command of Object Oriented Programming. Don’t try to learn anything else until you have a good grasp of OOP.

Model-View-Controller (MVC) is the design pattern that governs iOS development. Again, make sure you have a strong understanding of the MVC model before you try to use it.

Tip: If you think you have what it takes regarding OOP and MVC, you can try to understand concepts such as protocol, delegate, extension, optionals, generics, closures, observer, class vs struct, optional chaining. All of these items are covered in The Swift Programming Language chapters.

The App Life Cycle

I’d suggest you familiarize yourself with “The App Life Cycle.” It gives you a picture of how your app operates in relation to exceptions and the system.

It is also important for you to get acquainted with the UIViewController lifecycle and understand the differences between viewWillDisappear, viewDidLoad, viewDidAppear, viewWillAppear.


Storyboard is a visual representation of the user interface of an iOS application, which displays content screens and the connections between them. A storyboard is composed of a sequence of scenes, each of which represents a view controller and its views. The scenes are connected by a segue, which represent a transition between two view controllers.

You can edit storyboards with Interface Builder in Xcode.

TIP: You may stumble upon the IBAction and IBOutlet concepts. These are vital for the interaction between the view and its view controller.

Auto Layout

Auto layout will help your app to support different screen sizes, either on an iPhone or an iPad, and will allow your views to dynamically adapt to changes on the screen.

You control Auto Layout by means of the constraints that you define between views.

4. Apple API Reference

I have always believed that good iOS developer distinguish themselves by their ability to navigate and use the Apple API Documentation Reference.

Knowing how to use Apple’s documentation helps you to not having to memorize all of the delegates of a UITableView or UICollectionView or to understand the components of a NSURLSession. It also helps you to learn on your own.

Sometimes it is good to hit rock bottom yourself and realize that using a stone to crack an egg open isn’t always the best way to do it.


I’d like to thank you for your time and patience. I hope that the contents of this article helps you to enter the world of iOS development and create your first app.

And if you want to learn more about iOS development, please see Personal iOS Dev Tool Kit.

Jesus Guerra, iOS Software Engineer @Nearsoft