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

> But his insight immediately struck a chord because at the time it was extremely painful developing services for mobile devices. We had a closet full of more than 100 phones and were building our software pretty much device by device. It was nearly impossible for us to make truly great mobile experiences.

This is highly ironic statement given that one of the biggest pain developers trying to build mobile experiences face today is the number of devices they have to test on, and that Android plays no small part in making it worse.

The drawer/closet you have, full of all those test devices? it's called the "Drawer of broken dreams."



Device fragmentation on Android is nothing like fragmentation used to be. At least on Android you can write one app and then tweak it to work on different devices, previously you had to write apps as different as Android/iOS/Windows for each device - and often individual manufacturers even had multiple platforms to write for.

And don't even get me started on distribution. You used to have to negotiate with carriers in each country to get them to carry your application. Now I publish on Google Play and my app is available to 750 million people four hours later. And if you build a good app, and figure out the app SEO, you will get hundreds or thousands of downloads a day.

So I think we owe Google some congratulations.


>At least on Android you can write one app and then tweak it to work on different devices, previously you had to write apps as different as Android/iOS/Windows for each device - and often individual manufacturers even had multiple platforms to write for.

>So I think we owe Google some congratulations.

Before Android, you could write a Windows Mobile app and have it run pretty much on every Windows Mobile device and the same with Blackberry and iPhones.

The biggest problem with Android is that the OEMs and carriers abuse the open nature to make their own custom skins which are not compatible with updates. Google did not take a hard line on this like, say, Windows Phone did


"Before Android, you could write a Windows Mobile app and have it run pretty much on every Windows Mobile device" - yeah, all one million of them.


Also, to be more serious, Pocket PC once ran on top of two processor families, so if you think fragmentation with a VM is bad, it's a lot worse when you have to build two binaries and try to explain to users which one they need to install.


Three. Luckily only one (ARM) survived by the 2002 release.


Your information is outdated.

The Holo theme is required to be present on all devices that wish to carry the play store. If you write an app targeting 4.0 or higher that uses the default theme, it will look the same across all phones.


However, you will lose the 2.3 users, who still hold a ton of market share.


> However, you will lose the 2.3 users, who still hold a ton of market share.

Like with all massive ecosystems, change in the android world takes time. Google is addressing the problem and solutions, like instituting a required theme, are rolling out.

Give it a year, maybe a year and a half, and the need to support 2.3 will be much less pressing.


There's a library for that [1] :)

[1] https://github.com/ChristopheVersieux/HoloEverywhere


It wouldn't have been adopted if they had taken a hard line on that issue.


That's like saying people buy Dells for all the crapware they come with.


No it isn't. The GP isn't saying people buy the phones for the crapware, the GP is saying that the carriers wouldn't have adopted it if they couldn't put their bloat on it.


So iOS was adopted why...?


Because Apple had a heck of a lot more clout than Google did at the time.


While Apple was in a very strong position, the carriers had a strong interest in another player to counter Apple's market power. In the case of fragmentation, I think Google was just more willing to negotiate away things like this in the interest of getting a strong presence on the devices.


Because the iPhone was an obvious money printing machine, so the carriers were willing to accept the inability to put their garbage on it.


No, not really actually. They went to several carriers and Cingular was the only one that would deal with what apple wanted, and that was reluctant.

Google could have pushed harder, but they miscalculated.


So you mean Google picked popularity over consistency and sold out to the OEMs and carriers for the sake of marketshare? Android is the pretty much the only OS where this is such a big problem, unlike Windows, OS X, Windows Mobile, Blackberry, Windows Phone, iOS and probably even Linux.


I don't know where you get your information from, but Blackberry has broken compatibility in the last 3 OS releases, and Windows Phone 8 doesn't even run the same kernel as the previous version (breaks compatibility). I'm not sure if you ever touched Java ME back in the day... but yeah. You're just wrong on this one.


>Windows Phone 8 doesn't even run the same kernel as the previous version (breaks compatibility)

Windows Phone 7 apps run fine on WP8. Anyway breaking compatibility is a tad different from fragmentation. If your app runs on a WP7 phone, you can be reasonably certain it runs on all other WP7 phones. With Android, you can easily run into device specific bugs even though the version is the same and thus you're forced to test on the real hardware devices.

http://techcrunch.com/2012/05/11/this-is-what-developing-for...


Agreed. I bet most of the people ripping other OSes don't even develop for Android. It's a nightmare.


> Before Android, you could write a Windows Mobile app and have it run pretty much on every Windows Mobile device and the same with Blackberry and iPhones.

Considering that Android pre-dates the iPhone (and thus iOS), the statement isn't accurate. This article cites 2004 and the iPhone didn't debut until the middle of 2007. It was indeed a nightmare, not only in the development process but in distribution. Good luck getting your app widely distributed across platforms/countries/carriers.

I remember being at CES around this time and the Google guys did a keynote where they made it a mission to get rid of all the different charging standards in use at the time (every phone was different, remember having to find a charger that worked for your phone?). It was a whole different game back then.


Note that 2007 is the iPhone's public debut. The project was started in 2004 [1]. Android the product was also announced in 2007, after the iPhone, although the project indeed started before the iPhone, in 2003 [2].

[1] http://readwrite.com/2012/08/07/4-real-secrets-weve-learned-...

[2] http://www.businessweek.com/stories/2005-08-16/google-buys-a...


That doesn't matter, the post is talking about what was happening in 2004 and it was indeed a mess.


