"In my opinion, the users should be educated about the very sophisticated permission system on Android instead. The user should learn to determine whether a permission should be required by an app"
That's just ridiculous.
[editing to expand...]
Software firewalls never took off on the windows platform because asking regular users about just one permission (should app X be able to contact the internet?) proved impractical.
Expecting end-users to be able to understand BROADCAST_STICKY ("Allows an application to broadcast sticky intents"), MANAGE_APP_TOKENS ("Allows an application to manage (create, destroy, Z-order) application tokens in the window manager"), and REORDER_TASKS ("Allows an application to change the Z-order of tasks") is pure fantasy.
The more experience with end users I get the more my design goal is security in spite of them. (I recently got an email from a user who was disappointed that a program I wrote prevented him from doing what he wanted to do, even though what he wanted to do was illegal and would expose him to substantial liability.)
"Click next to ruin your life" is not good application design. I shudder at "Carefully evaluate whether any of the following statements allows a malicious person to ruin your life."
Software firewalls never took off on the windows platform because asking regular users about just one permission (should app X be able to contact the internet?) proved impractical.
Have you used Windows lately? Windows Firewall asks me every time a new app tries to connect to the internet. It does that by default.
While I agree that complex security decisions aren't something we should pass on to users. I think computers have hit the ubiquity point where our schools need to teach a basic safe computing course. Much like we teach sex ed.
I don't think this is too much to ask. Anyone who uses apps on Facebook are well aware of the permissions and probably deny some apps beacause of what they ask for.
Sure some of the Android permissions are a little obtuse, but users are definitely aware of those permissions that are important.
I tried putting a free app of mine up on the Amazon store just to see how quick it would move compared to Android Market. It sat in the approval queue for 2-3 weeks, long enough that when I got an email from them about it, I totally forgot I had even submitted it.
Their response was that I had improperly signed my binary; I misread their instructions and uploaded the same APK I sign for the Market. This is stuff Apple catches immediately upon upload so you don't wait a week to find this out.
I then had to wait 2 more weeks for the re-signed version to get approved. That's no fun.
I, as a user, think the slow review process is a good thing. He complains about it being rejected for a single letter, but that letter was a lack of security for ME, the user. That's very important to me, but apparently not to them.
I'll agree the rest of the failings were stupid on Amazon's part, though.
However, I doubt I'd have pulled the app. I'd have found ways around the problems, like creating a US account, using a proxy, or having a fan post a review giving the email of the developer and asking upset people to contact them.
And he never did answer why it doesn't work in airplane mode if it isn't connecting to a server.
I actually like the decision by Amazon to require secure communication. This is something that is very hard to verify as an end user and incredibly important in the days of Firesheep.
Long review times, the inability to reply to user reviews, getting ridiculous erroneous comments, and lack of manual refunds? Sounds like iOS/Mac App Stores.
That has always been part of the contract you have with them, and was widely criticized when the Amazon Android Store first came out.
It is my understanding that they guarantee a minimum amount of money to you, even if they give it away for free. (Which means they pay you when they give it away.)
They do compensate you for the special promotions. I'm not sure of the percentage but being the free app of the day and getting paid doesn't sound like a bad deal. Unless you are really intent on selling your "I'm Rich!" app to the 10 people you want to buy it.
It also works, which is another point of similarity with Apple's store. Google's market is laughably bad in my experience. Admittedly, I think my experience is worse than most for whatever reason.
Ok I am going to attack these points one at a time:
- 2 week approval process --> this works in the Apple app store model, sure its slower but they just need to work on it. I would hope they also do things like battery life test given that recently it has come to light that most android apps murder battery life for no good reason.
- No consumer contact --> amazon needs to fix this asap. It is critical for vendors to be able to contact their clients.
- No refund policy --> is this even legal in the US? I think we just need to take it to court to find out :( It is quite refreshing to hear that app developers actively refund to make frustrated customers happy. However on that note, the main reason for this is because Apple can FORCE your app to be removed from your device if you get a refund, google/amazon cannot. therefore amazon is trying to prevent people from just downloading and then asking for a refund thus legally getting a free app. Not to mention the fact that rooted devices (htc is going to allow rooting without hacking bootloader now) can do things like give amazon/google the finger when it comes to asking the device to uninstall apps, even if its built-in.
- Cannot quickly deploy fix in 30 minutes --> this is true for the Apple store too. I think going with the release cycle, this can be either a good or bad thing. Ensures you test your fixes and try releasing asap. I think in many cases the approval process is justified because it prevents things like malware from being pushed as an update.
tl;dr
- I like Apple App Store approval process
- Amazon needs to heavily focus on client <-> developer communication channels. Even if not email and in-app store.
- Refund policy is possibly legitimate due to uninstall concerns.
> No refund policy --> is this even legal in the US?
Sure. There's nothing illegal about 'all sales are final'.
As far as the 'refund gets you a free app' concern: paid apps from Amazon and come with Amazon's DRM. Google provides a way to do license verification with paid apps in the Android Market. Google also allows a 15-minute window to get a refund. So, presumably, Amazon not allowing refunds is a decision that is not based in purely technical grounds.
I downloaded this game from the Amazon AppStore when it was free, and am sad to learn I'll not be getting future update, but I totally understand why and support the dev here.
One thing that does shock me is that the dev was unaware that Amazon could change the price to whatever they fancy (99c minimum) as that was pretty widely explained and discussed when the Amazon AppStore launched.
(Warning: this really doesn't have much to do with the author's Appstore problems.)
This is more from a proficient user perspective than a developer's, but...
I absolutely loathe the Market. I'm pretty sure I have never had a positive experience with it.
The simplest thing is its packaging. The Amazon Appstore will run on anything - install the APK, and you're done. I've had a grand total of one app (Peggle) tell me that my device (CM7 Nook Color) was unsupported, and even then I could still manually install it from the My Apps list.
Compare that to the Market, which doesn't come in a nice little APK. Instead, if you're on an AOSP-based ROM, you have to install a separate gapps package through the freaking recovery menu. That is a huge pain in the ass. Then, there's the whole "unsupported app" crap. I don't care if you haven't tested your app specifically for my device, there's a fairly good chance it'll work perfectly fine. Having the Market restrict apps like that is quite irritating.
Then there's the installing. Somehow, even the simple act of installing an app doesn't work right. On multiple devices, running multiple ROMs (official and un), I have had the exact same problems: An app will, after pressing the install button, take forever to actually pop up in the notifications bar, and even then there's like a 20% chance the download will fail if you have more than one app download going at once. The worst thing the Appstore does when you're downloading more than one app is that the UI gets a tad laggy.
Also, Google's "unique" software license management. On both the iOS App Store and Amazon's, if I "purchase" a free app, it's mine forever. Period. Even if it goes to being a paid app. On the Market, if I purchase a free app and it goes paid, I basically get to keep the copy on my phone and that's all. If I go to another device or wipe my existing one, app goes bye-bye.
Google's awful management of the Market doesn't help, either. If you look outside the top fifty apps or so, it's all garbage- redundant soundboards, extremely poorly-coded games that wouldn't pass any sort of quality checks, that sort of thing. It's a little hard to look for good apps when there's so much complete crap.
> On the Market, if I purchase a free app and it goes paid, I basically get to keep the copy on my phone and that's all. If I go to another device or wipe my existing one, app goes bye-bye.
That's because they're technically different apps. Google doesn't let developers turn a previously free app into a paid one. The developer has to create a new package and obsolete the old one.
Yeah, Google's official market is the glitchiest thing I've seen in a while. I will note that I've had no problems with the concurrent downloads/installs failing since I bought a Galaxy S II (my previous Nexus One had that problem constantly), but aside from that, I have every problem you described and several more.
I have a Xoom as well as the SGS2, and I'd estimate that 70% of the time, the two devices disagree on what apps I've bought. If I buy one on the phone, it never shows up on the Xoom, and vice versa. The web interface is the only one that has a consistent picture of apps I've bought. However, it doesn't always work. On several occasions, I've gotten into situations where an app has an update available, but trying to update just fails silently (and immediately - you see the download indicator flash for maybe a tenth of a second and then it just vanishes). The only way to get past it is to use the web interface to send to a device, which will also fail, and then retry the update from the device. This doesn't always work, but if I repeat it enough times, eventually it will. Usually at least. I have had to, on a couple of occasions, resort to googling for an apk file that I can put in my dropbox account to manually install from the phone -- for apps I got from the Market already. I think I've only had to resort to a web search once. Usually, I can find the apk/odex files on the one device it install on and pull them from there. Isn't it great that I'm considering "adb pull" as a victory for installing an app that has a big "Install" button right next to it?
Some apps show up one day as available in my country (Iceland), and then 15 minutes later they aren't.
Sometimes I get notified that updates are available for built-in apps like Maps. Those often fail, and there's no way to get rid of the update notification.
In short the Market is a train wreck, and that's not even considering the poor state of discoverability and management.
Amazon on the other hand has at least solved the problem of producing software that functions to a minimum standard of fitness of purpose. Their organization doesn't seem much (if any) better than Google's, but at least I know what's going to happen when I click a button on their site. I'm confident that I'm not going to spend the next 20 minutes hunting for an apk file for the app I just bought because the store I bought it from went up in a puff of smoke for no apparent reason.
The sad part is that even with all this, I still prefer Android, and I've been a heavy user of both the iPhone and iPad. Just imagine how much nicer it would be if they gave a shit.
Mostly, my complaints about Android revolve around issues outside the devices and OS. The market is dreadful, but day-to-day life with the phone is nicer (better notifications, widgets, additional useful functionality, etc.)
iOS5 should close the gap on a lot of this, and it's certainly a more usable OS in a lot of ways. I'm probably committed at this point, but it'll be interesting to see one way or the other.
This sounds more like a clueless rant than anything else.
> much like pretty much any website does not use HTTPS.
Apart from that just sounding line an awful sentence, that sentence is pretty much the same as saying "well bobby doesn't eat his vegetables, why do I have to!"
The author then claims his server would be burdened by the additional overhead of SSL. Funny, because I remember reading an article back when FireSheep was in the spotlight from Google stating that SSL only adds an additional 1-2% overhead tops. Over-exaggerate much?
> It turned out Amazon fails to filter out devices that should not be supported according to the Manifest file.
Welcome to the world of fragmentation. Honestly, that is the biggest difficulty with coding for Android. I really don't think you can blame Amazon for this, however. Even the Apple App Store lets iPod Touch users download applications only designed for the iPhone (unless they changed it recently). But this is an issue you have to deal with on every platform. Apples had the big PPC/Intel issue with requiring 2 binaries, one for each processor type. It's up to you to make it as clear as possible to the user if their device is supported or not.
>3. Where are my customers?
Put your email address in the description? How about in the app itself?
>Since there are so many devices available, supporting them all is difficult.
That's like a car mechanic saying "There's so many types of engines, I don't think I can learn how to fix them all!" Programming isn't something your mom can do on her way home from a soccer game. It can take an enormous amount of time, dedication, and skill. Once again, the author is blaming Amazon because coding is "hard".
The author then goes off about a review that was left filled with inaccuracies. That's yet another problem you'll have to deal with in a service like the Android Marketplace or Amazon Appstore. If they let you cherry pick reviews, it would lead to developers burying negative reviews that reveal their application does something "evil". The more time you spend getting all upset about a comment a user left, the less time you're spending improving your game or application and the less I actually would want to spend money on it.
As for the price change, the author provides next to no information on this.
Don't get mad at Amazon because you found out what Fragmentation and trolling from commenters is.
The whole point of the Manifest file is to make sure that Android Apps are not offered to incompatible devices. Need OpenGL ES 2.0? You can specify that and eliminate all the OpenGL ES 1.0 only devices. Need a high-res screen? You can specify that, and so on & on.
Apple do exactly the same thing with their Apps: You can specify which features your App needs & the iOS App Store will only offer it to the appropriate devices. Need a gyroscope? Your App can't run on a 3G iPhone.
This really isn't rocket science. If Amazon really are ignoring the Manifest file shipped with the Apps submitted to them then that is a huge failure on their part & most definitely not the fault of the dev in any way whatsoever.
> Welcome to the world of fragmentation. Honestly, that is the biggest difficulty with coding for Android.
This horse was beaten so many times, it is already dead.
> I really don't think you can blame Amazon for this, however.
Sure you can. Google Market handles this condition gracefully, i.e. if you can't run it, it will not show it to you. So why to hold Amazon to lower standard?
Every Android application comes with file called manifest. It specifies many things, but in the context of this debate also permissions and device capabilities required. If your app requires gyro, accelerometer, high-dpi display, OpenGL ES 2.0, specific texture formats or whatever, you put it here.
And here comes Google relationship with device manufacturers. As you certainly know, Market is not a part of the open-source android release, but proprietary app, that has to be licensed, if you want to distribute it on any device. So when the manufacturer licenses the app for the specific device, it also provides Google with device capabilities. Google puts it into the market, so they can show you only those apps, that your device is capable of running.
Amazon, of course, does not have such a database, and also does not have relationship with device manufacturers. It is up to them to find a way to build similar filtering mechanism. Nobody said, that building competing market is easy and that reviewing apps is enough. Good luck trying, though.
It seems slightly odd that Amazon can't have their Market App run a bunch of tests on install that generate the appropriate set of device capabilities. The major ones (Android version, OpenGL level, screen size, presence of GPS etc etc) are just a single API call each. Hard to believe that Amazon is unaware that this is a huge end-user experience fail for their customer base.
(Reading between the lines of the original blog post, possibly they just failed to enforce device restrictions for the free "App of the day" promotion.)
Yes, one would suppose that the Amazon market client would report device capabilities and the market would adjust response to that. Let's hope that they will learn.
That's just ridiculous.
[editing to expand...]
Software firewalls never took off on the windows platform because asking regular users about just one permission (should app X be able to contact the internet?) proved impractical.
Expecting end-users to be able to understand BROADCAST_STICKY ("Allows an application to broadcast sticky intents"), MANAGE_APP_TOKENS ("Allows an application to manage (create, destroy, Z-order) application tokens in the window manager"), and REORDER_TASKS ("Allows an application to change the Z-order of tasks") is pure fantasy.