Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Spoken like someone who isn't an Android developer.

Take your analogy to the next step. Someone opens an online store that sells binary-only copies of applications targeted to just "Linux".. you would call them crazy, no? That's what the Google Market is. Or the Amazon Market, samsung apps, nook store, ...

I wrote a blog post to help you understand the pragmatic issues faced by an Android developer trying to write decent software.

http://burnsmod.com/development/2012/05/01/Android-Fragmenta...

Your analogy does not make me sleep better at night.



Your blog post blames a bug on Android fragmentation, but it sounds like it was your fault. You were not calling Environment.getExternalStorageDirectory(), which is the portable way of accessing the storage area where users saves file via USB mount.


I tend to find that with Android success is directly proportional to how much the platform is embraced as it is. Many people seem to approach it as a slightly different Linux, iOS or J2ME/J2SE and get very disappointed. If you fight it it will bite you in exactly that sort of way.

The problem is the API is huge, and the documentation isn't great either, so you're supposed to learn best practice from the apps in the OS source tree.


That API call is not sufficient. Some devices have more than one external storage device. For example some tablets have an internal storage point and the ability to have a USB key.

The function you are talking about only returns a single directory and my users want to use both if available.


Yeah, and Motorola have their own etc.

It really isn't a big deal. Use reflection to find what works at runtime, and live with it. That's the price of the flexibility which makes the whole thing attractive in the first place.

The big problem is trying to cover all bases from the start: you won't. Attack it like an old school PC shareware dev, and respond to customer requests.

There are far larger problems with Android than this kind of thing. That things on external storage basically bypass the security model is a much bigger concern.


The brutal part is that generally customer requests are no better than "the bug is shitty app" or just "buggggggg". Thats where a responsive strategy sucks - reliable reports are few and far between.


On fragmentation, your blog post is exactly backwards.

You're calling out hardware fragmentation, but that's exactly the fragmentation the consumer wants - they see it in the store and pick it (via form factor, price, etc.). Beyond that, Android couldn't rein in hardware fragmentation without being something utterly unrecognizable. On Android dealing with hardware fragmentation is your job, just as it is in the desktop/laptop/netbook/... world.

Software fragmentation is the fragmentation consumers can't see and, generally speaking, don't want. And that's the fragmentation that is often preventable, as CyanogenMod's porting success demonstrates.


> [hardware fragmentation is] exactly the fragmentation the consumer wants

Based on what? This is far from clear to me.

Users have flocked to a device with Just One Form Factor (iPhone), and its biggest competitor - Galaxy SII - is almost identical in this regard.

Users have some choice, yes. Users /want/ that choice ... much less clear.


I think there's plenty of evidence that users want the hardware choices they make:

1. Apple's strongest competitor, Samsung is probably the world record holder for number of different smartphone models / form factors sold simultaneously. Even with the Galaxy S II family as their top sellers, they aren't the bulk of its portfolio. While there are some experiments in there (like the Note was), I'm sure they're not setting that record just for the fun of it. If some people didn't want those choices, Samsung's smartphone strategy would not be viable.

2. The Galaxy S II isn't almost identical to the iPhone hardware. You can (and Apple and Samsung do) argue about the level of aesthetic similarity, but there are many hardware differences: size, screen, removable battery, microSD slot ... and all of these differences are things a customer can easily see in a store.

3. One of the dimensions that users obviously want choice is price - and that leads to hardware fragmentation all by itself (by using cheaper or more expensive components depending on the target price).

4. More than a few experienced iPhone users have specifically talked about switching from an iPhone to the Galaxy Note. They all talk about making the switch because of hardware differences.


Add to that the fact that every device has a different processor model, gpu, and most of the software on the device is locked.


Right, the problem is with the Google Market, Amazon Market, et. al. It's not with Android as a platform (or operating system).

The problem is that Google copied the "App Store" idea for software distribution that Apple created for their iPhone. Instead, they should have gone with the same idea that Linux distros use: The product vendor is responsible for distributing the software for the product. That would look completely different from what we have now, but it would be a more natural fit to what Android really is.

Also, you could have made your point just as well without the ad hominem.


..?

I don't see a personal attack in my message. Your original post suggested that android fragmentation is not a problem if I just think of it differently. A logical extension of that is that it's my fault for seeing it as a problem as I'm dealing with it incorrectly.

That doesn't make my users any happier. It doesn't make their bug reports go away. That doesn't make their phones all mount to the same mountpoint. It doesn't make me sleep better at night.

That's not an attack. Neither is claiming your viewpoint is one of a non-developer because pragmatically speaking a developer deals with these problems daily so "thinking of it differently" really makes no difference to the size of the problem.

Please don't accuse me of a logical fallacy here, thank you.


That's a horrible idea. Instead of hardware fragmentation we'd be stuck with market fragmentation. I have zero confidence in the manufacturers' abilities to foster a good marketplace. And they would have a monetary incentive to disable access to other marketplaces and sideloading, so there wouldn't be any competition, either.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: