iOS5 / iPhone 4S: Preventative maintenance
by Brian Szatkowski · in iTorque 2D · 10/06/2011 (6:57 am) · 12 replies
Hi All;
Well, as most are likely now aware, Steve Jobs passed away yesterday. We lost a true innovator in the field; one which has afforded us the opportunity to be here in this forum discussing how we may utilize the visionary technologies he brought to fruition.
As if the announcement of Steve's passing wasn't a blow enough to one's mind, Apple also released the announcement that we must now develop with iOS5. For those that have not yet started testing out current projects with the new iOS version (irregardless of which version of iT2D you are using), you best start crackin'.
Additionally, as if that were not enough, Apple also announced the release of the iPhone 4S...in one week. The big (potential) issue I see is the addition of the dual-core A5 chip. The purported graphics speed increase sounds amazing but I fear that any iT2D app developer whom has "tweaked" the engine core to try and obtain better graphics performance may run into unwanted "benefits" from this increased speed (this is in reference to the posts I have read about people modifying speeds/frame-rates based on device). Hey, at least the resolution is still the same as the iPhone 4. Whew! [Wipes sweat from brow]
While I am optimistic that any issues we encounter will be overcome, I cringe at the thought that, once again, refactoring my code to run on iOS 5 will introduce more delays.
Thoughts?
Well, as most are likely now aware, Steve Jobs passed away yesterday. We lost a true innovator in the field; one which has afforded us the opportunity to be here in this forum discussing how we may utilize the visionary technologies he brought to fruition.
As if the announcement of Steve's passing wasn't a blow enough to one's mind, Apple also released the announcement that we must now develop with iOS5. For those that have not yet started testing out current projects with the new iOS version (irregardless of which version of iT2D you are using), you best start crackin'.
Additionally, as if that were not enough, Apple also announced the release of the iPhone 4S...in one week. The big (potential) issue I see is the addition of the dual-core A5 chip. The purported graphics speed increase sounds amazing but I fear that any iT2D app developer whom has "tweaked" the engine core to try and obtain better graphics performance may run into unwanted "benefits" from this increased speed (this is in reference to the posts I have read about people modifying speeds/frame-rates based on device). Hey, at least the resolution is still the same as the iPhone 4. Whew! [Wipes sweat from brow]
While I am optimistic that any issues we encounter will be overcome, I cringe at the thought that, once again, refactoring my code to run on iOS 5 will introduce more delays.
Thoughts?
About the author
#2
Could you elaborate on the specific changes you had to make (or reference another post in which you may have already detailed those changes)? I am using a heavily modified version of 1.4.1. I intend on submitting my app against that build (Though the 1.5 updates look promising for future projects, I cannot devote the time to updating now and refactoring all of my code).
I haven't checked (as I will not be getting one) but can your pre-order be done online or is it in-store pickup only? I had pre-ordered my iPhone 4 online and Fed-Ex actually dropped it off the day before the phone debuted in stores. I was elated to send out the "First!" messages to friends. :)
Thank you!
10/06/2011 (7:52 am)
@Michael - You stated:Quote:
We only had to make a couple changes to the source code to get it compiling.
Could you elaborate on the specific changes you had to make (or reference another post in which you may have already detailed those changes)? I am using a heavily modified version of 1.4.1. I intend on submitting my app against that build (Though the 1.5 updates look promising for future projects, I cannot devote the time to updating now and refactoring all of my code).
Quote:
The purchase request for an iPhone 4S has already been approved. Of course, that probably means I will be in a long line on opening day. Not my favorite way to spend a morning, but the goal is to test on hardware on day one.
I haven't checked (as I will not be getting one) but can your pre-order be done online or is it in-store pickup only? I had pre-ordered my iPhone 4 online and Fed-Ex actually dropped it off the day before the phone debuted in stores. I was elated to send out the "First!" messages to friends. :)
Thank you!
#3
1. Xcode_iPhone projects have been modified to always use the default system settings for compiler version. This brings resolves a compiler issue with iOS 5 SDK beta (version 7). The current 1.4.1 Xcode_iPhone projects use a setting that is not longer valid in the iOS 5 SDK's Xcode.
2. There is a compiler error related to EAGLContext. This was a simple fix. Just comment out the following line in engine/source/platformiPhone/iPhoneOGLVideo.h:
On line 51:
That took care of our iOS 5 woes. If I remember anything else, I will post that here as well. There was a lot more work that had to go into making the engine compatible with Lion, but that's a separate topic.
10/06/2011 (7:58 am)
@Brian - Let me pull up our revision notes:1. Xcode_iPhone projects have been modified to always use the default system settings for compiler version. This brings resolves a compiler issue with iOS 5 SDK beta (version 7). The current 1.4.1 Xcode_iPhone projects use a setting that is not longer valid in the iOS 5 SDK's Xcode.
2. There is a compiler error related to EAGLContext. This was a simple fix. Just comment out the following line in engine/source/platformiPhone/iPhoneOGLVideo.h:
On line 51:
struct EAGLContext;
That took care of our iOS 5 woes. If I remember anything else, I will post that here as well. There was a lot more work that had to go into making the engine compatible with Lion, but that's a separate topic.
#4
Thank you for your prompt reply.
OK, so change the Compiler Version in the Project's Build Settings to be System Default (presently LLVM GCC 4.2 in my version of XCode), and modify that one line of code.
I most certainly would appreciate anything further info/changes as they come to mind. It will likely be a few days before I download iOS5 (I'll just wait for the live release version as I've got enough code to still work on before tackling that update). That gives me the rest of the week.
Luckily, I'm using Snow Leopard, so no worries there.
Thank you again for the quick feedback!
10/06/2011 (8:33 am)
Michael;Thank you for your prompt reply.
OK, so change the Compiler Version in the Project's Build Settings to be System Default (presently LLVM GCC 4.2 in my version of XCode), and modify that one line of code.
I most certainly would appreciate anything further info/changes as they come to mind. It will likely be a few days before I download iOS5 (I'll just wait for the live release version as I've got enough code to still work on before tackling that update). That gives me the rest of the week.
Luckily, I'm using Snow Leopard, so no worries there.
Thank you again for the quick feedback!
#5
Apple has already had that requirement with iOS4, the day it came out you had to use it as your base SDK. you don't have to target it but you are not allowed to use the old SDK any longer.
I've warned people since 4.3 that iOS5 will go to get rid of the question "shall i support pre 3GS or not", either immediately or within a matter of weeks, as apple only uses the current gen devices for testing and verification anyway and they want to stay up and ahead of android, stuff opted for shit devices isn't going to do that ;)
Also in what way is the inclusion of the dual core A5 a problem? It has been around since early this year through the iPad2 which has a pretty large userbase by now ... if you missed it you can't really blame apple for it :P
But good to see the required changes are that minimal, thanks for the infos
10/06/2011 (5:52 pm)
The requirement to use iOS5 is not exactly a surprise.Apple has already had that requirement with iOS4, the day it came out you had to use it as your base SDK. you don't have to target it but you are not allowed to use the old SDK any longer.
I've warned people since 4.3 that iOS5 will go to get rid of the question "shall i support pre 3GS or not", either immediately or within a matter of weeks, as apple only uses the current gen devices for testing and verification anyway and they want to stay up and ahead of android, stuff opted for shit devices isn't going to do that ;)
Also in what way is the inclusion of the dual core A5 a problem? It has been around since early this year through the iPad2 which has a pretty large userbase by now ... if you missed it you can't really blame apple for it :P
But good to see the required changes are that minimal, thanks for the infos
#6
I like to keep devices at different iOS versions as well for testing purposes. That 2nd Gen used to be kept at 3.1.3, but I was forced to update during 1.5 testing.
10/06/2011 (6:22 pm)
Sometimes testing against pre-3GS devices can really help your product overall. Testing the Feature Demo on a 2nd Gen device let us quickly find an issue that actually affected all devices that otherwise may have taken longer to discover if we only used current gen. Plus now we get to boast about the Feature Demo getting near 30 fps on 2nd Gen devices.I like to keep devices at different iOS versions as well for testing purposes. That 2nd Gen used to be kept at 3.1.3, but I was forced to update during 1.5 testing.
#7
Apple already has hinted this out for a long time by first removing xcodes capability to debug connect to iOS 3 and later on cutting other things for ARMV6 too up to the point where 4.3 completely dropped it. That was a relatively clear statement as it was mid iOS version, that apple has no intend to let ARMV6 have any future. Its bad enough that google still allows new devices to be created and sold that run on ARMV6 and MSM7xxx Qualcomm cpus from 2007 and earlier.
Apple fights this by just not allowing it to be targeted any longer while at the same time offering 3GS and 4 at lowered prices / free on contract to clearly pull people over that so far didn't want to invest money
If my assumptions and predictions are right apple will remove all ARMV6 only builds (done to save filesize for the 20mb limit while supporting armv6 too) from the appstore before 2011 is over.
10/06/2011 (6:44 pm)
Yes but 4.3+ no longer support ARMV6 so if the 5.0 base SDK gets enforced, that automatically means that you can not target ARMV6 at all anymore which is the whole host of 'trash' prior 3GS.Apple already has hinted this out for a long time by first removing xcodes capability to debug connect to iOS 3 and later on cutting other things for ARMV6 too up to the point where 4.3 completely dropped it. That was a relatively clear statement as it was mid iOS version, that apple has no intend to let ARMV6 have any future. Its bad enough that google still allows new devices to be created and sold that run on ARMV6 and MSM7xxx Qualcomm cpus from 2007 and earlier.
Apple fights this by just not allowing it to be targeted any longer while at the same time offering 3GS and 4 at lowered prices / free on contract to clearly pull people over that so far didn't want to invest money
If my assumptions and predictions are right apple will remove all ARMV6 only builds (done to save filesize for the 20mb limit while supporting armv6 too) from the appstore before 2011 is over.
#8
10/06/2011 (7:18 pm)
Quote:Also in what way is the inclusion of the dual core A5 a problem?Primarily because Apple has made me insanely paranoid over the years. Any and every change to hardware, OS or SDK makes me twitch a little. You're right, there shouldn't be a problem because the engine works well on an iPad 2. If anything, it should run better since there is less fill rate to worry about. Still, I'm just paranoid.
#9
And the iPhone 4S has the A5 underclocked, cause they mentioned that between the lines with
'up to twice as fast' -> iPhone 4 was 20% underclocked already
'up to 7 times as fast graphics' -> given that it has a smaller screen size it should be even faster if it were the full clocked A5, yet its slower
'up to 9h battery life time on wifi' -> the ipad2 pulls of 10h and that with a 3 times as large battery
I expect that like the iPhone4 it will run on 80% of the ipad 2, so the graphical side will be about 10% slower thanks to the smaller screen, the cpu side 20% slower.
The only open question to me is the amount of RAM ... I hope for 1024 so I can reasonably consider switching from my Galaxy S2 that stomps any apple device to day with the hands on the back (including ipad2)
BUT: I was just on the developer page and I fail to see where it says you have to use the iOS5 SDK.
The only thing that happened is that you can now use the iOS5 GM SDK to send in your iOS5 apps using icloud etc, but there is no requirement to do so.
10/07/2011 (8:04 am)
'less fillrate' hehe ... well its still a lot.And the iPhone 4S has the A5 underclocked, cause they mentioned that between the lines with
'up to twice as fast' -> iPhone 4 was 20% underclocked already
'up to 7 times as fast graphics' -> given that it has a smaller screen size it should be even faster if it were the full clocked A5, yet its slower
'up to 9h battery life time on wifi' -> the ipad2 pulls of 10h and that with a 3 times as large battery
I expect that like the iPhone4 it will run on 80% of the ipad 2, so the graphical side will be about 10% slower thanks to the smaller screen, the cpu side 20% slower.
The only open question to me is the amount of RAM ... I hope for 1024 so I can reasonably consider switching from my Galaxy S2 that stomps any apple device to day with the hands on the back (including ipad2)
BUT: I was just on the developer page and I fail to see where it says you have to use the iOS5 SDK.
The only thing that happened is that you can now use the iOS5 GM SDK to send in your iOS5 apps using icloud etc, but there is no requirement to do so.
#10
10/07/2011 (9:04 am)
We've decided no longer to support the pre 3GS devices for Cannibal Cookout, so will be compiling for armv7 only.
#11
Mich and I actually debate this pretty much every iTorque release. He doesn't want to see me waste effort that can be applied elsewhere, and I want to maintain the widest possible breadth while testing. Ultimately, Apple dictates it in the end though.
10/07/2011 (12:24 pm)
I definitely see them heading that direction. I'm not saying that it's wise to target Pre-3GS devices exactly, but testing against them while still able isn't exactly wasted effort.Mich and I actually debate this pretty much every iTorque release. He doesn't want to see me waste effort that can be applied elsewhere, and I want to maintain the widest possible breadth while testing. Ultimately, Apple dictates it in the end though.
#12
10/07/2011 (4:47 pm)
The problem with supporting it is that it is a rapidly shrinking minority. It was below 20% share prior the iPhone4 and the iphone 4 has sold as many devices as the 3 generations before it together. The pre 3GS generations together have a remaining install base of like 8M devices and thats without taking into account the new pricing for 3GS and iPhone4. Sounds like a lot. But keep in mind that the whole install base is beyond 250M now so they really are an install base thats just no longer worth supporting as the time required to 'degenerate a good game to a simple game' to make it run there fine is just so much higher than the gain you can have and within the next 12 months you can no longer target them anyway, as the 3G generation will reach its 3 years next summer and thats the latest possible point in time it will be cut as the itouch2 will then have reached its 2 years too
Employee Michael Perry
ZombieShortbus
You bring up a good point about the hardware. For testing and development, it really all boils down to how it runs on the hardware. The purchase request for an iPhone 4S has already been approved. Of course, that probably means I will be in a long line on opening day. Not my favorite way to spend a morning, but the goal is to test on hardware on day one.
I can agree with this.
Yeah, no kidding. I was sweating bullets over this, having just worked on universal app support for v1.5