iPhone GameKit Picker Fundamental Connection Issues - iphone

This is one of the more interesting things I've seen in iPhone development.
The following question has nothing to do with code because I'm using an SDK Example from Apple (Tanks example).
I have a 3GS iPhone, and a 3G iPhone both showing the GameKit picker screen. Both will eventually show the other phone in range just fine (It does take about 25 seconds, though).
If I pick the 3G iPhone with my 3GS, the 3G will get a connection request and a connection can be made. However, it will ABSOLUTELY not work in the vice versa. Both phones have bluetooth switched on, and both phones are running the latest OS version.
The simple fact is I'm using the SDK example, and it's just not working for the 3G trying to issue the connection. Is there any way to explain this extremely odd behavior?
Thanks alot for reading!

I've seen the same problem, intermittently though. I don't think it's that odd because the 3G and 3GS actually use different Bluetooth tech. IMO, the Bluetooth on iPhone just isn't there yet.

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.

iPhone iAds Not working on iPhone 4

I have an iPhone app in the app store, but I am having a problem with iAds. iAds are showing up as they should on iPhone 3G and iPhone 3GS phones that have downloaded the app, but the iAds are not showing up on any iPhone 4 phones. They are all running the latest software version (iOS 4.2.1). Also, both iPhone 4 and iPhone 3GS phones were both correctly displaying test iAds during my testing phase. Does anyone know what might be causing this issue? Thanks in advance.
The iAds service currently has a really low fill rate (ie, you won't receive an advert every time you request one and, particularly outside the US, are often quite a bit more likely not to receive one). Quite probably either what you're seeing is a coincidence or the particular ads that Apple happens to be running at the minute in your territory aren't being supplied for the iPhone 4 with your app's combination of other ad-relevant metadata (and exactly what Apple use is undisclosed, just assume all the information you supply about your app may be relevant when picking which adverts to serve).
If your app showed the test iAds correctly then it'll show proper iAds correctly. Since Apple require that you properly implement showing/hiding of the iAd bar based on whether you receive an advert, it's safe to assume that they test this feature of your app.

Are IPhone apps guaranteed to work on iPod touch?

Since, I don't have the iPod touch simulator in xcode, and I don't have an iPod touch device there's not much of a way for me to test my app on this device. Since it works on iPhone 3gs and iPhone 4 can I safely assume it works on the iPod touch too?
Thanks!
In short, yes, it should work just fine.
You need to think about things that aren't in the iPod touch. You won't be able to send a text from the device so you need to conditionally code for it. As long as you're smart about it, you can easily code for both devices without having to own both. I would suggest getting one though, even last year's model. It's worth the investment and reassurance.
I don't think anyone can give that warranty. It all depends on how the app is implemented. There are certain differences between the iPhone type and the iPod Touch and as long as you code the app defensively (i.e. taking care that features that are not available can be overcome) you'll be ok.
The two most obvious ones are:
not all iPod touches have all features present in the latest incarnation
the iPhones are always connected
the iPhone 4 has a second camera - for example, a mirror-like app won't work on anything else than iPhone 4 and latest iPod touch
The best thing you might want to do in your case is to run the app on an iPhone in Airplane Mode.
Also, might be worth looking around for a previous generation version - you can get good deals in the Apple Refurbished Store.

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.

Do we need an iPhone/iPad for its development?

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