Angry Birds struggle to take on Androids
While Adobe chalks up another victory
Angry Birds developer Rovio is mulling creating multiple versions for different Android handsets, as fragmentation of the platform causes headaches for anyone not using Adobe's Flash.
Angry Birds is hugely popular on iOS, and was eagerly anticipated for Android, but the fragmentation of the Android platform has prompted Rovio company to post a list of 17 handsets on which Angry Birds just won't work. It also announced that it's working on a lightweight version for the differently-able handsets.
No such problems over at the BBC, which has pulled the iPlayer streams used by third-party android app myPlayer, claiming the cross-platform capabilities of Adobe's Flash make platform-specific versions redundant - excepting iOS, and BlackBerry, of course.
It's true that with Froyo installed and the latest Flash client downloaded, iPlayer does indeed work on Android without the need for a native application; and the BBC reckons that supporting the fragmented Android platform would be impractical without having Adobe's technology.
But that's what Rovio is being forced to do as users continue to expect every Android application to work on every Android handset. Rovio reckons that by creating a lightweight version it's "doing a favour for [its] fans", which is very altruistic of the company. We can only hope the additional advertising revenue will go some way towards rewarding Rovio's commitment to the fans.
Still, the fragmentation problem is only going to get worse, especially as Android devices spread into the tablet space. The 24-hour trial period offered by Google's Android Marketplace helps; but the Marketplace is going to have to evolve to provide more compatibility information, and developers are going to have to spend more time understanding the limitations of the hardware if we're not going to return to the arcane technical requirements that used to adorn the sides of software boxes. ®
Saw this coming
I'm not a fan of locked in markets per say (they do have product quality, security, and other advantages though) but what I am a fan of is a rigidly structured hardware model.
By not having a unified processor and GPU architecture model and ensure that the code of the OS runs smooth on all devices with the same feature sets enabled, Google has done itself and the devs a disservice. There's simply too much variance on the hardware front.
Optional parts, like keyboards, cameras, etc, are easy to deal with, but when the core of the device does or does not support functions, or supports some poorly, because of design choices made by 3rd parties, that's an issue. At the very least Google should have released a 2-3 class system putting low end, mid range, and high end minimum specs on the devices, making it easy for devs to support or not particular devices. As for the optional components, the store should maintain a database of what options each and every model has, and what devices each app would and would not work with based on those variables.
When we have an app that runs smooth on a 600MHz iOS device, but that can't reliably run on 1GHz modern phones, we have a major issue... Worse when it runs fine on some and not on others, which is the case here.
Sure, Flash is an option for some, but Angry Birds is a java app, not flash, and the physics modeling and other aspects of the game simply do not apply. Try taking that to Epic Citadel? hahahaha...
Code should simply have minimum requirements, as it does on PCs. Either you have the CPU/GPU muscle to run it, or you don;t, but there should not be code level changes required to support some devices and not others. That is a major flaw. If you have to recompile to support someone's device that has the minimum specs to overcome something they changed in the OS or supporting APIs to make something of their own work? Their device is not "Android" it's a spin-off. Google needs to get control of this mess ASAP, set hard standards, and have a "certification" program for devices.
how many times do they need to say fragmentation?
On PC, the fact that display,... is different is no problem at all, yet when developing for a mobile platform they seem to be unable to write flexible code?
It's all pretty standard with an ARM chip and a graphics system. Don't use compiler options to specify a specific ARM architecture (ARMv7/...) and you should be fine.
If the platform is below the required spec for a cpu/gpu hungry app, that is one thing, but to blame fragmentation? Sponsored by Apple to spray such crap?
Anyway, having seen Angry Birds on my n900 (and totally missing the hype), I wonder where the problem could be, it is not the most complex app I've seen.
And if you app can't handle different screen dimensions, please don't call yourself a developer. Script kiddie is closer...
One size does not fit all. If you want to buy a smart phone capable of playing games then buy a high end one. If your budget doesn't stretch that far or you're after something with a small form factor or some other esoteric feature then buy one of those instead.
The beauty of Android is precisely because it doesn't dictate one phone / price plan / provider / manufacturer as being suitable for everyone regardless of their needs. So if you want to buy a £100 PAYG android phone you can. Just don't expect (and I doubt many people do) that it's going to give you the same performance as a Dell Streak, HTC Desire or whatever.
That said Android / Google really should be defining some gaming profiles for handsets, . Phones should be able to say they're "gaming level 1" compliant or whatever so users can assured that they'll be able to purchase and play level 1 titles without issue.
all phones should do everything? or that chaep phones with reduced functionality are the work of satan?
(PS can you take pictures in the dark yet?)
One man's "fragmented"
is another's "diverse".
I know apps can specift the API level needed to see them in the market, but can they specify other filters?
Sounds like Android need some kind of device scoring system to cover things like screen size, CPU, etc., in order to classify compatible apps in the market.