Favorite Android Apps

This past Friday, I bought the new Samsung Galaxy Tab 10.1, and I absolutely love it. The new Honeycomb interface looks amazing, and is quite an improvement over what’s available on my Nexus S with Gingerbread. I love that the back, home, and task switching buttons are now rendered on the screen instead of having hardware buttons, and combining those buttons into the notification and status bar means you don’t even lose screen space compared to previous versions. The new application switcher looks really nice, but does seem to have some odd behaviors, like not showing the browser that I just switched away from, or seemingly choosing at random whether to display the list from the top instead of from the bottom where you would expect.

There are a lot of applications that don’t yet take advantage of what’s offered by the Honeycomb APIs, but still tend to work really well. It mainly depends on how well the author designed the application to scale with the user’s screen size and density. An example of doing it wrong is the official Facebook app; it’s still usable mind you, but it certainly looks dumb in process, showing the main menu as a large grid of tiny icons with massive amounts of whitespace between them. It would have gone a long way if they had simply scaled the images to fill the screen.

I’ve been meaning to write about some of my most cherished apps, and seeing them in new form has given me an even better reason to get to it. Some of them really only work well on a phone, and others have only gotten better than ever when given a tablet form factor to call their own. So in no particular order, here are my favorite apps for Android. All prices are rounded up from Market estimates at time of writing, and all screenshots are taken from my devices:

  • Locale - $10

    I’ve already spent an entire blog entry talking about why I like Locale, but I still have to mention it again. It’s one of the most useful apps on my phone, and I don’t even have to open it up to reap the benefits. It automatically knows where I am and modifies my phone’s settings, such as ringer volume and wifi status, based on a set of defined conditions. How much better can it get?

    Tapping a situation allows you to define its conditions and settings.

  • Google Voice - Free

    Probably one of the best examples of Android app integration, Google Voice transforms your standard cell phone into just another devices that can send and receive voice calls or text messages using a central phone number. You choose a phone number for free from Google or transfer your existing phone number, associate your mobile devices with your Google Voice account, and then the magic happens. You can use your mobile device, your computer, or even a land line phone, and any phone calls or text messages get routed to all of your Google Voice clients.

    I can send and receive text messages in my browser, and then pick up where I left off from my phone when I leave, and everything is synchronized automatically. If I get a phone call, I can pick it up from my cell phone or a house phone. I can even use any Google Voice client to listen to voice mail, mark callers as spam, block numbers, or even set quiet hours so my phones will never ring.

    But on Android phones, it gets even better. Outgoing calls, using the stock dialer, can automatically be sent using your Google Voice number, without having to open a special dialer; it just does the right thing automatically, and other people only have to know about your Google number. I’ve been using it since it was in private beta, and I’ve never looked back. The only way it could get better is by supporting SIP devices so I wouldn’t even need a voice plan for my phone.

  • K-9 Mail - Free

    K-9 is an interesting application to review. It’s code is loosely based on the bog standard Email client that’s bundled with every Android device; it’s open source and actively maintained by its developers. It’s also largely considered the best IMAP email client available for Android, and supports a lot of features, like a unified inbox, IMAP-idle support for instant notifications of new email, configurable hiding and showing of folders, and multiple batch operations for dealing with large amounts of messages. Notifications are so timely that my phone will beep on new messages before Thunderbird has even picked up on it, yet K-9 uses so little battery power in doing so that it has never shown up in the battery usage report screen.

    Selecting multiple messages displays batch actions, with more available on the menu.

    While K-9 isn’t specifically optimized for use on Tablets, it still works really well on mine. There are a couple options that will expand the size of individual emails in the list, such as showing a message preview, and that goes a long way to making K-9 more finger friendly on large, pixel-dense display. Likewise, enabling extra action buttons also makes working with email quicker on the tablet than on the phone without taking away too much space from the content that matters.

    I do feel obligated to mention that there are a few things that I feel are missing or poorly handled that leave me wanting for more. As someone with a relatively detailed hierarchy of sub-folders, it would be really nice to have some sort of tree view for them, rather than seeing a list of dotted folder names like “projects.linux.ubuntu” next to “projects.mantisbt.dev”. When dealing with mailing list conversations, I would practically kill to have a good threaded view like what I get when I open up my account in Thunderbird. And perhaps most annoyingly, deleting messages on the phone marks them for deletion on the server, rather than moving them to a trash folder like I would prefer, but doesn’t even correctly expunge those deleted messages afterward, forcing me to re-delete them from Thunderbird the next time I get to a desktop.

    Overall though, it’s still an excellent email client, and I would recommend it without hesitation to anyone planning to use their phone with an IMAP email account.

  • AndChat - Free or $4 Donation

    My primary method of communicating in real time, outside of SMS to talk with family, is done through IRC. I enjoy IRC so much that I even setup Bitlbee on my server so that I can use my IRC client to talk with friends on the AIM and Google Talk networks. I use a combination of ZNC and ZNC to Notifo to keep an always-on presence, and be instantly notified on my phone if someone mentions my name. When I’m not at a desktop to connect to Irssi on my server, AndChat is my go-to client on Android.

    A simple but useful IRC client.

    Feature wise, it’s one of the best IRC clients I’ve found for Android. It supports SSL connections, handles multiple IRC networks well, which allows me to connect to my Bitlbee server at the same time that I’m talking on Freenode or private project servers. Tab-completion of user nicks is handled really well, using the search hardware key on phones, or an action bar button on my Honeycomb tablet.

    But one of the best features that sets it apart from the competition is how it handles changes to the devices network connection. Independent from its normal reconnect settings, it will detect when my phone changes between wifi and data connections, and will know to reconnect when the bits start flowing again, without counting against the standard retry limit. It’s very useful for maintaining a connection when traveling between locations with wifi, and with ZNC maintaining a connection and sending a history on reconnect, I never miss a beat.

    I have two complaints about AndChat though, one of which is the lack of quick switching between multiple networks, which requires returning to the main AndChat screen and selecting the new network to use. This is perfectly acceptable on a phone with a lack of screen space for UI, but considering that the app has specific support for Honeycomb, it would be really useful to have an option to switch networks directly on the action bar at all times to simplify the process. Secondly, this may be a bug due to using CyanogenMod 7 rather than stock firmware, but it seems that quite often, typing into the chat box on my phone will stop showing the characters, even though the application is receiving them just fine. Going back to the main screen and returning to the network will then show the entered text fine, and the problem will go away for a bit and then rear its head again. It’s not a show stopper, though.

    I’ve tried other IRC clients for Android, Yaaic being the one I liked the most, but I still keep coming back to AndChat for its superior set of features and general usability. I highly recommend it to anyone heavily versed in IRC, and encourage you to buy the donation version on the Market to support its developers.

  • ConnectBot - Free

    I’ll admit it, I’m a Linux nerd, and I find myself needing to connect to my server sometimes when I’m not at my desktop, so I need a good SSH client. ConnectBot is far away the best one to be found on Android, and it has been around for as long as I have had an Android phone. It’s free, and has just about every feature you could want. It supports generating fresh SSH keys as well as importing keys from the device’s SD card and/or internal storage. It allows you to define custom actions for certain hardware keys, such as making a hardware camera button send the escape key. When connected, tapping the terminal allows you to send the control or escape key if your software keyboard doesn’t support that. You can even customize the size of terminal text, or open a local terminal on your own phone.

    It’s Linux all the way down.

    I personally use it mostly to connect to my server, and have it configured to default the first command to opening one of my 24/7 screen sessions that runs my Irssi client, and I can easily switch or create new windows and get things done very easily. The font isn’t the best looking, but it’s extremely easy to read, and does a good job of differentiating between the number one and lowercase l, but doesn’t have a slashed zero. But it still works very well at the tiny default size, which gives me a nice 80 x 34 terminal on my phone in portrait with the keyboard up, or 133 x 34 in landscape. On my tablet, the text is increased to a larger size, yet still gives me a wider terminal to work with too.

    Quite frankly, if you have an Android phone and use anything other than ConnectBot for your SSH client, I would have to question your judgment. For those of you who are using ConnectBot with Irssi, there’s even a modified version on the Market called Irssi ConnectBot with some extra gestures and features dedicated to making it even easier to use Irssi from your phone. Pure gold.

  • Hacker’s Keyboard - Free

    When using something like ConnectBot, the standard system keyboard is definitely lacking some essential keys, especially on devices like Samsung’s phones that don’t have a trackball or hardware arrow keys. I get by on my phone by using Smart Keyboard Pro, which lets me switch to a key set that includes arrow keys, but it doesn’t work nearly as well as the stock keyboard for day-to-day input. On my tablet however, a friend pointed me to the excellent Hacker’s Keyboard, which takes the great look and multitouch behavior of the stock Gingerbread keyboard, and crams an entire five row keyboard layout into the same space.

    Five rows of keys makes vim usable even on a phone.

    Some of the keys offered on the five row layout include control and alt modifier keys, the tab and escape keys, a fly out containing all twelve function keys, and the four arrow keys. By default, it hides the auto-complete bar, but still performs auto-complete behind the scenes in apps that support it, and also supports installing non-English dictionaries from the Market. Long-pressing on the number row keys, or punctuation keys, inserts the character that you would normally have to press shift for on a physical keyboard, but you can also use the shift key to do the same thing if you prefer.

    When given the physical space granted by a tablet, this keyboard really becomes fantastically useful. It even makes using screen and vim superbly easy and quick, limited only by my typing speed on a touchscreen. I’ve even been able to write C++ code without any issues; I don’t think I can give it any higher praise than that.

  • Plume - Free or $3 Ad-free

    Compared to the official Twitter client on Android, Plume is both more featureful and more friendly. It shows your time line, mentions and direct messages as separate columns; on a phone, you can swipe between them, while on a tablet it shows them all side-by-side. It cleans up the message stream too, using flyouts to add contextual actions and menus for things like replies, following a link, or viewing author information. It’s also intelligent enough to remember where you are in the time line; if you leave Plume, the next time you open it, it starts you where you left off.

    Tapping on a tweet pops up a contextual action menu.

  • Read It Later - Free or $3 Pro

    When I find articles that I don’t have time to read, or discussions that I would like to keep tabs on, I use the Read it Later bookmarklet to add it to my list, and I can either bring it up from my browser, or open the Read it Later app on my phone or tablet. It supports fetching items in the background, so even if I end up somewhere without a data connection, it already has my list cached on the device, and I can start reading instantly. It also adds an item to Android’s global sharing list, so that you can “share” pages from your browser, tap “Read it Later”, and it syncs over perfectly. It even looks fantastic: the UI is very elegant, article rendering is done very well in text-only mode, and you can switch to full-web mode at a single touch if you prefer. Sorry Marco, but this is what Instapaper always should have been.

    When viewing an article, you can choose between text-only and web formats.

  • Pulse - Free

    Pulse is a news app with style. You define the news sources you like and it displays a grid of articles, each represented by a large image pulled from the article itself. Swiping left and right allows you to see older articles from a news source, and tapping on articles brings up a mobile friendly version of the article, with the option of opening it in the browser if you prefer to. It looks gorgeous on screen, and on tablets, opening articles gives a split pane with the article grid on the left and the article text on the right, allowing you to very quickly read and switch between articles. Signing up for an account with Pulse even allows you to “star” articles to read later, and it syncs those articles between all of your Pulse devices. This lets me marks some interesting stories on my phone, and then pick them up from my tablet when I get home, although I still prefer to use Read it Later for that…

    Pulse makes it easy to switch between articles while viewing them.

  • DoggCatcher - $7

    I generally listen to about three or four podcasts a week, usually from the fantastic 5 by 5 network, and DoggCatcher is an excellent way to manage them. The interface is well designed, but the amount of automation it provides is the best part. Once you add your podcast feeds, it can automatically update the feeds on a regular basis, download new podcasts when available, keep podcasts you haven’t yet listened to, and remove podcasts that you have already finished. It can even notify you when it downloads a new episode, so you don’t have to keep track of when your shows air, it just grabs them and tells you when they’re ready. There’s not much else I can say, except that it’s extremely easy to use, and doesn’t get in the way of what you want to do, which is just listening to your podcasts when they arrive. Well worth the purchase price if you listen podcasts on a regular basis.

    Pulling on the tab shows you the description for the current episode.

  • Pandora - Free

    When I’m not listening to podcasts at work, I’m listening to Pandora. Quite simply the best streaming music service around, where I get to hear both my personal favorites of all genres and a mix of new titles and bands that I would never have listened to otherwise. Well worth the yearly subscription fee to get unlimited streaming, skips, and no commercials. This is probably the one app that really puts a drain on my battery after eight hours of listening, although it’s greatly mitigated by using wifi instead of the phone’s data connection.

    Simple and elegant.

  • Dropbox - Free

    Allows me to view documents and photos from my phone or tablet when I’m not at home, as well as upload new files or pictures on the fly. Existing or freshly uploaded files can then be “shared” to other apps on the device, such as a Twitter or email client, and media files can be streamed instantly from their servers. The Dropbox client also finally includes support for adding PIN protection, although you still need to be careful as files are cached locally on the SD card or internal storage. Does what it says on the tin with a very simple and friendly interface.

    Dropbox shows you what files you have downloaded locally.