Quote from yvesB on 05/10/10 at 6:26am:Nick, iPhone 4.0 will be available only to 3GS owners. This will leave out many iPhone 3G devices which is too bad.
Any reason why you couldn't (or can't) target your project for the 3.2 OS?
I'm going to tiptoe around the iPhoneOS 4.0 NDA here.. so please excuse the lack of specifics..
1. Multiple versions = lots of effort
The problem is that there's currently a wedge between the iPhone and iPad in terms of development - iPhones sit on 3.1.2, the iPad sits on 3.2. They are different and it would require device testing to detect them. I would love for them to rejoin and so I wouldn't have to worry about the variations between versions - I don't honestly know if this will happen in 4.x or not but that is my personal gamble for keeping up with the latest/greatest so that one code base could support both.
The open source nature of the project allows any developer to contribute to make the code work on both post 4.0 and pre-4.0 devices. Unfortunately I only have time/resources/effort to focus on the devices I have.
2. Simulator != device
The SDK simulator is well known to allow applications to use non-device supported functions because it links against the OS frameworks (it doesn't run the phone firmware for example). This means to actually get the code working properly requires the devices at the right iPhoneOS level. I found this out when coding the first iPhoneSRV. So even if I did code up for the iPad under a simulator, it's impossible for me to verify if the application would work on the device.
I don't have plans to purchase an iPad for personal use - I have an iPhone 3Gs, a MacBook Pro3,1 and a MacMini. The MBP is faster than an iPad and is more useful thanks to the SSD. I don't have a 3.x device to test on, it's either 4.0 or 10.6.3.
Have I tried it on the iPad SDK 3.2 simulator? It does not work. The additional screen real estate would make a great SRV control device..
3. The ball and chain to functionality.
I understand that 3.1.2 would allow jailbroken phones and older iPhones to be used as controllers etc. I've not heard of a jailbroken iPad, nor do I assume that the current focus on Apple making their own hardware CPU bodes well for the jailbreak community. This would mean that (a) those users would remain on 3.1.2 or earlier, (b) limit the functionality that can be added on those platforms.
iPhoneOS has some new stuff that does underpin the R3 and R4 functionality I had planned. It's easy enough to make the code only available on compatible versions of the OS by making the different versions have different build targets. The incompatible code can then be tagged according to the build target.
So for the initial release of the new version, I'll continue to run with iPhoneOS 4.0 as it's what I'm geared up todo. After, that release is up and running, perhaps someone can create a 3.1.2 version of that release as we press ahead with R3 features on the roadmap.