So you want to become an iOS developer?
So one of the most common questions I see come up on forums on The Verge is about getting into app development. So I figured I should make this guide to help people with the process.
Should I get into iOS development?
If you're somebody who has a passion for technology and has always had a desire to get into software development, absolutely yes.
If you're somebody who is just looking to make a quick buck, absolutely not. Biggest reason being that you'll be wasting a year of your life doing something that very likely won't make you a dime.
How hard is learning iOS development?
The answer will vary from person to person. For me, learning was certainly challenging, but I can't say it was particularly difficult. I enjoyed the entire process and looked forward to having some spare time to put down some code. However, people do have different skills and interests. If you have little to no interest in technology, or if you're not very good at logical thinking, it will probably be one of the most difficult things you can attempt to do.
How long until I'll be good enough to put basic apps on the App Store?
If you're casually learning the skills needed in your free time, I would say about 6 to 9 months. If you take learning it more seriously, and work at it a few hours every day, you can be skilled enough within 4 to 6 months.
Will I be able to create super complicated apps after a few months?
No. Don't expect to be writing apps like Chrome or iMovie. What you will be able to make apps that are heavily reliant on the iOS SDK. But don't be too upset by this. The iOS SDK is a very powerful tool. You could be making simple applications such as Snapchat within 8 months.
What languages do I need to learn?
I see a lot of people are recommending that beginners start learning easier languages (such a Python) before learning C/Objective-C (the language iOS uses). This isn't absolutely necessary, but I do recommend people do this. Every line of code you write and every new language you learn will make you a better programmer. However, if you want to expedite the process, there is absolutely nothing wrong with learning C and then jumping into the world of Objective-C.
Is learning C optional?
No, no, no. You must learn C before learning Objective-C. This is not optional. Objective-C is an object oriented variant of the C language. Because of this, a lot of what make up Objective-C comes directly from the C language.
What do I need?
1. A Mac with OS X Snow Leopard or Later.
1. iOS Device
2. $99 Apple Developer Membership (you'll only need this if you plan on testing on your iOS device).
I do not have nor can't afford an iOS device. Will I be able to learn?
Absolutely. Xcode comes bundled with an iOS Simulator for you to test apps on. However, this is only a simulator and not an emulator. All it does is simulate the iOS environment so not everything will be 100% the same. What that means is that if you're writing simple applications, the iOS Simulator should be an excellent testing environment. But if you're writing very complicated apps, you really should be testing on an actual iOS device. It also should be noted that the iOS simulator does not have a camera or an accelerometer.
One last thing. Learning iOS Development on the simulator is fine. But if you're writing an app for the Store, you should be testing on an actual iOS device.
What does the $99 iOS Developer program get me?
If you're a beginner, the only thing of significance is the ability to test your apps on a physical iOS device. As I explained above, you won't be needing this. If you enroll in the iOS Dev Program, you'll be wasting your money.
For more advanced developers, the $99 iOS Developer Program enables them to put as many apps as they want on the store and allows access to various Apple services such as Push Notifications.
Books I should read?
Start by reading, Objective-C Programming, the Big Nerd Ranch Guide. This books starts off by teaching basic C concepts before moving onto the more complicated, Objective-C language. This book is perfect for people with zero programming experience. I strongly recommend that you complete the whole book. But if you're feeling lazy you can stop reading at Chapter 19. The second book I'll be recommending will be covering a lot of the content you'll be missing.
The second book you should read is, Beginning iOS 6 Development: Exploring the iOS 6 SDK. The book is an easy read and by the end of it, you'll be a proficient iOS developer. Don't expect to be an amazing developer though. That only comes with years of experience.
If you have any other questions, feel free to ask in the comments.