6 ms·
I've had more fragmentation problems with iOS/iPhone than with Android
- J3L2404 16y ago'I found some potential problems in my app, fixed them and posted an update' 'Of course this was a time when Apple approved an update fast and it went out before I could test and I had not fixed all the issues.' 'I must have fumbled in the SVN check in.'
- tlammens 16y agoSo initially there were problems with the code and afterwards with his development process. I fail to see what this got to do with iPhone vs. Android. It could have happened with both platforms.
- blueben 16y agoHis point is that Android made it easy to test multiple platforms, and Apple did not.
- spaznode 16y agoWhen you say "multiple" and "easy" what exactly is the implication there? Worrying about 5-6 revisions of an API or 30-70 variances of the same problem on multiple pieces of hardware with multiple variances of platform debauchery forced upon you by a given mobile carrier? It just isn't possible to make the case that this aspect of android doesn't make things harder and still retain any semblance of honesty or credibility.
- blinkingled 16y agoRead the Android developer docs. API Levels document especially. Also play around with the emulator and that will clear up your misconceptions. It isn't hard at all unless you want to convince yourself that it is ;)
- aaronbrethorst 16y ago> I was not worried about breaking it again as the changes in this update did not touch anything that had issues before...I must have fumbled in the SVN check in. Even if this wasn't the case, it's always possible that some new chunk of code you're adding requires a library that doesn't exist on down-level OS versions. Or the new code doesn't properly check existing libraries for the availability of classes or methods (e.g. some UIKit classes only exist in iOS 4.0 and up. To ensure that your app doesn't crash on older versions, you need to test for the existence of the class you want to instantiate). If any of these conditions hold true, crash city. I own every iPhone that Apple has released, and I keep my original iPhone on 3.1.3 for precisely this kind of scenario. In fact, just yesterday I had to fix a couple iOS 3.1.3-specific bugs, and couldn't have done it without that original iPhone. Long story short: if you're going to claim you support a particular platform, you better test on it. If you can't or won't test on it, then don't support that platform as a deployment target.
- nhangen 16y agoExactly. In this case, the developer should've either tested prior to release (on 3.0), or specified a 4.0 build.
- jinushaun 16y agoThe problem is that Apple deprecates their SDK really quickly. As developers, that makes it really tough to test old versions of iOS when installing an updated SDK REMOVES previous versions!! Even if you select an older "OS Deployment Target", you're out of luck unless you have a device to test it on. The Simulator is always running the latest version. I guess they assume everyone will upgrade, but a lot of people don't or can't.
- nhangen 16y agoIt's tricky. I wish they made it easy to downgrade to other iOS versions as well.
- jbrennan 16y ago> The Simulator is always running the latest version. Actually this appears to be false now. I just fired up my iOS Simulator, and in the "Hardware" menu I can select which OS version I want, either 3.2, 4.0.2, 4.1, or 4.2.
- dazzla 16y agoThat's right you can select all those versions accept 3.1.3 and that is the problem.
- natch 16y agoWhy is that the problem? Just install Xcode 3.2.2, which does include support for the Simulator 3.1.3. You can get it from http://connect.apple.com/ http://connect.apple.com/ - select Developer Tools, find 3.2.2. in the page, download it, and install it to a directory other than the default /Developer, so your existing tools won't be affected. You might want to skip the installation of the developer utilities, since the ones from the current Xcode will be more up to date. But you still are missing an important point. The Simulator is not an emulator. It does not run the same instruction set as the device itself. So the best way to test is still with actual devices running the versions of the OS you are interested in testing.
- oemera 16y agoEvery developer who has ever used the Android VM should know that testing on it IS NOT a bulletproof test. Sometimes things work on the device which aren't working in the VM even if it is the same version, resolutions and so on. Sometimes things will work in the VM and not on the device. You don't believe me? Go on and try to stream a video on a Android 1.6 VM. BTW: I'm developing a iPhone App in my spare times and a Android at work.
- sdgherhe 16y ago-------- http://bit.ly/eTAvV5 http://bit.ly/eTAvV5 -------- -------- http://bit.ly/eTAvV5 http://bit.ly/eTAvV5 -------- -------- http://bit.ly/eTAvV5 http://bit.ly/eTAvV5 -------- -------- http://bit.ly/eTAvV5 http://bit.ly/eTAvV5 -------- -------- http://bit.ly/eTAvV5 http://bit.ly/eTAvV5 -------- -------- http://bit.ly/eTAvV5 http://bit.ly/eTAvV5 -------- Gold autumn, personality Men’s clothing Shoes, Travel bag that grabs an eye coat Chao packet Free transport -------- http://bit.ly/eTAvV5 http://bit.ly/eTAvV5 -------- -------- http://bit.ly/eTAvV5 http://bit.ly/eTAvV5 -------- -------- http://bit.ly/eTAvV5 http://bit.ly/eTAvV5 -------- -------- http://bit.ly/eTAvV5 http://bit.ly/eTAvV5 -------- -------- http://bit.ly/eTAvV5 http://bit.ly/eTAvV5 -------- -------- http://bit.ly/eTAvV5 http://bit.ly/eTAvV5 --------
- xuki 16y agoInstead of testing on 5+ devices for Android, you just have to buy an old iPod touch with 3.1.3 on it. Is it too costly for you?
- dazzla 16y agoI had an iPod Touch with 3.1.3 on it but by then I'd upgraded to to 4.x with no way to downgrade it. Sure I could have bought another sooner but this is not something I was expecting as up till that point I could always test in the simulator for any version.
- xenophanes 16y agoyou can download old versions of iOS and downgrade your ipod.
- dazzla 16y agoIt has been a few months since I tried to downgrade but I certainly did try and killed too much time in the process. Could you point me in the direction of some instructions?
- xuki 16y agoIt's fairly easy, just save your old SHSH blobs (I always jailbreak my device so I'm not sure if jailbreak is required, there's a tool called TinyUmbrella to do it), then you can downgrade to whatever version you want.
- megablast 16y agoYou can, but it is a hassle, and Apple certainly could have made it easier.
- blinkingled 16y agoYou don't have to test on 5+ actual Android devices - emulator supports creating specific devices with different hardware and software versions. Plus you can alway push your beta in the market and let lots of users with actual devices do the real testing for you.
- MichaelApproved 16y agoHow is this a major fragmentation problem? This is a story trying to point out fragmentation issues but only points to one problem (testing on iOS 3.1.3). There are many more fragmentation issues with Android than this one story.
- kjksf 16y agoThe reason people bring Android fragmentation as a negative is because they claim it's hard for developers to support all different Android devices. This post shows that iPhone has the same problem: every iOS version is a fragmentation point. If you want to support version X1, X2, X3, X4 etc. of iOS you have to make sure it works on all those versions, just like if you want to support version X1, X2, X3, X4 etc. of Android, you have to make sure it works on all those versions. The post shows another thing: that while Google makes it easy for developers to support all OS versions by providing decent development tools (i.e. emulator that supports older OS versions) and providing developer-friendly phones (so that you can install different versions on the device). In contrast Apple makes it difficult by forbidding developers to downgrade their phones for testing or providing emulators for older devices so developers have to jump through major hoops to make sure that their software runs on devices that are still being used by a nontrivial amount of users. To summarize: in practice supporting multiple version of Apple's iOS is harder than supporting multiple versions of Android due to Apple's shitty developer tools and their general shitty attitude to developers, at least according to that one developer.
- podperson 16y agoNo, the problem here isn't supporting _devices_ but OSes. If you flag your app as v4 (correctly) anyone who wants to use it can upgrade to v4 and use it. No fragmentation. Under Android it's a dog's breakfast just on that point, forget screen resolutions etc.
- blinkingled 16y agoHave you developed for Android and released a useful app? What are you basing your dog breakfast story on? That doesn't ring true at all for anyone who has developed for Android.
- blinkingled 16y agoSome things that may have helped him not get into issues with Android - You can create AVDs (Android Virtual Device) that have different hardware capabilities (RAM, Camera, SDCard, Screen Sizes etc.) and run different versions of Android - 1.6 to 2.3 as of now. This makes testing your app very easy - you just set a minimum SDK version and if your app doesn't do weird things (uses features that don't work on a version of Android and declares support for that version)- most times it works very well. API Levels - API changes are mostly additive and old APIs are carried forward as-is. http://developer.android.com/guide/appendix/api-levels.html http://developer.android.com/guide/appendix/api-levels.html More than anything though - the developer can just push a beta in the Market and receive excellent feedback from users - user submitted stack traces, device info, feedback etc. can be very valuable in identifying and fixing compat issues.
- dillon 16y agoSo it's not fragmentation, Apple just doesn't let you test in previous versions. This was an easy fix for all you needed was only one phone. Unlike Android who has over 100 different versions of Android, yes you have the emulator for each base version but you can't guarantee for every phone.
- dannyr 16y agoI'm a 100% certain that you have not developed on Android. You just read about fragmentation on a blog or heard it from Steve Jobs. There are best practices on Android development to minimize fragmentation issues. And no, you don't have to handle 100 versions of Android when developing. If you restrict your app to run only from 2.1 and above, you got 80%+ of phones covered. http://developer.android.com/resources/dashboard/platform-versions.html http://developer.android.com/resources/dashboard/platform-ve...
- jawngee 16y agoYou can download the old versions at http://connect.apple.com http://connect.apple.com
- sp4rki 16y agoHow is this a tale about fragmentation on either operating system's ecosystems? It reads more like a story about how the developer has a faulty approach to releasing software. He made the mistake of making an assumption that turned out to be erroneous, and then had an issue with his version control. He fixed the issues and everything was good with the world. Once again, how is this fragmentation? If he where complaining that the review process takes too long, then point taken and I agree, but this has more to do with user error than with the ecosystem itself.
- jarin 16y agoDeveloper error/ignorance is cross-platform and runs on both Android and iOS. You can't blame the fact that you didn't test on the version you released for, know how to install older OS versions to test with, or check documentation on Apple OR Google.
- Stormbringer 16y agoFor some of the apps I've written (status: trying to get the frame-rate up) the constantly changing screensizes of the devices is a frickin' nightmare. I'm currently really only supporting iPad because of that... but of course Apple will change the screen size on iPad 2.0 when that comes out. Aargh. Went and bought an iPod-touch so I can test the 960x640 res if I ever get enthusiastic enough about it.... ...then it turns out that Apple's implementation of multi-tasking is going to be a nightmare of a whole new dimension... lovely.
- ryanpetrich 16y agoUse TinyUmbrella or Saurik's MITM server to save your device's SHSH hash for each new iOS version that comes out. Allows downgrading to any version you had installed previously
- JF47 16y agoLook, this guy is right on from an OS fragmentation perspective (which is what he is talking about). Both iOS and Android have OS version fragmentation in the real world and the fact is that Google makes it easier to test for and Apple makes it very hard. I have an app(game) written for both and dealing with the iOS side of things for this is always harder then on Android.