I'm an iOS developer. I've done J2ME apps also. The thing holding me back with Android is the fragmentation of the devices, along with the appallingly low rates of upgraded devices (single digits if I remember).
Now Android is delivering some whoop a** on iPhone and other smartphones in the sheer volume category, but my questions are, since I haven't played with Droid yet,
"Do you see fragmentation of devices decreasing AND do you see the handset makers relenting and offering Droid OS upgrades to their existing base of users?"
I understand back-porting the OS to phones that have already been paid for, holds no immediate profits and maybe OS upgrades could cost $5 - $10 or something, but this holds up new apps that need those OS features on a larger number of phones.
I'd say developing for different hardware capabilities takes more work than adjusting for different Android versions. It does mean setting a baseline version, though, and using newer features only conditionally if they're available.
I'd be interested in seeing some source for the comment about low upgrade rates; single digits seems rather low to me.
Unfortunately, for me, this resembles the problem that J2ME has. The manufacturers are given too much leeway to decide whether they support upgrades to OS, and in some cases support for certain features. Maybe they will make an Android Polish project, like J2ME polish.
Fragmentation is a issue but not necessarily as bad as it sounds. In part because the OS is not really fragmenting in the sense that each version of Android is so radically different that you need to perform massive code changes and hardware changes. Indeed many of the examples in the book, written for 1.5 only needed extremely minor changes to be compliant to 2.3. Some needed none. Most vendors add custom launchers, applications, and sometimes drivers to 'brand' your experience. Most phones I have touched can be updated to whatever version of Android, without much work. That being said if you want official updates from Sprint for your HTC hero to go to 2.3 that is probably not going to happen or at least there will be a firm End off Life. In part this is because phone vendors want you to purchase new phones and a new OS is a compelling way to push customers into doing that.
Just based on my current android phone (Samsung captivate), I suspect there is a level of fragmentation we are not addressing yet.
Particularly, how can you *really* debug an app without the vendor's ROM present? I have a genie widget installed that doesn't update as often as I tell it to. I have it set to update every 15 minutes, but it remains static and out of date for hours and hours. Is that a simple bug in the app? Is it something in android? Is it in the ROM? Maybe the phone vendor themselves? I have seen waaaaay too many notes on apps in the android market with messages like 'fixed a bug on HTC platforms' or 'now working on Captivate and Vibrant'. To me, that sounds like an app developer that had to drop what they were doing, find a sympathetic HTC or Samsung user, and beg them to test a fix. A blind fix to boot! If things are as bad as I think they are, we are no better off than when we all wrote in C++ and compiled for individual platforms/unix flavors.
Note that I have only developed a couple of trivial apps, and don't *really* know what I am talking about, so jump on in everybody and tell me how it's done. The scenarios I outlined above concern me.
I would be interested in your response to this. I'm not trying to start anything, but as a developer I see this and cringe a bit. Yes we target an OS version and then upgrade as "the majority" of the devices are updated. However, it seems the handset makers have no incentive to do this on the Droid platform. That's only my impression from reading articles like these.
Thanks for the replies from all of you.
posted 7 years ago
Someone (I forget who) said it nicely: "You can tell which TechCrunch articles are written by MG Siegler just by looking at the headlines." He sure loves to stir up things.
True, there's a lag between Android versions being released, and them becoming available to users. That's a reflection of there being different manufacturers (and carriers) being involved. Only those phones closely tied to Google (primarily the Nexus) have been updated to 2.3 by now. So that "0.4%" figure four weeks after the release is meaningless IMO. A more interesting chart is the bottom one on this page. Note the jump in Android 2.2 usage in August 2010 - in a couple of weeks, several manufacturers rolled out the 2.2 release to their devices; that was 3 month after 2.2 was first released. Of course, the chart also shows that many 2.1 devices still have not gotten the 2.2 upgrade, which is regrettable. And it shows that many "first generation" Android devices didn't have the hardware chops for Android 2.0 and newer.
See my comments in http://www.coderanch.com/t/526018/Android/Mobile/Android-doing-your-Country on this, particularly regarding carriers and contracts.
On the other hand, on iOS users and developers are tied to the rules Apple sets. Don't like how the iOS App Store operates? Tough luck, there's no alternative. Don't like the carrier Apple chooses to work with (like AT&T) - again, tough luck. So there are pros and cons about the tight control Apple keeps on their ecosystem.
posted 7 years ago
Thanks for the reply and followup.
I agree there will be a lag between Google release of the OS and the implementation within the phones. My intent is not to start Flame Wars 2: The Mobile OS. Thanks for also restraining on that front so we can "just discuss the topic".
I also agree about the locked down Apple platform and carrier. As we see the Verizon roll out and them selling out within 2 hrs of opening their web site (it sold out in the early morning by like 3am). So there is definite pent up demand that has said "I hate ATT as a carrier and won't buy the phone until someone else comes along". So anyway enough about iPhone, there are enough discussion and more than enough coverage of that platform.
So is your point that: 1) Yes there is fragmentation, 2) But that fragmentation shouldn't prevent anyone from developing on the platform.
Is this a good assessment of your view?
posted 7 years ago
Yes, it is. I also agree with the view expressed in the link I posted in my first post (which says pretty much the same thing as your points #1 and #2).
In the end it comes down to this: Say you have developed an app based on Android 2.1. Now Android 2.2 comes out, and after 6 months not even half of all devices have it - what do you do? Do you really want to rewrite your app to take advantage of all the great 2.2 stuff? And do it again in another 9 months to take advantage of 2.3 features? etc. Does that make sense commercially? That's not a rhetorical question, BTW - it may, or it may not. But since you didn't know about the 2.2 stuff when you wrote the app, in theory it should not make a fundamental difference.
posted 7 years ago
It would depend on the application. The new feature(s) could actually enhance an app.
To rewrite it? No probably not. At least not immediately. However, like you would know, most applications are living applications requiring fixes and feature increases in response to customer needs. Games, not so much, but there is a component of "This is phase I of the game, I'll add these features and that's phase II". Then you realize, Oh I'll incorporate this 2.2 feature in Phase II (release 1.2) of the app. I will have just alienated all of the users who have purchased the app (and kept me from starving), because they are unable to upgrade their mobile device as fast as I update my app.
This occurs with iOS, but not as frequently. There is a month or couple of months where I can get ahead of the release. However, I am fairly certain that instead of 25% - 50% of my users being on the same version as I release on (i.e. Droid), I would have about 90% probability that my users will be up to date. That is why I asked my original question. What am I missing here? Obviously I am not in the majority (thinking that Droid is fragmented).
I like OSS. I use and develop on Linux at work for the past 10 years, and yet I'm not enamored with Droid. I am wondering why I am reluctant, except for the articles I have read along with the developers I've talked to.
I don't think you're missing anything - your perception is spot on: The Android ecosystem is definitely more fragmented than the iOS (or BlackBerry) ecosystem. As I've said in some other thread, I think it's going to get better, but it'll never be as coherent as the single-vendor ecosystem (primarily iOS and BB). But developers seem to have found a way to live with that regardless, judging by the liveliness of the various Android app stores. But still, it's possible that it's easier to monetize profitably on iOS (search for Mark Spritzler's posts in this forum in the last 10 days for a perspective on that)
(I'm using iOS as a comparison, since I'm sort of familiar with how that ecosystem works; that's not a comment in any way on the monetization opportunities of other platforms like BB, Windows Phone and Symbian - although I do think that those will become untenable to develop for a lot sooner than either iOS or Android.)
posted 7 years ago
Thanks for the information. I will search for Mark's posts.
It sounds as though you are as agnostic about the platforms as I. Since I can program many languages on many platforms, I just select the "best" one for the job and launch. I have my history at Tomhollins.com and in my LinkedIn profile if you were curious.
Thanks for the respectful discussion. It was an excellent perspective.
It would give a normal human mental abilities to rival mine. To think it is just a tiny ad:
Programmatically Create PDF Using Free Spire.PDF with Java