tags:

views:

118

answers:

4

Hi,

I have not used MAC OSX before, but I wanted to buy one for a very long time. Recently, i managed to buy one!!! Quite an investment I guess :).

I am very excited about iPhone development and I want to get my hands dirty as quick as possible. My doubt here is, do I need to buy a iPhone really to start the learning activities or any simulators are out there ? If so, how much more I have to invest in it besides the books?

Plz assist me.

+6  A: 

The iPhone SDK comes with the iPhone Simulator. You can use the simulator you start learning and testing your apps.

Only when you're ready to test on the device do you need to buy an iPhone or iPod Touch or iPad and then pay the $99 fee to become a registered iPhone Developer.

You can then create certificates and provisioning profiles that will allow you put apps onto an iPhone, and eventually distribute apps through the App Store.

Jasarien
Thanks Jasarien! $99 more I can definitely afford!!
Bragboy
Yeah creating certificates and provisioning profiles that allow you put apps onto actual hardware can be a pain so it's best to bypass for a beginner.
daveangel
+2  A: 

If you register as an iPhone developer with apple, the SDK you'll download will come with a (very good) simulator.

When preparing to ship, however, you really really really should test on real devices. Performance characteristics are quite different, as is finger precision vs. mouse clicks, available memory and accelerometer/gyroscope/compass. An iPod touch can get you started. In the long-term try to get your hands on every single device.

Eiko
+2  A: 

As already answered, Apple include a pretty good simulator which works for most debugging.

Depending on what you are doing, you may be able to get away with just an iPod Touch. You can pick up a refurbished 8GB touch for just $149 at the Apple Store (link here but if that doesn't work go to the store page and look down the lef- hand side for Refurbished iPod). A refurbished device will have a new battery and it's a good idea to have some older generation hardware to test for compatability.

Once you have a device, a useful purchase that lets you debug within the simulator but still have things like multi-touch and accelerometer input is iSimulate.

Andy Dent
+4  A: 

My suggestion is to purchase a device to work on as soon as you can. As Andy suggests, an older iPod touch is a great place to start. First, you need to get yourself acclimated to the platform, including how your users interact with it out in the wild. Live with the device as your primary media player for a week or two, and download other applications and see how they are laid out. Working in the Simulator is very different from actually holding the device in your hands. It's apparent which developers took the time to understand the platform and they way people use it when you look at the design of their applications.

In fact, I recommend picking up a first or second generation model, due to their slower hardware. If you are going to release an application that users will be able to run on the older CPUs and GPUs, you need to test your application against that older hardware. I've seen many developers fall into the trap of thinking that just because their application runs fine on an iPhone 3G S, it's good to ship, then they encounter crash after crash when users run it on older hardware (or it becomes too slow to use).

In the iPhone classes we teach at the Madison Area Technical College, we get our students to provision and install their first application on a device as soon as we can. It's vital to understand this process and we notice that it provides a real sense of accomplishment for the students to see their application running on actual hardware.

Brad Larson
Thanks for the advice Brad. Will try to buy a second gen model from ebay or somewhere.
Bragboy
+1 for "First, you need to get yourself acclimated to the platform, including how your users interact with it out in the wild." A touch-based UI is VERY different from anything you've worked with before, and has its own conventions and style. Users are comfortable with the interface they've learned, and know its rules even if only subconsciously. You want your app to follow those rules for minimum user frustration.
Dan Ray