What Do I Need to Write iOS Apps?

Since this is my first official blog post on the topic of learning iPad programming, I thought it appropriate to explain what you need to get started. The most common question I get from those interested in iOS is, “What do I need to write apps for iOS?” My first response is, “You need a Mac.”

This tends to catch Windows developers off guard. “What? No Xcode for Windows?” Sorry folks. There’s no Xcode for Windows just like there is no Visual Studio for OS X. If you want to write native apps for iOS you will need to buy a Mac. But’s it’s not as expense as it may seem.

Let’s compare the cost…

Startup Costs for Windows Development

If you want to start writing native Windows apps, you need to buy a computer capable of running Windows. This will cost you $1000 to $1500 for a capable Windows development machine. You also need to buy the developer tools. Visual Studio Professional Edition with MSDN will cost you $1200, or if you prefer, Delphi Professional will cost you $900. And each two years or so, you will need to pay for the major updates to your developer tools.

You can save money by using Microsoft’s Express Edition of Visual Studio, but I view the Express Edition as developer tools for the hobbyist. I’m a professional developer so I think about what I need as a professional developer. And the Express Edition just doesn’t cut it for me.

Another development cost for Windows developers is third party components. I don’t know a single Windows developer who hasn’t invested in third party components to help improve their Windows app. The price for component suites vary, but it’s not usual to spend $1000 or more on third party components.

So the cost to start Windows development looks like this:

Computer: $1000 Development tools: $1200 Components: $1000

Total: $3200

Note this is a very simplistic look at the upfront cost. Your cost maybe slightly lower or higher. For instance, I’m assuming the computer comes with a licensed copy of Windows, though it’s likely a $1000 computer will come with one of the lower end editions of Windows. For professional Windows development, you need one of the higher end editions, which increases your cost.

Now let’s take a look at the upfront cost to start Mac OS X development.

Startup Cost for Mac OS X Development

You need to buy a Mac computer. Apple’s MacBook is a perfect entry level developer machine, and best of all, it will only set you back $1000. You can save money by buying a Mac mini, but the Mac mini does not include a monitor, keyboard, or mouse. So unless you already have those items, a Mac mini will not save you money.

Next you need to buy the developer tools. Your cost? Free. Yes, you read that right. Apple does not charge for developer tools. The tools are free as in beer. And because the application framework, called Cocoa, used to write Mac OS X applications is so robust you will find you do not need to rely on third party components. And any third party components that you might need are often open source with liberal MIT and BSD licensing. Your cost, again, free (though it is always a good idea to send a donation to support the development of the open source components you use most often).

So the break down for the upfront cost for Mac OS X development is:

Computer: $1000 Development tools: $0 Components: $0

Total: $1000

As you can see entering into Mac OS X development is cheaper than Windows development. But this posting isn’t about OS X development, it’s about iOS development. So what other cost are expected for iOS development?

Startup Cost for iOS Development

In addition to owning a Mac computer, you need to have an iOS device to test your application. You can buy the latest iPod touch for as little as $230 while the iPad starts at $500. You can save a few dollars by buying a used or refurbished device. I’m a huge fan of buying refurbished devices for development and testing purposes.

There is another cost for iOS developer. To install and test your iOS app on a physical iOS device, you must join the iOS Developer Program. Membership costs $99 per year.

So a break down of the upfront cost for native iOS development with an iPad looks like this:

Computer: $1000 Development tools: $0 Components: $0 iPad: $500 iOS Dev Program: $99

Total: $1599

The upfront cost is still lower than entering Windows development. But let’s say you are already a Windows developer and you already own a Windows computer. The fact that you must buy a new computer is an unexpected upfront cost. It might be nice if you could continuing using your current Windows computer, but buying a Mac isn’t a bad thing either. In fact, your shinny new Mac computer can run both Windows and OS X. Yep, the best of both worlds.

Getting the Best of Both Worlds

I’ll be the first to say a MacBook, while great for OS X and iOS development, may not be the best development machine if you need to also do Windows development. You will want to get an iMac or MacBook Pro with lots of RAM. This should come as no surprise to Windows developers. Windows and Visual Studio tend to be memory hogs. If you plan to do both Windows and iOS development then I recommend buying a Mac computer with a minimum of 4 GB of RAM, 8 GB preferred, and lots of hard drive storage, 320 GB minimum.

Your Mac can be setup to dual-boot between OS X and Windows, but my preferred approach is running virtual machines within OS X. VMware Fusion and Parallels make it possible to run Windows within OS X. While I prefer Fusion, both do a nice job of running Windows in a virtual machine. And both products are inexpensive, less than $100 each.

So now the upfront cost for a dual purpose development machine is a bit more because the you need to buy a more powerful computer, and optionally virtualization software, but the benefit is you have one development machine capable of running both Mac OS X and Windows. The best of both worlds. (And yes, you can run Linux too!)

This is exactly what I did in 2007. I wanted to explore Mac OS X but I still needed to run Windows for development purposes. I bought a maxed out MacBook Pro with 4 GB of RAM. Three and half years later, this machine is still going strong. To this day, it is my primary development machine, and it’s by far the best computer I’ve ever owned. It has already out lasted the Dell laptops I previously owned, which usually lasted only 2 years for me before having to buy another laptop.

Buying a Mac computer has definitely saved me money in the long run, and it’s has allowed me to pursue any and all of my development interest, from OS X and iOS development to learning Python and Ruby. To me, the Mac is the best development machine for all types of developers.

Summary

So to sum things up, here’s what you need to get started with iOS development:

  • You need a Mac.
  • You need the developer tools.
  • You need an iOS device.
  • You need to join the iOS Developer Program.

While the upfront cost for iOS development may seem expensive, it’s not when you compare it to starting Windows development. And for the professional developer, the Mac is by far the best computer to have as a development machine. It’s allows you to pursue all development interest without limitations.