Slashdot Mirror


An Android Developer's Top 10 Gripes

gkunene writes in with the plaint of a veteran mobile application developer who vents his frustration with a list of 10 things he loves to hate about Android. "1. Open Source. Leave it to Google to place all the code for their handset platform in the hands of the masses. Not only does this mean anyone can download and roll a new version of their phone firmware, but it also means absolutely any maker can roll its own Android device. ... After all's said and done, I really must admit that Android, despite its relatively few flaws, is one of my favorite platforms to work with. Quite honestly, if my complaint about how the word 'Intent' makes for awkward grammatical constructions ranks in the top 10, I'd say the Android platform is doing pretty well for itself."

10 of 272 comments (clear)

  1. And still ... by Zarf · · Score: 2, Interesting

    ... even with these valid gripes I can't imagine developing on any other platform available for the cell phone. The "Intent" is an odd term but the concept it powerful. Java is a pain but it is accessible. Most of the platform complaints deal with the novel programming style Android uses. It's an event based style with an MVC-esque pattern. Very unusual. Perhaps unusual in a good way.

    --
    [signature]
  2. Re:What? by dkleinsc · · Score: 3, Interesting

    He does have one very legitimate concern, and that is that the platform can easily be forked, potentially ending up in a situation like old-style Unix, where each vendor had different incompatible versions of Unix (HPUX, AIX, etc).

    That said, most of his other stuff sounded like "You're making it way too easy to use to create applications!"

    --
    I am officially gone from /. Long live http://www.soylentnews.com/
  3. Re:dumb article/crappy developer by PianoComp81 · · Score: 2, Interesting

    Point 2. The Tyranny of the Activity

    Android, by contrast, pushes you to design everything as small, self- contained mini-applications

    That sounds a bit like the old UNIX principle. And what's wrong with having applications that do small things and do it well. I don't want a picture application with it's own twitter functionality, I have a proper twitter client for that. etc.

    The biggest reason he gives while this is bad is because it destroys then recreates an activity upon rotating the screen. What I've noticed on my droid is that application refresh the screen when the screen is rotated. To get around the refreshing, developers have to hack around google's API.

  4. (Potential) iPhone Developer's Top 1 Gripe by Comboman · · Score: 2, Interesting

    1. SDK only available for Mac.

    --
    Support Right To Repair Legislation.
  5. why Java? by ShenTheWise · · Score: 2, Interesting

    My single Android complaint: Why, oh why must it be Java based?

    1) Sandboxing in Android actually happens at the Linux process level. Every app run its in own isolated process, with its own instance of the Java VM. You can remove the VM form the picture and it would be just as safe.
    2) You cannot build once run everywhere. Its a myth. With J2ME phones, devs test and optimize for every supported handset, and it will be the same for Android.
    3) Java *IS* an order of magnitude slower than C/ASM for many things that are important for games, such as matrix math. Google knows this and is trying to work around it with JNI/NDK, but really why the complication?

    I guess its too late now, but it makes me very, very sad.
    (And makes Apple very, very happy)

    1. Re:why Java? by Unoti · · Score: 3, Interesting

      3 isn't really applicable as not only is it optimised for it's own version of java, but you have the option of writing C anyway.

      GP's point #3 was about C++ being more efficient by a lot. His point actually is valid. Consider all the things you need to be mindful of when writing efficient Android apps in Java There are so manu things that you need to be careful not to trip over, even in Android's optimized Java. Things that a C++ compiler would optimize out no problem. Generally Android's java is very optimized and is terrific and surprisingly fast, but it's still no C++ in terms of performance. But it's also easy to write for generally and very approachable, so I'm not complaining. Just saying that Gp's point #3 should not be dismissed entirely without due consideration.

  6. Re:dumb article/crappy developer by El_Muerte_TDS · · Score: 2, Interesting

    Despite your undying love of google forcing you to accept everything from them (i'm liberally assuming here), there some legitimately complaints.

    Heh, not really. There are a lot of things I think suck the Android, mostly with various standard applications. For example: no proper file browser in the music player; crappy email client which can't handle larger mail directories; no "update all" for through the market; unreliable bluetooth support (although, it could be just my phone); no vector based user interface (specially an issue now that other resolutions are starting to appear); etc.

    The ammount of mini apps running around go directly against the idea that's been creeping around of making applications run on less files, like Mac application structure, or so i've heard, does, while the running applications it's a very valid point.

    That's not per se an issue with Android but with application writers. Your application shouldn't start a service when it doesn't need to (looking at you "Astrid", I don't have any reminders). An application should do what it was requested to do and then stop. But other applications need to remain active in the background, like my SSH client

  7. 5. Developer Cooperative by Unoti · · Score: 2, Interesting

    tragedy of the commons: the misuse and overuse of a collectively owned resource. In the case of Android, that common resource is the memory, processor, and battery life of the handset. The tragedy is that any application, while in the background, can use any amount of resources.

    This isn't exactly true. Apps only get to use 16 megs of memory on Android. Sounds like a lot, but it's not, especially if you're working with 2d graphics. That's actually something that's causing a lot of difficulty for me in game development on Android. A 1000x800 image is 3.2 megs by itself (1000 x 800 x 4 bytes per pixel). Put a couple of sprite sheets into memory for animation and you're rubbing elbows with the limits.

    The point from the article about apps being unconstrained and able to ruin each other isn't really true, at least not for memory. Perhaps the problem the author cites is more of a problem on Android platforms with only 64megs of memory to work with in total. On my Droid, I am saddened by the opposite problem: only being able to use a small portion of my device's memory.

    1. Re:5. Developer Cooperative by GooberToo · · Score: 2, Interesting

      Apps only get to use 16 megs of memory on Android.

      That's actually not true. That's a hardware manufacturer's limit and can vary from device to device. Android itself places no such constraint on application memory. The limit is set on a per hardware basis.

      From a programmer's perspective, that likely means supporting the lowest common denominator, which is entirely a different issue. Though pragmatically for you, that hardly makes a difference.

      You might check and see if the limits are accessible at runtime which will allow you more adaptive flexibility in your applications.

  8. Re:What? by tweek · · Score: 2, Interesting

    I wish that Google would get EVERYBODY on the same version. I am tired of waiting for Samsung to update my phone to 2.0 or 2.1. It is just silly that Motorola released two phones in the same time frame and one has 1.5 and one has 2.0! or that Verizon released two Android phones on the same day and one had 1.5 and one has 2.0. Or that T-Mobile has phones with 1.5, 1.6 and now 2.1!
    This fragmentation on such a new platform is just insane.

    That's the whole point of http://google.com/phone

    Google has realized that the fragmentation has been killing development. Combine that with UI changes and it can be a nightmare for developers.

    However I'm of the opinion that you should only develop for stock Android of a given release. I just want to slap people who post stupid fucking comments on the app store that "X" doesn't work with Cyanogen mod Foo. The risk of running unsupported firmware is that it doesn't work. You knew that going into it. Why should people cowtow to you?

    The point is that the HOPEFULLY with the google store for Android powered phones, they can drive the market to stick as close to stock Android as possible. I would hope that Sense UI and Motoblur devices would be kept off the official Google store or at least come with a disclaimer that this is a customization and that not all apps will work with it.

    Additionally, Google needs to implement some sort of automated app scanner that determines if the app is making 1.6,2.0 or 2.1 compliant system calls and version the apps presented in the store to each device as supporting that release.

    I have no idea what to do about the screen issue though but I think it's going to come down to two differentiators - Android Powered (Sense UI, Motoblur, whatever Sony is calling their version) and Android Experience (stock - DROID and Nexus 2). Maybe "Android Experience" dictates a fixed screensize or some basic level of specification.

    --
    "Fighting the underpants gnomes since 1998!" "Bruce Schneier knows the state of schroedinger's cat"