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

Thanks for this post. Now I'll wait a bit longer before moving to an Android phone.

From a developer's point of view, Android is known to be a mess. I thought the reason was the lack of organization between the numerous manufacturers. Now I see that the reason is even more fundamental.



Please don't let this be the reason you don't switch to Android. I think this is a stupid bug to exist, but it hardly affects most people.


The main problem is not the bug itself, but the fact that it's not fixed for so many years.


Maybe not most people, but Iceland is a relatively big country to completely exclude your product from (especially for such a silly reason).

If the OP were Icelandic I think that'd be a pretty good reason not to switch to Android.


Reykjavik is available on the world clock, and if you go there it picks up the correct timezone automatically. The only missing part is that the system timezone widget which you would never normally use doesn't have it.

Also, while excluding a country would be a fairly crappy thing to do, Iceland is the 174th largest country in the world by population, so it's not big relative to very much at all


> From a developer's point of view, Android is known to be a mess.

Source for this?


I hope it has improved since last time I've worked with it (3 years maybe now ?). But on top of my head this were the problems I faced (probably not up do date now, I hope it's much better now):

- The emulator was slow as hell

- Impossible to resize the emulator window dynamically so testing is really slow and painful

- Bugs with manufacturer roms & drivers (hello Samsung !) So you have to test with a lot of devices without guarantee it will work

- you have to copy all the fields yourself when your device pass in portrait mode since everything is being erased (even text fields)

- You need to create some strange XML for just about everything, nothing really works by default.

- No package manager for the libraries, you have to copy some random .jar here and there

- Really poor API. No usable date picker (I'm discarding the default one here), no file picker, no contact manager you can inherit from in built-in, you had to reimplement everything yourself, even a button with an image on it you had to do it yourself.

- Poor consistency in the XML names, it was difficult to guess what meant what.

- The documentation was also hard to browse

- The permission system is close to broken (they are working on that at the moment apparently).

- If your APK is too large, APK expansions (can't remember the exact name now) API's were borderline broken and buggy.

- SD card management was a mess.

- Everything related to layout was difficult to get it right and nothing would ever resize right unless you put a lot of effort into it (the opposite of the web on this).

- Android browser was close to unusable but now that I've checked a recent version, it seems they solved that.


The emulator is fast as hell now (faster than using an actual device, according to them). Many of the other issues you have mentioned here are fixed as well.


With Android Studio, Gradle, and Maven library management is easy now. You just include the dependency and compile.

Better to me than using a third party solution like carthage or cocoapods in the iOS world.


Not being an Android dev myself, these are some complaints I've heard: There are a ton of resolutions, aspect ratios, and screen sizes. There are a lot of GPU vendors. Driver quality, performance of specific features, little tricks to even use specific features, etc, vary between each of those vendors, and your program should support as many as possible. Different phones have different input methods and peripheral hardware (sensors, notification lights, vibration motors, 3D screens, slide-out keyboards, etc), and trends in the market shift over time.

Compared to Apple, there's a lot of variability in devices, and that may be what they were referring to.


> There are a ton of resolutions, aspect ratios, and screen sizes. There are a lot of GPU vendors. Driver quality, performance of specific features, little tricks to even use specific features, etc, vary between each of those vendors, and your program should support as many as possible.

IMO, variety is not a mess - this is has been the norm programming for the consumer space for decades (PC applications, all non-console games, web development). Fixed resolutions & hardware is the exception (consoles, and previously iPhones: now iOS devices are 'fragmenting' too)


Right, so there's a lot of hardware that runs the operating system, while iOS only has a handful of choices, most outdated.

Somehow development for the desktop or the web, where all those points you've made apply in tenfold, is still doing fine.


Not that that's a flaw in the Android platform.




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

Search: