Do we need an iPhone/iPad for its development? - iphone

Today i was going through an website and found something over this iphone and ipad development projects. I had a question whether a developer requires an iphone to actually work with or is there any other simulator type device where we can test it out too.
It would be also great if you can share some docs on getting started.
Thanks.

We have applications that run without a problem on the simulator and crash on the device, so I'd say yes. You might delay it for a bit, and work on the main aspects and buy the device later, but you should have it.
You should start at the iPhone Dev center and depending on your knowledge of Objective C, try some tutorials for it. One of the first tutorials I read about Objective C, and which helped me a lot, is here
You can simulate certain gestures and actions while running the simulator: the developer.apple article is here

You can test many aspects without having an iPad.
There are, however, some that you cannot.
Touch
Acceleration sensor
3G internet
much more
I strongly recommend buying an iPad / iPhone to test the user interface. A PC and the iPad have very different user interaction models, it's hard to create a native feeling app without having an actual device.

You can develop with the iPhone SDK which include an emulator. http://developer.apple.com/iphone/index.action but you would probably be better off having one of the devices if your developing a complex application. For working with Camera's or sensors it's best to have a real device to test you code on.

I dont think there are any devices that run the iPhone system. If there are they are probably illegal.
There is emulator build in XCode.
You dont need a device to run your code etc, but try to test the touch and other sensors in the emulator.
So basically if you are planning on shipping something bigger than helloworld you probably should get the Apple device.

There must be an emulator (I'm not sure, that's a guess), but as with any other development you better have a real device as well so that you have better chances of reproducing problems customers will report.

For iPad development you must have Mac OS X 10.6 Snow Leopard

Related

What kind of iPhone / iPod Touch do I need to test my app?

I've written a fairly basic app for the iPhone, which I would like to test on at least one device and then get it onto the market place.
I don't need a data plan, so I'm considering buying an iPod touch, but I understand it doesn't have a camera, video, compass. While I don't need those for my current app, I might for a future one, nothing for sure there.
My concern about purchasing an iPhone, used or new, is that I believe I won't be able to use it without a sim card unless I jailbreak it. I'd prefer not to get involved with jailbreaking, as I'm unclear how it would my efforts to test the app on the device and/or get the app onto the app store.
If I get a new iPhone, I would have to cancel the contract immediately, and my same concern about the lack of a sim card would apply.
I'd be interested in people's experience with this issue, e.g. starting out with iPhone apps and not having an iPhone, is with this issue.
The newest iPod Touch does have a camera: http://www.apple.com/ipodtouch/
You should be able to test nearly everything you'd need to test on an iPod Touch.
Also, if you want to support older devices, it might be a good idea to also pick up a used, older, iPod Touch on eBay or somewhere, so you can test on a non-Retina display.
I have development going on without an iPhone but is preferred to develop with a device cause you could test your codes once in awhile. iPod Touch 4 does have camera. Anyway i think iPhone would still be able to function properly without a sim card just that you can't call. Otherwise getting an iPad is not that bad, since you can run both iPad and iPhone apps in iPad.
You may want to get the oldest slowest model of device running the oldest version of iOS on which you want you apps to be compatible. This may also be a low cost way to get into testing on devices. If your apps are commercially successful, you will be able to afford acquiring more newer test devices, but the old one may be the most valuable one for app testing purposes.
I have been using my old iPhone 3G for developement, mostly because it allows me to see how my code runs on one of the slowest devices out there.
The phone is not currently signed up with AT&T and it still works fine for development. For data access the wifi works fine without a carrier account. It also has the camera and (basic) GPS/mapping.
I could probably pick up a used iPhone 3G off one of the auction site relatively cheaply.

Do I need to buy Iphone for Iphone development?

