Like it or not, Android is huge. Creating an open source mobile platform was one of the smarter things Google has done. It's too bad that they haven't done that great of a job doing it. Android has succeeded despite Google. In fact it's safe to say that Android is successful for one primary reason. The iPhone is only available on AT&T. If the iPhone was on Verizon a year ago. Android would be no where near as popular. But since this has yet to happen, Android has become a huge market that isn't going away.
If you are a company that builds/has iPhone apps, you better be thinking about developing for Android ASAP. But you should also be prepared for the pitfalls.
- No HIG. Human Interface Guidelines. UI for Android is a free-for-all. Anything goes. Some would argue that it's a good thing. But all this does is promote weak, hodgepodge designs and user experiences. If there were standards or basic guidelines and UI elements, it would be easier to design and develop for Android. It would become faster to bring apps to market. My advice would be to look at the most used apps for similarities and inspiration. The "springboard" home screen is quite useful with the Facebook and Twitter apps. Also large, top-of-screen tabs work well to switch context. Remember that for most Android phones, the touch-screen is far less responsive and accurate as compared with the iPhone, so bigger and more spaced-out tappable areas are recommended. And remember it's not all touch-screen. You have a permanent back button, a menu button where you can hide controls, and of course landscape mode becomes more of a requirement because of the several popular phones with landscape sliding keyboards.
- Too many OS versions in the marketplace. This type of thing will become a theme. Because any version from 1.5 to 2.2 might be available in large quantities, developing and testing for compatibility across all OS versions becomes quite difficult. The stability of these OS versions is also questionable, and of course the carriers might mess with them to make their own flavors, so you'll have that to contend with. If' you're building complex applications with lots of service calls and internationalization, you have a QA perfect storm... but wait it gets worse.
- Too many different handsets in the marketplace. Every handset has its idiosyncrasies. So they all might treat your code differently. This, combined with the aforementioned OS issue makes that perfect QA storm even bigger. I recommend throwing out OS 1.5 and just contend with 1.6 and above. Hopefully soon you'll be able to only worry about 2.x and above, but for now you're dreaming. Then get as many phones as possible to test with. You have to have a Droid and a variety of HTC phones. But don't ignore new comers. Watch your logs and make sure you are optimizing for the predominant flavor of OS and device. Your app reviews will also tell you where people are leaning. With the iPhone you have consistency. There are a very small number of OS versions to worry about, almost everyone upgrades and one iPhone pretty much works like another. Developing for the iPhone is a piece of cake compared to Android.
- The app market sucks. The first thing you should do if you're developing an Android app is to create an independent Google/Gmail account to manage your apps. If you use a personal account, and want to let others help manage the account, you're screwed. Trust me, I know from experience. Do not upload an app under your personal account. You'll never be able to untether it without losing all your download data. At least not yet. The Market is also only available on the phone. And each carrier might have different views of that market. So the market is not as easy to explore and discover apps as iTunes. The web version of the market is a joke. Don't even think about looking at it; it's a bizarre wasteland of weirdness. I have no idea how it displays what it displays. And the search sucks. I would think that Google would do everything possible to fix this ASAP, since the web and that search thing seems to be their thing, but so far it's been all talk. The one good thing about the app market really only being available on phones is that the reviews are usually quite concise and to the point. This helps cut the crap and provides some pretty snappy commentary. Both good and bad, which is good.
- The app market sucks some more. Beyond the clunky consumer experience, the market provides very little data about downloads and app performance. It got slightly better recently with the addition of error reports, but beyond this, it's very difficult to tell what's going on with your app. The app I manage and help build has nearly 2,000,000 downloads. But the Developer Console doesn't handle commas, so I have nearly 2000000 downloads. Much easier to read. I have released it in the US, UK, Canada, and Australia, but I have no idea how many downloads each country has performed. I'm about to release it in around 15 more nations... I'm not looking forward to creating my reports. It's all guess work. Yes, I have my own analytics set up, but this doesn't tell the full story. It's also common for there to be data hiccups where all of a sudden 60,000 downloads disappear, then maybe reappear as a different number some time later. The console does provide active user data, which is defined by Google as the number of users that have not deleted the app after downloading it. So you have a total download number and an active user number. This data is helpful, but I've been experiencing wild swings up and down with this number recently, so I don't know how trustworthy it is. We may have to build some kind of background operation that tells us directly if the app is installed on a device to verify the Android Market numbers.
- One more thing about the app market... Android Apps don't sell. Not nearly as well as iPhone apps. First, the quality of apps aren't there. Gaming hasn't been a focus either (perhaps Angry Birds for Android will help change the tide...) but the biggest thing holding back the sales of apps is the limitation of the market itself. Again, it's only on the phone. People are not as comfortable buying on a mobile device compared with a PC or notebook. Hardly any time seems to have been spent creating a market that makes it easy, comfortable, and convenient, to purchase an app. For Android app sales to take off, the market needs an off-phone sister that can really merchandise and market apps in a way that the phone version can not. It should also create a marketplace for giving the app a try... if you keep it, you buy it. I wish iTunes would do this legitimately.
- Some good things... There are some good things. Don't get me wrong. In fact over the past 9 months, I've sort of fallen in love with Android and all its quirks. It's a tough love, but love nonetheless. One awesome thing is that it's super easy to release the app to the market. It takes about 2 minutes and it's live and ready for download. I can also easily change the marketing text or screen shots without worrying about having another version available. And for all my complaining about a lack of HIG, there is a certain freedom in designing an Android app. Anything goes? Sure, why not? The users seem to be more passionate about the OS as well. They seem defiant in their choice to not be part of the iPhone masses. Android users are a proud people. They are proud and super smart. While this might be changing a bit with the ubiquitousness of the platform, the core users are the best kinds of nerds. Passionate, intelligent, and very willing to help debug any issues that arise. The open source foundation of the platform generates this good naturedness. We all seem to be in this together... the developer and the user.
For Android to win, and believe me, that's a real possibility... Yes, for Android to win, they (Google and perhaps Motorola, HTC, the carriers, and the rest) need to spend more time on the user experience... on the customer experience. The OOBE of Android needs to be killer. I'm not talking about the devices so much, I'm talking about the overarching consumer experience. From the UI, to the Market (both on the phone and elsewhere), to the functionality of the OS. The devices do matter. Consistency is critical. Consistency from one phone to the next, no matter who made it is super important. Right now, you could easily compare two different android phones with the screens on, and not realize they are running the same OS. This makes no sense. For most people to fall in love with Android, an amazing shared experience is key. The phones can be configured differently or have one feature vs. another, but when I turn on that device, I better get the same experience as my neighbor. I want it so we can share in the delight of discovering new apps and things to do with the phone. What's more fun than telling someone about a new app you've found...? well lots of things, but you get my point.
I hope I get the chance to continue to design and develop for Android in the future. For one thing, I don't feel like I've proven myself yet. I haven't had the chance to really push the platform as much as I think I can. Yes I've built a popular Android app, but it's no where near what I want it to be. I think my friends who have helped me build it would agree. Android developers are a proud people too.
If you're building your app now, good luck. Keep it clean, keep it simple, keep it focused, and take advantage of what the platform provides. Follow the leaders, but do so in your own unique way. Look for holes and take advantage of opportunities in the marketplace. It's still very much a greenfield and your chance to innovate is now. And remember don't add a feature just because you can. Think long and hard about whether it's truly necessary. Apps, by nature are meant to be small and targeted. You've heard me say this before, and I no doubt will say it again and again. The best products do one thing and they do it better than anyone else.
As always, forgive any typos... it's late. :)