The most recent person to ask me this was Tony Montoya via YouTube.
Thanks for the question Tony!
If you want to develop for iOS (iPhone, iPod Touch, iPad):
- Buy a MacBook and an iPod Touch
- Learn Objective-C
- Make your app!
- Subscribe to the $99 iOS Developer Program
You need a Mac in order to run Xcode and develop iPhone apps. Two affordable options if you're new to Macs are: the MacBook and Mac Mini. Mac Mini is like a desktop, but you need your own monitor, keyboard, and mouse. MacBook is a standard laptop, but has all the power you'll need to develop for iOS (figure an iPhone is guaranteed to be less powerful than your laptop), you don't need a MacBook Pro (unless you want one). I develop on a two year old Macbook.
As for the iPod Touch, if you don't have an iPhone already, you'll want to buy something in order to deploy and test your apps on a device. I use a 2nd and 4th gen iPod Touch (2nd gen to test on older hardware, 4th gen to test Retina support and background execution), and an iPad, I don't actually have an iPhone.
How can I learn Objective-C?
I bought a few books that were a huge help to me in learning Obj-C:
- Beginning iPhone Development by Jeff LaMarche
- Learn Objective-C by Mark Dalrymple
- C for Dummies by Dan Gookin
It took me a month or so to read some books / learn iOS enough to make an app, and another month to build Frustrating Tic Tac Toe.
A lot of your testing can be done in the Simulator (an emulated device running on your Mac). If you're using the accelerometer, you'll need to test on a device, but otherwise, why waste two months subscribed to the iOS Developer Program, not making any money?
...if this all sounds foreign to you, don't worry. Beginning iPhone Development by Jeff LaMarche will give you a good introduction to the tools you'll be using, including Xcode and the Simulator.
When you're ready to subscribe to the $99 iOS Developer Program, all the information on that can be found here.
If you want to develop for Android:
- PC or Mac is fine
- Learn Java
- Make your app!
- Pay a one-time $25 registration fee
Also, note that Android has a one-time registration fee. You don't have to subscribe to anything! So as long as you're committed to making an app, you could pay the $25 now or later. Here's the sign up page for that.
If you're in high school (or completely new to programming):
I would warn you that there's a lot to learn in order to make apps. I'm 24, approaching indie development with two college degrees (Computer Science and Electronic Media Arts and Communications), and a few years of game development industry experience behind me. If you dive right in, you might get daunted, and then you'll never make apps!
Here's what I would suggest: learn Game Maker. What's Game Maker? It's a program that helps you make (or prototype) simple games in a scripting environment. What's scripting? It's like programming, but where all the boring, heavy lifting (memory management for example) is handled for you behind the scenes. This allows you to focus completely on game logic.
Check out this post if you want to start using Game Maker.
Why is iOS so complicated? Because managing memory by hand can allow you to push hardware harder or more efficiently.
In the future I think game development will be more like scripting, but until then, I think it's best to start small. Programming (to me) is difficult, and I think it's most rewarding to learn how code works first, in a safe environment like Game Maker, where you'll see results faster, and with less effort!
Thanks for the question Tony, I hope this post points you in the right direction!
If YOU have a question for me, let me know!
Post a comment, find me on YouTube, or email me!