Monthly Archives: February 2012

Choose your favorite application

I’ve been an enthusiast of alternative software solutions since the beginning of PC era, where Microsoft software, although dominating, wasn’t the only right path. Since mobile phones became smartphones, I also expected them to be modular and configurable in areas of user preference, so I welcome the possibility of exchanging the system default application by the one offered by 3rd parties. This is not common feature among all the smartphone OS-es but highly desirable where user has some non-standard requirements.

I for instance like browsing internet using Opera Mobile which gives me unified experience among many platforms, synchronizes links, saves the mobile data usage. The same situation happens with Swype keyboard, which supports my native Polish language with error correction. There are more good examples but I get puzzled with the complexity of this approach sometimes, and even as an Android developer, I cannot understand options that the system gives to me.

Case I: Web Browsing

I’ve installed Opera and Firefox browsers on my Android phone. The reason for installing the first one was explained above. The latter was convenient because of the Firefox Sync feature which lets me access my PC browser data transparently. I still might try another one as none of the browsers above allow me to preload a few pages in the background, while browsing twitter or news from my email. I often try to achieve it, but usually the system closes browser in the background and I need to load pages again, what is very frustrating if I’m in a place with low network coverage.

Back to the point. I click the link in my Slashdot newsletter and the well known pop-up appears.

Choose your favorite browser

I want to use the Android browser by default, so I mark the “Use by default” box and choose the first browser. The browser window opens and exactly the same dialog pops up for the second time. Strange right? This might look like an error to an average user but as a developer I know there are various “Intents” that open the browser (called “action” in the window above). I repeat my choice and the web page loads in the browser. The same will happen later when opening some Youtube link, Doodle, Twitter, etc. At some point it might become annoying, because if you have installed some application to handle certain content better than the browser, then why all those questions?

In the PC world some similar mechanism exists although it is more file-centered than action centered. When you are installing a new Video or Image application, you can choose during the installation process if it should be associated with the certain file types (unless it’s a bad application that forces you to use it with some files). This mechanism was field-tested over many years and proved to be very successful. Since Android OS knows what a certain application can do while installing it, maybe it would be a good idea to ask the user at this point. This would not require any changes in already published applications. It could be much better than showing dialogs which are often meaningless if the “action” context is not clear.

Said that, I’d also appreciate to be able to choose the application again in some situations (like browsing with Opera when I only have access to 2G network). This is not possible unless developers explicitly create the chooser for the action (using Intent.createChooser).

Case II: Contacts

I’ve installed some additional programs for handling my contacts data. One of them Everdroid (SyncML service, known to me previously as Mobical) for synchronising my Contacts and Calendar data (that worked great Nokia many phones for at least 8 years), and another Go Contacts replacement for my contacts book so I could merge duplicates easily. Here’s what happened when I wanted to add a new contact to my address book.

  1. System prompted me to choose a program which will manage this contact. Not sure what to do, I’ve chosen the the default app. Then the system asks me which email account do I want to add it to (3 email accounts present on my phone). I was confused, decided to go back.

    Choose your account to add a contact

  2. I’ve tried the same with Contacts Go and it shows me 3 accounts from above plus a “Phone” as a last option, just like if I was suffering from the lack of choice.

  3. I’ve chosen Everdroid now and it asks me again if I want to add it as an Everdroid contact or Google contact.

That seemed pretty complex already with the default app so I’ve decided to uninstall the additional programs to avoid confusion. Unfortunately all the contacts downloaded from SyncML server with Everdroid got deleted with it. Surprised?

There are plenty of services that maintain their own lists of contacts as Skype, Facebook. Twitter, etc… On some phones they might even be listed together with other contacts in a unified form and be deleted when you get rid of a certain account or application. But I’m more keen to believe this is fair in case of Facebook. Twitter, Skype, as they also provide some service or content, which becomes the platform for communication. If I create a contact in my phone book (or maybe better “contacts book”), I want it to persist there, unless I decide to delete it one day, not the application who created it.

As a result I stopped using additional contact management tools, and finally agreed to use my Gmail area for managing all the permanent contacts. Apart from Android, this also works flawlessly on iPhone and even on older Nokia phones (using MS Exchange server settings for Gmail).

In areas where data is sensitive, it’s sometimes better to trust the provider of your device/OS and try to dig in the possible options of default applications before switching to 3rd party solutions. Replacement applications might be very rewarding if you choose them wisely, but if you’re less lucky, you might just add another unnecessary layer of problems and complications.