Apple has done a great job at getting its users to pay for apps. They've done this via:
1) Encouraging Developers to not price free apps (this happens sometimes in review, in their literature, etc.)
2) Capturing device owner's credit card info at the start (so buying an app is frictionless)
3) Removing low-quality, buggy, copycat, and junk apps from the store via their review process
Google, on the other hand, has done just about everything wrong if you want to make money from paid apps. I suspect this is because Google wants to make money via in-app ad impressions and with free apps that's the only way you can make any money (in-app purchasing notwithstanding).
1) No review encourages spyware, copycat apps, buggy or broken apps, etc.
2) Android's "return policy" (which has since been tweaked) encourages people to pirate apps anyway (it's super easy to do so)
3) Initially (I'm not sure if this is still the case) you could sign up for a market account without a credit card, thus leading to a lot of friction when it came to paying for an app (entering your CC information was a royal pain).
Also, I share the frustration with the internal v. external/removable storage problem. Our apps are traditionally larger (content-centric, with lots of high quality images, audio, video) and have always ran into problems with Android devices' limited on-board storage.
This was purely a cost decision by Google and a profit decision by vendors/carriers as vendors wanted to produce devices as cheaply as possible and make a killing on SD cards - sell a device with xxxMB storage and no SD card, then force the consumer to go out and buy an overpriced SD card (usually at point of sale).
This all makes Android a developer-hostile environment; yes it's easier to initially get setup on Android (no provisioning profile, etc.) but it's all pain after that. If I had a choice, and didn't make cross-platform apps w/ PhoneGap, I'd write iOS apps first/only.
Don't forget the pretty popular iTunes gift cards, either as gifts from third parties or to replace a CC.
For example, while I support Google's decision to keep the Android market open, I don't see why apps that simply crash upon launch should be allowed allowed to be sold and downloaded to people's phones. Google can easily detect / track this kind of thing and automatically flag phones not supported as incompatible, refund users and notify the developers. On the developers side, they should have access to an extensive database of compatibility information so that manufacturers are shamed into seeing devices that are hard to support getting black banned in the market and crossed off support lists by developers.
I don't think you need an authoritarian approach like Apple's to make things better, but you need to do more than Google is right now.
I _bought_ it for the Kindle Fire. It's actually my son's preferred gaming platform (compared to Wii, 3ds and Leapster Explorer) probably because the game are so accessible/easy to use.
I've often considered getting into game development on the android. However, it doesn't look like a profitable venture.
If the makers of a fantastic (highly rated, almost 5 stars on the amazon app store) game aren't making money on the Android platform...what hope is there for the rest of us.
Can more experienced devs comment on how common these kinds of problems are in practice? If I do some Android ports for my clients do I really need to buy 10+ devices and debug on each of them?
If, however, you're writing basic apps like I am and using the standard development tools then it's a lot less of a hassle. I primarily write appwidgets (apps that run on the home screen). Theoretically these have could run into more fragmentation issues since various manufacturers have built their own home screen replacements and improved appwidget capabilities have been a focus in 3.x, 4.x. Yet in about 2 years since I started I've rarely hit a device specific issue and I'm supporting 2.1 - 4.x. I have about 3000 active users so not exactly large scale, but enough that if it were a serious issue I think I'd be hearing about it more.
I have two devices - a nexus one to test on 2.x/phone and a transformer prime to test on 4.x/tablet. Other versions I spot test in the emulator (admittedly this is awful). That's been sufficient for me.
I'm sympathetic to the technical difficulties of developing and maintaining a high quality game for the platform, but that shouldn't scare anyone off from developing regular apps.
It's a testament to the challenge of developing games to work on all Android devices that even with Unity's support they still have to spend so much development effort on shaders and debugging device specific issues.
Google didn't release Android to give the users the best possible product, service and user experience. They released Android so they can serve ads.
An ad company will never give a shit about user experience.
I knew this the minute Google bought Android. It took them these long to figure to this out.
Then you get the Galaxy Nexus, with only one partition. It features Ice Cream Sandwich, with MTP (Mass Transport Protocol). MTP allows access to a filesystem without unmounting it, so the phone can continue to use the filesystem. The only real disadvantage of MTP is that OSX and Linux support is limited, since it is developed by Microsoft. It should also be said that ICS still supports USB Mass Storage, but the Galaxy Nexus cannot.
The Asus Transformer also does this, using a large internal storage with no SD card. More phones might switch to this model, but for now the SD card is not going away.
(Bandwidth is, sadly, becoming a big issue these days, because nobody offers unlimited plans anymore. 5GB per month means one max-size app and maybe a few text messages before you start paying one billion dollars per nanobyte in overages. It's like 1980s long distance all over again.)
You might not, but Mika Mobile sure sounds like it does.
"I would have preferred spending that time on more content for you, but instead I was thanklessly modifying shaders and texture formats to work on different GPUs, or pushing out patches to support new devices without crashing, or walking someone through how to fix an installation that wouldn't go through. We spent thousands on various test hardware. These are the unsung necessities of offering our apps on Android. Meanwhile, Android sales amounted to around 5% of our revenue for the year, and continues to shrink."
I am forced to call you out on this misinformation. It is the Android _phones_ and _users_. Android based platforms like the Nook Color and Amazon Fire both have good app revenue in my experience. Android phone revenue is at the bottom for the apps I sell. Of course, iOS is at the top.
I'm willing to listen to any counter-points you may have to back up your claim that it's not the Android ecosystem. Fire away.
who exactly would you blame?
Which makes sense since many of the cited disadvantages ultimately lie with Android and Marketplace implementation decisions made by Google.
I'm not sure Andy Rubin would disagree much either but what he might say candidly is Google takes the long view. And the long view is that Google Play today is far ahead of the Marketplace two years ago and in 2 years it will be ahead of where they are now by an even larger margin. And the same thing with development tools. And the userbase advantage will be even larger.
It would be nice if Google would implement something like this for Android. I didn't even know about this limitation until today ( I'm an iPhone user/developer).
Ho! They exist! Does it mean that apps on the android market are limited to 50 millibits as the article says?
It seems a shame that they're giving up their position in the Android market and abandoning some hard-won experience.
"We make 5% of our revenue from Android" is not exactly an outlier.
It makes sense they have to deal with problems all the time since they clearly don't have a thorough understanding of the Android platform itself and what it takes to actually support the range of devices. Buying $1,000+ of test hardware will also not fix your problem if the problem is not doing things properly. You certainly won't get it by patching ios-based code every time a customer complains.
This reminded me completely of the pre-jquery era where if you wanted some advanced JS functionality you'd have to reinvent the wheel over and over in dealing with browser inconsistencies. After years of bitching and moaning people finally released libraries to deal with the issue.
These companies have the right to complain, but complaining will not actually help solve anything except give them a way out avoiding the the complexities of porting platform-specific code to another platform.