|
|
|
|
|
by yuriyg
5029 days ago
|
|
Not trying to troll here, but can someone explain this "fragmentation" issue please? There's a single API for Android; there are also different versions of the API, but there's a same issue in iOS. Is the issue the different screen resolutions? Does all the Android developement require low-level access to hardware? |
|
The company I work for does Android development for the gov't, and we have had a lot of issues with difference in camera support for example. Yes, there is one API, but for each camera in a phone it behaves slightly differently.
The worst still is the different screen sizes. It will look and work perfectly on one or two devices, and then you try it on a third and all of the elements are laid out differently or are rendered wrong and we have to add a work-around for that specific device.
The other issue we have found is the different versions of the libraries that various different versions of Android ship with. For example BouncyCastle is extremely outdated, or sqlite versions differ enough that it works on one device but doesn't work on the other.
We've also had issues with the phone switching between the cellular network and then wifi whereby sometimes our app will get sent up to 50 notifications in rapid fire saying it is switching between the two, which causes our app to tear down/restart the connection process. We ended up putting a timer in that waits a couple seconds and uses the last notification that came in ...
That's not to say that iOS development also doesn't have its issues. I had one app that if you used the switch on the iPad for screen orientation lock that it wouldn't output sound due to the switch not being recognised correctly. A bug that still exists in the latest version of iOS, and still hasn't been fixed (here is hoping for iOS 6 (which I have not yet installed on this device), my radar got closed as duplicate). But iOS has less of an issue with fragmentation due to the fact that most of the hardware is the same, and people with iOS devices tend to upgrade en masse to the latest version when it is released so it becomes less of an issue to have an app require a new version of iOS and no longer function on older versions of iOS (although, I am still targeting iOS 4 for now when doing consulting/client work).