We’re now five years into the mobile revolution and the dominant players have emerged. It looks like both the Android and iOS platforms are here to stay, and those who want to develop applications for mobile generally have three options. The first is to learn Java and develop applications for Android. The second option is to learn C, Objective C and then iOS development. A third option is to learn to develop HTML5 mobile applications (which are disadvantaged by having limited control over phone hardware). In this article, we’re going to discuss the second option—learning native iOS development.
An immediate barrier some find in iOS development is that it must be done on a Mac with the tools Apple provides. Assuming you have a Mac, downloading XCode from the App store will provide you with all the tools you need to create iOS apps targeted to iPhone, iPad, or both. XCode is free, but the download and install process is long, so you might plan to leave your Mac running overnight.
Objective C is not a language for complete beginners. If you’re an experienced programmer when you learn Objective C, you’ll invariably make comparisons to other languages. Like C++ and Java, Objective C has a complex inheritance model and is class-based. It borrows the syntax from C, and is compiled in a similar fashion. It has an object model that is quite unique and a class-object messaging model that is unique as well.
If you want to create native iOS applications and you are completely new to programming, I’d recommend that you learn C Programming first. Surprisingly, C is one of the oldest programming languages still in use today. It has a very limited number of commands. Many experts say C is easy to learn and quite difficult to master. There are a number of good resources to learn C. First you can check out my C Programming course available here on Udemy: C Programming- iOS Development Starts Here. If you’d like a second resource, I recommend the free cProgramming.com resource and tutorial.
Once you have the basics of C nailed, it’s time to move on to Objective C.
The Languages: Learn Objective C
There’s an old joke: if you have three programmers, you have nine opinions. Programmers love to share their opinions—both positive and negative—of Objective C. The language was originally created by Steve Jobs and his team at NeXT, which created the powerful before-its-time NeXT personal computer. A marvel of engineering and a marketing flop, the NeXT computer used the Objective C programming language.
Tip: The Objective C language pays homage to its NeXT computing roots in the language itself. All objects included in the language begin with the letters NS, an abbreviation for NeXT Step.
Fast forward a decade and a half, and Objective C makes its reappearance in the development world as the language of Mac and iOS. Powerful and fun, Objective C is quickly accepted by the development community.
In my experience, the biggest obstacle to learning how to create native iPhone and Android apps is not understanding Objective C well. Once you understand Objective C, the libraries used to create even complex iOS applications will become understandable and usable. To learn Objective C with ease, I’d recommend learning it in isolation of iOS. In other words, don’t try to learn Objective C and iOS at the same time—learn the ins and outs of Objective C on the command line first, and then move it to the iOS environment.
There are surprisingly few resources that allow you to learn Objective C in isolation of iOS. Apple has a primer available, which more sophisticated and experienced programmers might find helpful. LearnToProgram offers a well-reviewed Objective C course here on Udemy as well, called Objective C for Beginners. A quick search of YouTube also shows a number of Objective C videos of varying quality.
After you learn Objective C, you’re ready to move on to iOS Development.
Now Apply it to iOS
Many would consider this the fun part. Using the Objective C that you learned, you’ll now include the iOS libraries and develop applications for iPhone and iPad. The XCode environment has a robust set of tools to help you create iPhone Apps. The storyboard tool, for example, lets you lay out your interfaces in a drag-and-drop environment and then associate them with blocks of code.
With a strong knowledge of Objective C, you’ll be creating working native iOS applications in no time.
About the Author:
Mark Lassoff is founder and president of LearnToProgram, Inc. On Udemy he teaches several courses including C Programming- iOS Development Starts Here, Objective C for Beginners, and iOS Development for Beginners. All three courses may be taken as a package in the popular iOS Development Code Camp course.