Note: This is an old post and may or may not accurately represent my current views, current technology, etc.
I’m pleased to announce the release of CNET News for Android versions 1.5 and above. For those who don’t know,
CNET is a tech site that has a lot of news and reviews about all kinds of technology-related topics. This app gives a fast way of viewing the CNET news articles on the go (or on your couch). It’s free (ad-supported), so give it a try.
As the sole developer, I’m pleased with how it turned out. I had to fight a bit to get things done the “Android” way (since we recently released the iOS version, for which I only did the server-side work). There seems to be a strong expectation for things to work the same way on Android devices as they do on iOS devices; however, I was able to sneak in some Android-specific features.
The feature I am most excited about is the ability for the app to handle certain CNET URLs. That means you can set it as the default app for those URLs and clicking on a link like Paul Allen sues Apple, Google over patents gives the user the option to open it the CNET News app. This gives a much better user experience than opening the full website for the article.
All of the sharing features in the app utilize Intents, allowing users to share with whatever apps they want. Prefer Twidroyd to Twitter? Share with Twidroyd then. Feel like texting an interesting link to a friend? Go for it. Want to share via some ultra obscure app? No problem. Of course, all that only works if the app developers properly support Intents, but that’s extremely easy to do. In fact, the only app I’ve come across that screws this up is Facebook. Unfortunately, the Facebook app for Android has long been mediocre (at best).
I made use of caching throughout the app, so that the user experience should be fast and smooth. The caching system I developed also automatically flushes outdated content to limit the storage space used by the CNET News app. If you’re really tight for space, the app can be installed on an external SD card (assuming you’re running Froyo).
I also utilized XML gradients, shapes, etc. With the upcoming tablets, I thought it made that much more sense to keep things as resolution-independent as possible. I learned quite a bit about the layout system in Android because of this approach, and I’m glad I decided to do it. There are some limitations to what you can do, but I found that the XML drawables were more capable than I expected, and the experience of developing this app was a good one.