Welcome to my inaugural post about iOS development. The topic may seem like a bit of a shock to readers, considering my focus on WP7 in TechRepublic's App Builder blog and .NET-related technologies in the Software Engineer blog. The truth of the matter is iOS development in the last couple of years has shifted from a niche skill to a "must know" for a lot of people. I have left a lot of work on the table because I lacked iOS experience. Here is what I am doing to start my path on iOS development.
The first thing you need is a Mac. I am funding this endeavor 100% out of my own pocket, which means that saving money is important. While Mac's are more expensive than PCs, there are still a number of good, inexpensive choices. I put my attention on the Mac mini series, which start at a very low price ($599). It was a tough choice. All of them can be upgraded in RAM (do it yourself to a save a fortune). There are two desktop models and a server model. I was stuck choosing between the higher-end desktop model (discrete graphics card) and the server model (quad core CPU and faster hard drives) and opted for the server. Between the iPhone/iPad emulator, compilers, and possibly running VMs down the road, a quad core made the most sense. It comes with 4 GB of RAM and two 500 GB drives; I will likely be upgrading to 8 GB or even 16 GB of RAM in the near future.
I also ordered a Magic Trackpad to help use the iOS emulator as closely as possible to an actual iPad or iPhone. To start, I will be using an iPad to verify application operation, so I ordered a basic, 16 GB WiFi-only new iPad (aka iPad 3). Down the road I will also get an iPhone for testing. Finally, I ordered a copy of Learning iPad Programming: A Hands-on Guide to Building iPad Apps with iOS 5 by Kirby Turner and Tom Harrington.
Of note, I ordered everything through Amazon. Amazon gets it out the door a bit quicker than Apple with two-day shipping via Prime. In addition, Amazon is able to not charge sales tax while Apple will, which saved significant amounts of money. The tradeoffs are that Amazon has a 15% restocking fee on returns of the Mac if it is not liked/needed/etc. (Apple has a 14 day, 100% money back return policy, regardless of the reason), and that Amazon cannot customize the package like Apple can. If this were not my money, I'd order from Apple instead.
Once I got everything in, I hooked it right up to my DVI KVM. No need for any special adapters, an HDMI-to-DVI adapter comes out of the box. If I want to connect a second screen (which I will, if I decide the Mac replaces my Windows machine for primary use), then I will need a Mini DisplayPort-to-DVI adapter as well (you might not need to, depending on your monitors). The Mac works fine with a standard Windows keyboard layout and mouse. You will want to print out the Mac keyboard shortcut list.
Initial configuration was simple, even considering that it was establishing server settings that a desktop would not need. I added Xcode (the free IDE for Apple development, available in the App Store), Chrome and Firefox (with Chrome as the default browser), Microsoft Office, the Twitter client, Sky Drive (to sync stuff with my Windows PC), Vienna (RSS reader), and MenuTab (Facebook client). The App Store is a great place to find things, but most of the interesting apps cost money, and some cost a lot of money. I was happy that Office was bundled in a Remote Desktop application, which was critical. Getting my printer hooked up was a snap (it even detected it before I looked for it).
Something that needs to be made very clear here: I have used Mac OS in the past (well over 10 years ago), but not OS X. I have been a Windows-only person, other than some command line *Nix work. I am not an "Apple fanboy" and other than buying gifts for my wife, this is the first time I've ever given Apple money for anything (I don't even use iTunes). I have taken issue with many of Apple's policies in the past, but at the same time, I don't "hate" Apple or anything like that. All of this being said... other than readjusting to the new keyboard shortcuts, the Mac is very usable. It is fast (of course, my Windows PC is loaded down with a million tons of databases, Web servers, and other development tools). While I intended to use the Mac for development only, there is a very real chance that the Windows PC will be relegated to "development only" instead. The Mac will get a fair evaluation, but that is a topic for another time and another day.
The total cost to get started (including the book) was $1,628.72, not including a few extra bucks I spent on one-day shipping from Amazon or the $99 iOS developer membership (on par with an App Hub membership for WP7 and probably Windows 8 development - not needed until you are ready to deploy to a device or put an app in the App Store). Is that expensive? Compared to a Windows box with equal hardware specs, definitely. But compared to a Windows box plus Visual Studio ($499 for Professional Edition with "MSDN Essentials" or $1,199 for Professional Edition with a true MSDN subscription) it is a pretty even comparison unless you can make do with the Express editions of Visual Studio (any decent developer machine will run roughly $1,000 for a desktop in my experience). And don't forget, that price includes the iPad!
If you are a Windows developer looking to get your toes wet with iOS development, putting together a development package is not as expensive as you might think. You can save a bundle of money by getting an iPad 2, opting for the slower desktop model, etc. In fact, a base desktop model ($599) and an iPad 2 ($499) is a very acceptable combination, and comes in at the cost of a good Windows PC.
Stay tuned next month as I show you how to get started with your first iOS project!
Justin James is the Lead Architect for Conigent.