Do I need to buy Iphone to develop Iphone applications on MacBook Pro? Or is Iphone SDK for the job?
Thanks.
Technically no, but obviously it would be handy.
Xcode provides an iPhone simulator that can handle most testing (but without support for accelerometer or microphone).
All in all, if you plan on doing iPhone development seriously - get an iPhone.
Technically you could use the emulator with the SDK but you really want some raw devices to test on due to subtle differences.
The iPod touch does a great job for testing apps on a real device. Its performances are very closed to the iPhone and it is much cheaper.
Technically no, unless you building apps related to accelerometer, microphone, sms or auto calling applications. The SDK comes with the iPhone simulator which is more than handy
You can use the Xcode iPhone simulator as well as the iPad simulator to test your code, all of which is free. The only issue will be accessing certain filemanagement which cannot be debugged on a simulator. However, you must have a computer running on Mac OS X and a valid Apple ID to download Xcode. Finally, in order to submit Apps into the App Store, you must buy a $100 developer's license with Apple.
Hope that help! And iPhone development is a ton of fun :)
Thommy
I highly recommend to get the device you're developing for. Since some issues will only will only come up by really using your app as intended.
The touchscreen and it's behavior for example can't really be testet in the simulator. If you want to do more than the next "Fart App" you should invest the money in at least one actuel iOS device.
I will speak from personal experience with a financial prespective
Can you afford it or is the short term compensation from the work going to cover the cost? The latest models are pretty expensive, so I would suggest looking for good deals on models that are a couple of years old. When I say short term, I mean 3 years or less. Because after that, there is a good chance that you are going to need to buy a newer model to take advantage of the SDK features available at that time.
Even if you can afford it do you need it immediately? Are you soon going to be developing features that are completely dependent on hardware and impossible with a simulator ? If no please push the purchase further down the line, by which time you would have made some money (or not) and you can buy a newer model.
Having a latest device gives you the freedom to try out and build apps using the latest SDK features that Apple rolls out, so you can stay ahead in the game. On the flip side, it would be good for development only as long as at least one of the apps that you are developing for runs the highest version of iOS supported by the device at any particular time. For example I bought an iPhone 5S some years ago and now none of the apps I am working on run on iOS 12. So I have very little use for it. Ah I guess the vicious upgrade cycle gets developers too :(

What are the potential issues of jail-breaking to test the new background APIs on a 3G?

I've registered/paid for the iPhone developer program, which allows me to test apps on a device. I have an old 3G that I would like to use. However, I'm interested in using the significant change notifications as well as it working in the background.
If I were to jailbreak to enable background processing and things like that, what issues could I have, and how likely are they to arise?
EDIT:
I actually do have an iPhone4, but I'm using it for my personal phone. I've heard that it's not to great of an idea to use your everyday phone as a development device. I've done a little more reading, looks like I could use Ad-Hoc distribution to test while avoiding the problems of using your primary phone as a development device. Seems like the only downside of this would be no debug info, other than logs.
iOS 4 has been hacked to allow home screen wallpapers and multitasking on iPhone 3G. (http://pixelatedgeek.com/2010/06/ios4-jailbreak-and-multitasking-now-available-for-iphone-3g/)
It seems to be running fine without any issues, probably not as fast as an iPhone 3GS or iPhone 4.
Just be careful if you use this as your main testing device and make sure you test on supported hardware before releasing. Personally, I'd use something that was 100% supported to be sure everything worked as expected. However, if you don't own a supported device this may not be possible.
Again, make sure you test on friends 3GS or 4 before releasing. I don't foresee any major issues, but testing features on hardware that isn't officially supported could cause problems.
Update: I've used my phone for development purposes before and haven't run into any earth shattering problems. If an issue comes up you can always restores your device.
If you are planning to target iOS4 you really, really really should spring for an iPhone4. You can understand how things will run on it, and also be able to see how the higher resolution display interacts with your app. I'm not sure running iOS4 on a hacked 3G will tell you much more than running in the simulator, and in fact because of the reduced memory may show some issues that just do not occur on real devices.
One other great option is a recent generation Touch. Although it doesn't give you the display to check against it is a good test platform for multitasking.

Will you publish your app without device testing?

me and my friend develop iPad application (a lot of CoreGraphics stuff). But we can't find an agreement. I tell him that testing on device is essential, he tells me that testing on iPhone 3G/3GS will be enough (I have both devices). Can you tell me, probably we really can test our app on 3GS? The main thing is that interface will be iPad designed, so I even not sure how we'll do that...
UPDATED: It is iPad only software, UI is designed for 1024x768
For a high quality product, you have to test on the device. The performance of the iPad is different, and if you have any interaction which involves threading, that can lead to race conditions that you might not find on the iPhone (slower) or the simulator (too fast). I've also seen a number of students run into memory issues that they didn't find on simulator, but that they discover on device.
This doesn't mean you have to buy a device - you can either solicit a friend with an iPad to be a beta tester, or you can lurk in a Starbucks or Peet's. You'd be surprised how many people will bring in iPads, and how many of them are willing to try out a new application.
You can use the simulator, but that's not enough. It is essential that you test your app on an actual device, because the performance on the simulator is vastly different than the device.
If you don't have the money or the iPad isn't available where you are, then ask someone who has one to be a beta tester.
IMHO testing on the device is one of the first rules of developing for a mobile platform.
Apple strongly recommends you test on device before releasing. The iPad and the iPhone are running two different versions of the OS on two different hardwares. Some functions are not really emulated on the simulator. You're asking for trouble.
On the other hand, if you don't have an iPad and you need to ship, you can always roll the dice.
We've ended up having it fail on different devices. Being a small company (about 30 people), we have quite a few different iPhones floating around. Even though we have pretty much every version covered, we still don't cover all releases of the OS. We've caught several bugs internally but there still seem to be some that happen out in the wild that just require different hardware/software configurations. In short, test on as many as possible, but it is very unlikely that you will ever be able to test on all software/hardware combinations.
I'd recommend having the latest iPhone, one that is one or two generations old, and probably the same for the iPad (when it ends up having older hardware versions), but DEFINITELY have both one iPhone and one iPad (and maybe even an iPod touch).
Use the iPad simulator in the iPhone SDK 3.2.
While the performance level can vary, so it certainly would be best to test on the actual device, don't let it be a barrier. You can use the performance analysis tools in the SDK to find problems.
You might try a beta release anyway.
Not a must but highly recommended. I cannot imagine what is worse than someone reports a bug but you have no way to confirm it's true or false. The iPad is faster than 3Gs generally speaking. Of course, your partner may have a "time to market" concern. So, there is no fix answer to this question.
It can be done but is not recommended. I had a iPad app in the store on April 1 before the iPad was released on April 3. It had been tested on real iPhones and the iPad simulator in the SDK. I don't recommend it but there was no choice at the time.
If the performance is acceptable on an actual iPhone 3G, it should be fine on the iPad which has a faster CPU.
You can test your application on simulator. but it is not enough to upload your application on app store because some memory issues generated on device which cannot be produced on simulator. So, better to test your application at least once before uploading on app store. You have to also check your application under performance tools like "leaks".

How to test on the IPhone without having access to one?

Want to write a site for the iphone, but I don't have one and I don't know anyone who has one.
Is there a way to develop for it without having access to one, maybe apple has some sort of sim for this or something.
Anyone know of anything?
An iPhone simulator is included with the iPhone SDK, which can be downloaded for free from here:
http://developer.apple.com/iphone/program/start/register/
Or, if you have the Safari web browser, you can use this for a fairly accurate result:
http://www.testiphone.com/ or http://iphonetester.com/
There's a iPhone simulator for Aptana (should work on any system) and an emulator Apple provides (if you have a Mac). I've not tested the Aptana one. The Apple one is pretty good, but it runs most web stuff much faster than the actual device.
Try buying an iPod Touch. It has most of what you need to test your code to make sure it's iPhone ready.
The simulator is available for convenience but you won't be able to check proper HIG such as buttons or text being too small.
For a quick test, try regular Safari zoomed until the dimensions of viewport are similar to those of iPhone. Safari exists for Windows too :) Moreover, you can ask it to present itself as iPhone (in the Develop menu) and try a couple of sites.
For a serious development you definitely need iPod Touch. You'll need to have a familiarity with how interface, both native and mobile web, works. The SDK won't be able to give you that.
I wonder though what kind of application you are developing. I don't think web-based applications are that useful or bring revenue at this moment.
I'd suggest running VM ware booting up Mac OS...
You'll need an intel CPU though but still, worth it.
See here:
How to load Mac OS Lion in a VM