Android Tries Harder
pogue.blogs.nytimes.com
pogue.blogs.nytimes.com
Originally, I wanted to spend my tax return on a Mac so I could partake in iPhone development. Given Apple's recent actions, I'm just going to get an Android phone, and use my current laptop loaded with Ubuntu to develop for it.
That's quite some free advertising.
I understand that the Nexus One is probably the nicest piece of hardware out there right now; but it's hard to decide to jump to it when it constantly sounds like there's going to be something even better just around the corner.
I guess my complaint is that I feel like the Android ecosystem is still too volatile to want to spend money on a phone.
(Personally I rather like the fact Android affords some choice in prices, features, and form factors, rather than locking you into /the/ one.)
It just feels like a very fractured ecosystem. I hate developing for a platform that makes it feel like there are a lot of unknowns - how many test phones should I need to keep around if developing on Android? I know that it should be only 1, but is that really the case? How long will that remain the case for?
Maybe wishing for "the" canonical Android phone is the wrong approach; but it would be nice if Google came out with some hardware guidelines that said "You can at least expect to have these things be true on every Android device."
I agree, both as a user and as a programmer, that the mess with Android 1.6 sticking around for essentially political reasons needs to improve fast. Minimal specs are nice, although they will necessarily change as the time progresses, and you will have to make a cut-off yourself. Support only Android phones released in the past two years (as an example, obviously not a useful guideline right now) and you will know what your lowest common denominator is.
On the other hand, even Apple's halcyon days of single-device uniformity are coming to an end. You now have two resolutions in iPhone OS to deal with, and if rumours are true, you'll have a third one in June (though that one's less of an issue since doubling should work acceptably). OSes 3.2 and 4.0 force you to consider both hardware and software keyboards. The iPhone 3G has less RAM available to an app than the 3GS and the iPad. CPU speeds are different on every release and I believe graphics performance differs too. New hardware features have been introduced that you have to check for. Between June and November-ish, you'll have to support 3.2 for iPad and 4.0 for iPhone (and 3.0 for older iPhones, if you even want to).
Right now the overwhelming majority of Android phones have 320x480 (iPhoney) resolution or 480x800 or 480x854 (Droid). That's just two densities and really only two sets of art assets to program for. iPhone will soon have two densities and iPad, which is really neither better nor worse. iPhone apps are easily targeted at a particular resolution with interface Builder while Android apps have a cumbersome and ugly system of trying to achieve resolution independent layout that most developers don't understand or use correctly. There's no saying what will happen to Interface Builder when it faces the challenges Android set itself with varied device standards.
But for now iPhone has a significant advantage in ease of development here.
On the plus side for Android now is that higher density resolution makes websites a pleasure unimaginable in my iPhone. On the minus side, I keep getting user requests to support their trackballs and other exotic hardware.
Want a keyboard and like Verizon? Get a Droid. Like Verizon but don't need a keyboard? Get an HTC Incredible later this month. Like the Nexus One but want the freedom of a SIM card? Use it on T-Mobile or AT&T. Want a cheaper phone with a keyboard? Get one of the new Motorola models that are coming out for just about every carrier.
You can think of it as confusing, or you can think of it as having options. Both are probably true :)
Android is not a single, tightly-controlled product line. It's an OS. Buy whatever hardware you think you'd like to run it on.
It's just a different approach than Apple's, and one that has worked well in PCs.
(That said, personally I hate my MacBook Pro from work with the fire of a thousand suns, and have only used an iPhone for playing music on long plane trips since getting a Nexus 1.)
Assuming we are segmenting the Mac market from the PC market, it is much better to be in the PC market whether you are consumer or a producer. For manufacturers, it sucks to be in Apple's market if you are not Apple (PsyStar?). For consumers, they get a wider selection of products at lower price points, though they do not get the design cachet.
To make a belabored car analogy, would you rather be in the market for Italian supercars or that of the rest of the world? Both producers and consumers tend to choose the latter.
Lower price points, but a Windows PC is cheaper than a Mac only if your time and frustration is worth nothing.
Actually, if you want a quality desktop (quality meaning zippy specs and at least a 27" 2500x1500 bright high quality monitor) you might find Apple cheaper.
Nobody else is really in Apple's market right now because selling high quality hardware and a great experience is impossible when you're wedded to Microsoft garbage. It's probably a worthwhile market, though, if you could get the millions necessary to start up.
Even though Apple was in trouble in the 90's, it was and is and has been since the 1970's the most profitable computer manufacturer in the world almost every year.
Most consumers would choose to be at the luxury end of almost every product. It's just not a choice for almost everyone.
As to producers, it isn't inherently better to be a luxury market or a general market -- it's highly dependent on your product, market, and competitors.
For consumers, they get a wider selection of products at lower price points, though they do not get the design cachet.
That's a kind way of saying that consumers have a very diverse pile of crap to choose from.
But other people buy fancy houses, fancy cars, fancy computers, fancy holidays, fancy clothes etc. by virtue of choosing what is important to them and spending less on everything else. You can't spend more than average on everything unless you have more than average money. On average, people don't.
How much of that money is coming from iPods, iTunes, and the iPhone?
http://en.wikipedia.org/wiki/Usage_share_of_operating_system...
90-10 in favour of windows.
Basically your choice comes down to a hardware keyboard (Motorola Droid) or better specs (Nexus + variants).
Welcome to the computer industry. That there's something better just around the corner hasn't stopped people who have wanted Apple products for the past 20 years from buying them, to the point where Apple even ends up giving late adopters refunds if they buy something that Apple drops the price on within some limited amount of time after they purchase it.
I'm just so confused! (Or not. Best tool for the job. I'd rather not rely on just one ecosystem all the time.)
I didn't plan to learn Java, but will do so to develop for Android and I feel it's the most interesting platform and has the most long-term viability.
If you're going to be moving away from Apple's monolingual nightmare you might as well take advantage of it. =)
Any link to get started running Duby on Android? Would be helpful to many hungry wannabe-android guys.
I thought I'll take a light year to learn Android dev. But Duby seems to bring some hope.
Adapting the build process to Duby was surprisingly easy. You redeclare the compile task to call the Duby compiler instead of javac, tell it to output its bytecode in the right directory, and the rest of it just falls into place.
link: http://github.com/technomancy/Garrett/blob/master/build.xml#...
You can probably just apt-get everything you need to get started with android dev, no?
Overall, my experience with the Android toolchain on Ubuntu (as well as OS X) has been a positive one.
This, for me, is a real problem with the Apple model (the "hide the engineers" model, also followed by Oracle), we can not simply write an e-mail about a bug (Apple do have a closed bug tracker) or suggest a feature or even get motives about why some features do not exist in the iPhone (such as OpenVPN support), compare this with the extensive network of blogs that Google and Microsoft engineers have.
This is sad, you're always dealing with a cold company and not with people just like you that probably have some good motives for including or not a feature in a product, I wish to be alive in the day Apple becomes more open.
Apple managed to get quantity, and with that the quality that you can often expect from the top 5% given enough quantity.
Google's much more surgical approach makes sense in that they can't realistically compete in quantity of apps any time soon, and thus have to specifically seek out quality to compete with Apple.
and if developer sentiment is an early indicator
Be careful: what you see on HN can be a very bad indicator of the real situation. All that was kind of blown out of proportion. There was kind of poll on HN asking iPhone developers how they feel about 3.3.1 and most of those who do develop for iPhone said more or less along the lines "I don't care much". The biggest outcry was probably from those who never did nor were going to develop for iPhone. At least they found some justification for that now.It's easy to get scared by rejection stores, but: App Store has close to 200 000 apps now. What are the real chances to get your app rejected?
I've had 2 great experiences with them, both involving multiple calls over a week's time solving Adwords account problems. (I'm only managing ~$15,000 ad spend per month, so it wasn't because I'm a big fish.) I do believe that's US support only, but I could be wrong. It's been the better part of a year since I've had to call in.
Anecdotally, my past experience with support for both AdWords and AdSense has been terrible. I'm glad they've got an 800 number now.
My office chair quite literally comes with better phone support than AdSense (or AdWords since I've never spent much).
They also apply their policies very inconsistently, and greatly favor large advertisers. I think their documentation is great, but they need to make a better effort to reach out to advertisers. I am not a huge fan of Microsoft's adcenter, but their customer service is incredible. Their number is always nice and prominent and when you call they will do anything to help, and work hard to get it solved then, where as Google will take their time.
Again this is a sample size of one, but google goes out of their way to not talk to you, they even hide their customer support chat service through several layers of help screens.
1) Descriptions and other meta data for apps in the Android Market is atrocious. Lots of apps don't even have an informative description of what they do. Most apps don't have screenshots. This is the developer's responsibility however it hurts the platform as a whole when the user gets frustrated.
2) The top charts are heavily biased towards geeky applications. I have no doubt they register the most downloads but they may discourage people from exploring the Market deeper. A "top grossing" list would be valuable here.
3) The Market displays apps in other currencies. This is confusing. Easily fixable.
4) Some apps in the Market simply aren't compatible with some devices or are otherwise very buggy. This also may discourage people from digging deeper
5) Google Checkout is a total flop. Few use it outside of the Android market. Not sure what the solution is here but it impedes impulse buying for lots of people.
Therefore Google is smartly attempting to come in and skim the cream from the top.
>“Contrast with Apple’s approach: it took us about three months of resubmitting our app to Apple before they stopped rejecting it for inappropriate content. And even now (after we peaked at the No. 7 paid app)"
It's the "after we peaked at the No. 7 paid app", part. While I think it's pretty amazing that Apple managed to create it's own microindustrial economy within the App store, it seems that a leading motivation for writing Apps is just to be in the App store and get ranked.
Now I know full well this isn't the only reason people write apps for the iPhone, and maybe it's because of the walled garden effect that once you write an App you're dying to get in and hope people use it. But personally, I like the Android ecosystem where writing and distributing software is as native as it is on any computer.
And based on that conjecture alone, I don't think it's an issue of 'quality control'. Taking one giant step back, when you have a format that's easily distributed across whatever medium you choose, and don't put quality apps beside apps of less quality in a closed-off 'store', people don't even notice. They go for the apps they want to use and they can search whatever marketplace has it, to purchase and install it.
Competition in the App Store is good. Consumer choice in the market place is even better. That's why I don't own an iPhone and never will purchase an iPad.
I largely agree with you that its still the bottom line that matters, but mindshare is often under-appreciated.
There's a reason they are giving away handsets like mad (we've gotten two droids free in the past month).. Money is not enough of a draw yet.
If you get to the $100K+/yr level then you get a rep. with a direct line that you can appeal to.
Then once you have your adwords rep on board, they are good at helping you get support from other groups... Checkout, Google products, etc.
Ask any Adwords advertiser or Google Checkout implementor.
This seems to speak to the strength of the iPhone app store and this strength also explains why most developers seem to prefer the iPhone app store :)
Note: I wrote a prototype Android app (with their beta SDK) long before the first Android phone was in the market (and before the iPhone app store was launched). I have successful apps in the iPhone app store, no apps in the Android app store/market.
A few months ago Google gave out free Droids and N1s to developers whose apps had over 5000 downloads and at least a 3.5 rating. (Of course at the time my app had 4200).
My wild guess: November 15.
Depends on how quickly Apple can make it to other carriers. If I were the carriers, I'd have a few backroom meetings to NOT offer the iPhone (lest they become dumb pipes!).
If I were Android, I'd drop the rev-share for apps to 15% from 30% so developers make more money with less sales. And I'd make sure the carriers got a bit of the rev share.
If I were Apple, I'd take that pile of cash and build out a cellular network ASAP. ;-)
This is why I think it's a matter of time for Android to overtake the IPhone in terms of unit sales. If the 30+ Android models are actually released later this year, Android will likely surpass the IPhone early next year.
The profits crown will remain with Apple though for a very long time.
Given Apple's profits with the iPhone and economies of scale, they might just be able to compete with that. Give away iPhones, make it back on app sales?
A huge advantage of the iphone is that there's a single screen resolution to optimize for.
Honestly, I am just glad that if I make an Android app, it won't be rejected.
http://www.androlib.com/android.developer.myapp-builder-qinw...
Also there's a low-end Android phone by HTC called HTC Tattoo. But I would say no to it since you get what you pay for. Not many apps run on it coz of the type of screen it has.
Also no to Sony's Xperia X10 coz it runs Android 1.6 although it's a new phone.
HTC Desire is awesome. Also it has the same specs as Nexus One minus the Google logo. It also addresses some N1 problems :)
I would suggest that you investigate if the manufacturer is the kind that would support you by offering OS updates if a later version of Android releases. HTC seems to be one. I dunno abt Motorola.
Get something that runs the snapdragon processor coz there's a very high possibility that these phones will get updates to a new OS version coz it's capable of running them better.
A tip - develop using the emulator first and then buy a phone :)
P.S: I'm getting a Desire later this month when it releases in my country.
I think you're right that many more programmers are immediately available for Android development than for iPhone/iPad development.
If you like static typed languages, you can even use Scala on Android (http://www.scala-lang.org/node/160).
Many possibilities beyond plain old java.
Scala on the other hand, is supposedly production ready. I haven't tried it yet myself, but it's on my to-do list. :-)