There weren't a lot of Windows Mobile devices. What usually happened back then was an app would get written once, then outsourcing companies would be hired to port it to the 50 popular feature phones or whatever that made the majority of the market.


Did windows mobile ever really have a wide variance in hardware types, e.g. phone size devices vs. tablet sized devices? It was my understanding that windows mobile targeted certain screen resolutions (that or those resolutions were the only ones manufacturers were producing) and that was pretty much it.


This is clearly the comment of someone who has not used Android recently, and only occasionally reads articles about what is going on in the space. Enjoy your koolaid...


That's a very narrow perspective, based solely on what is "painful" for the developer. Developer pain isn't, generally, a good indicator of the public good.

Obviously the real driver for "fragmentation" is that there exists a market which is (1) lucrative and (2) easy to enter. So everyone rushes in with their devices and competes. And somehow you think this is a bad thing?

Stated simply: "fragmentation" is a side effect of "market efficiency". The reason almost everyone (for the appropriate definitions of "everyone", of course) in the developed world has a smartphone (be it an iOS one or not) is precisely because of this efficiency. And you can't have it without a little fragmentation to go along with it.

Basically, your utopia where everyone uses one device not only doesn't exist, it can't exist.


I agree with the efficiency part with regards to android lowering the Barrier to Entry, but the 2 year contract to make the devices "affordable", surely doesn't work in favor of market efficiency.


Certainly there are factors that work against efficiency. Any kind of lock-in, be it an enforced contract term or a putative monopoly position for Apple is going to harm things. But on balance, Android being cheap and easy (and thus fragmented) has made smartphones cheaper/better. I don't think there's a serious counterargument to be made on that point.


My N4 out of contract from google wasn't that much more than say an S3 on contract... My last three phones have been off contract with cheap all you can use reseller services... the lower month to month makes up for the price difference in 4-6 months


I think you are missing the point of Android. Android starts with the premise "fragmentation exists, how do we make the best of it?" and goes from there. The idea that every person on the planet is going to use the same phone with the same capabilities and the same size screen is a fantasy world iOS developers live in.


> The idea that every person on the planet is going to use the same phone with the same capabilities and the same size screen is a fantasy world iOS developers live in.

I was under the impression the problem with fragmentation was along software lines—i.e., not many people have the latest android, so people can't exploit it. Hardware is much easier to adapt to.


>fragmentation exists, how do we make the best of it?

>The idea that every person on the planet is going to use the same phone with the same capabilities and the same size screen is a fantasy world iOS developers live in.

There are a billion plus PCs running Windows with various hardware, screen sizes and even different form factors. Yet fragmentation is not as big a problem as on Android.

The primary problem comes with the deep customization of the OS and lack of standards, not things like screen sizes. For example, look at this http://www.blogcdn.com/www.engadget.com/media/2010/12/10x120...


Your evidence for app incompatibility is... variant icon art and placement on a bunch of pre-ICS phones that aren't sold anymore?

I mean: it's true, Google failed to enforce a layout for the original Android buttons (Home, Menu, Back, and Search). And device manufacturers put them in different places (sometimes omitting Search entirely) and used different art, and that was bad. And Google fixed it with ICS (a year and a half ago!), which uses soft buttons exclusively. So sure, it's a valid point.

But to argue that somehow you can't write a compatible app because Samsung put the back button on the other side from Motorola is just ridiculous, sorry. Get a better example.


The example you posted is about the same as PC keyboard without keypad or with arrows/pgup-pgdn-home-end-insert-delete block in nonstandard places.

Completely non-issue in both Windows and Android.


Microsoft required an illegal monopoly in order to obtain the incredible resources needed to certify Windows on all that hardware. And the prices were astronomical, for PCs, peripherals, etc.


The kind of fragmentation Google has to deal with in developing Android and its framework is very, very different from the kind of fragmentation the average app developer deals with. The vast majority of apps only need to test on a couple different device types, all of which can be done via the emulator. Most app developers have trouble with the APIs their apps use that do not behave as expected on some devices, usually as the result of a manufacturer or carrier change that subtly alters the behavior of or breaks the API.

Google, OTOH, has a significant amount of testing to do on most Android devices produce. Not only do OS devs need many devices to ensure the OS and framework continues to function, but most (if not all) devices will be run against the Android CTS (http://source.android.com/compatibility/cts-intro.html).


Having been working in the Android space as a programmer, IMO the idea of Android fragmentation is mostly overblown these days. It was more of an issue in the past, but post-Gingerbread it has ceased to be a practical problem for any dev work I've done.

This isn't to say Android development is wonderful, it (often) isn't. And I've been increasingly concerned with the amount of "OMG HOW?" bugs that have been introduced into the Android OS and frameworks over the past few releases, but generally speaking the code you write for one modern Android device runs (or breaks due to OS or framework bugs) equally across all the phones, at least those that (legally) ship with the Play store.


I've just started android dev. I'm still struggling to deal with the fact that you can still buy brand new devices that come with froyo.

I feel lucky that some kind soul created a compatible version of the ActionBar (Sherlock) to work with these out dated but still selling devices.


and what version of Android do you target?


I think testing on a closet full of devices is a huge improvement over making unique implementations for each device in said closet, and THEN testing each implementation. Still a schlep for sure, could be improved a ton. But progress is progress.


I actually thought he was talking about Android devices, and wondered why he never got to the part where he said "now there are only going to be 3".




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

Search: