Sunday, 25 December 2011

A few simple ways to manage "Low on space" on HTC Desire

HTC Desire is a great Android phone providing a rich user experience with it's Sense UI. It runs smooth and fast. Several cool features made me love this phone at first sight. That was until I get the "Low on space" notification. HTC was so stingy that it had included just 576 MB of ROM of which around 430 MB is consumed by Android, HTC Sense and HTC's bundled apps. This leaves just around 140 MB of space for the user to use for installing his downloaded apps. This is very meagre and soon every HTC Desire owner hits the dreaded "Low on space" notification. This handicaps the expandability of the phone which is the core strength of any Android phone. Nevertheless I still love my phone. I had come up with a few techniques to "manage" this problem as shown below.

  • Move to SD: The first and the most obvious choice is to move apps to SD card. It's not possible to move every app to SD. Also, the apps for which there is a widget available and you use it, should not be moved to SD card.
  • Contacts Storage: Contacts storage may increase from around 10Mb to 80Mb, due to facebook contacts. Hence don't add facebook contacts to phone contacts (People), though you can link them. 
  • Clear Cache: Cache of several applications (like Market) can increase over time. Clear cache by selecting the app in Settings->"Manage Applications"->"Downloaded" tab and clicking the "Clear Cache" button. The easier way to do is by using the app Android System Cleaner - Cache Clean tab.
  • Low storage Apps: The beauty of Android is, there are several apps offering the same functionality and hence the user has a lot of freedom to pick and choose. Hence you can always find an app for a particular functionality that uses lesser storage than the one that you currently have on your phone. Look out for such apps and replace your current one. (I replaced Aldiko with Moon-reader and Rock Player with Mobo player, on this principle)
  • Adobe Flash: Adobe Flash (updates) normally consumes around 10MB of space. Uninstall the updates, you will not loose much on the functionality.
  • Internet Cache: Keep your stock Internet App's cache size at a minimum. I keep it at 2 MB.  You can do this by launching the internet app, choose settings and then selecting cache size. This is internal cache and is different from app cache. App cache size is over and above this setting, which we cannot control. Any amount less than 2 MB may increase the app cache size to mammoth proportions.
  • App Data: Periodically, you can delete all the data in social networking apps like, facebook, linked in/droidin etc. To do this,go to Settings->"Manage Applications". Click on those apps and click "Clear Data". The only trouble is, when you launch them now you will be prompted to enter your userid and password again.
  • Uninstall Apps: Finally, if you are not using any of your apps, uninstall them.

Thursday, 8 December 2011

Android - ListView without ListActivity


ListView is easier to use and straight forward if we extend ListActivity. But what happens if the activity already extends some other activity. Unfortunately , we do not have an option to extend two activities.

No issues, we could still create our customized list without extending ListActivity.

In the below example 'selectprofile.xml', a list called profilelist is declared as below.








<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="@color/bgcolor">
    

<TextView 
 android:id="@+id/header"
 android:layout_width="fill_parent"
 android:layout_height="50dp"
 android:textColor="@color/headtxtcolor"
 android:text="Select Profile"
 android:textSize="20dp"
 android:textStyle="bold"
 android:gravity="center"
 android:layout_gravity="center_horizontal"
 android:background="@drawable/button_image"
/>


<ListView 
android:id="@+id/profilelist"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false"
android:layout_weight="1"
android:dividerHeight="1dp">
</ListView>


</LinearLayout>


In the code

 static final ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();

 public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.selectprofile);
       ...
       ...
       initializeList();
       getProfData();
       lv.setAdapter(adapter);
}

protected void initializeList(){
    
    
     lv = (ListView)findViewById(R.id.profilelist);
    
     adapter = new SimpleAdapter(this,list,
  R.layout.selectprofile_row,
   new String[] {"id","name","sex","year","date"},     
 new int[]{R.id.profid,R.id.name,R.id.sex,R.id.year,R.id.crdatevalue}
   );

  list.clear();    
 
}

Here 'selectprofile_row' defines the layout of the list row.
After populating the array list in getProfData() , set adapter to the list view. You can also add listener to the list item , if needed.

Android - Why not use alert dialog instead of spinner?

Spinner in android is more confusing to use. It is also hard to customize it for our needs. Based on the purpose, a simple alert dialog could be used as a replacement for spinner.
In my requirement, I had a button. When the button is clicked, the options should be listed. Based on the selected options, the value of the button is set.
Here is the code for the above requirement.

In the Xml, define the button layout.
<Button
android:id="@+id/annualButton1"
        android:layout_width="50dp"
        android:layout_height="40dp"
        android:layout_toRightOf="@id/totincome"
        android:layout_marginLeft ="10dp"
        android:layout_marginRight="5dp"
        android:layout_alignTop="@id/totincome"
        android:background="@android:drawable/btn_default"
        android:textSize="15dp"/>


In the code, alert dialog is called when the button is clicked.  Based on the option selected, button value is set.

annualButton1.setOnClickListener(new OnClickListener()
{
              public void onClick(View v)
              {
                    sButtonClicked = "button1";
                    showSpinner();
                                   
                }
        });
 
 
protected void showSpinner()
    {
            AlertDialog.Builder b = new Builder(this);
            String[] options = {sItem1,sItem2};
                 
            b.setTitle("Select an option" );
                  b.setSingleChoiceItems(options, -1,new DialogInterface.OnClickListener(){
                        public void onClick(DialogInterface dialog, int which)
                        {
 
                     dialog.dismiss();
                     switch(which){
                     case 0:
                     {
                           annualButton.setText("p.a");;
                           sAnnual = sItem1;
                         break;
                     }
                     case 1:
                     {
                           annualButton.setText("p.m");
                           sAnnual = sItem2;
                         break;
                     }
                                 
                 }}
 
                        });
                  b.setPositiveButton("CANCEL", new DialogInterface.OnClickListener() {
                 public void onClick(DialogInterface dialog, int id) {
                   
                      dialog.dismiss();
                
                      }
             });
                 
                 
                  b.show();}
          
It is much simpler than using a spinner. Isn’t it?

Android - Generic declaration of colours


It is very important that we declare background colours and layouts generically. I made this mistake of hardcoding the colours in the individual xml files. It became really hectic every time I wanted to try different colours. Then finally, I decided to declare them generically. Here is how you do it.

Declare mycustomcolors.xml in the values folder. Define all the colour codes here.


<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="bgcolor">#F8F8F8</color>
<color name="headtxtcolor">#e69b28</color>
<color name="othertxtcolor">#000000</color>
<color name="headerEnd">#999999</color>
<color name="headerStart">#000000</color>
<color name="profileEnd">#E69B28</color>
<color name="profileStart">#FFAE33</color>
<color name="sectionEnd">#FFFFFF</color>
<color name="sectionStart">#CCCCCC</color>
</resources>

   
The above colour codes can be used in shapes and other layouts. This is for a gradient colour button profile_band.xml in drawable-hdpi. 

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">

<gradient
    android:startColor="@color/profileStart"
    android:endColor="@color/profileEnd"    
    android:angle="90" /> 
    
</shape>
Text colours used in an xml..

 <TextView
        android:id="@+id/profName"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/header"
        android:paddingLeft="10dp"
        android:text="profile name"
        android:textColor="@color/othertxtcolor"
        android:textSize="14dp"
        android:layout_gravity="center_vertical"
       />


As mobile apps should have good screen appearance , it is very important that you have the flexibility to try various options.

Saturday, 22 October 2011

Financial Planning for your child’s future

Your child’s future is more important than yours. Is that an overstatement?

Traditionally, at least in India, savings is always like remitting money into a bank deposit account, on a regular basis, which earns interest, e.g., recurring deposit. A slightly neo-financial model is to start an insurance policy or a PPF account. As the insurance industry got reformed a few years back, ULIPs became more prominent and the more favoured vehicle for savings by the agents/brokers. But is this model working? Not that much, as the yield is very low, due to which many parents take various unregulated modes of savings, e.g., unregulated chit funds. These unregulated savings vehicles cannot be trusted and there is a huge risk in losing the capital.

As we grow more matured and much informed than our parents in this information age, we need to go for a well designed financial strategy to save for our child’s future. Savings/Investing for the child’s future is a bit different from other savings goals as there is a need to pull out money at designated points of time to fund the child’s needs, say at the age of 13/14, we may need more money to put them in the right training courses to enable them to land in the right academic institution. At 16/17, we may need another packet for their university degree. Again at their age of 20/21 we may need yet another packet for their higher education/training/job. This goes on till they get settled in a job and start a family. The various age periods and approximate costs parents may incur are in the below table.


Age



Purpose



Amount
(approx.)



3-4



Starting Primary
School



Rs. 1 to 2 lakhs



9-10



Starting High School



Rs. 2 to 3 lakhs
(optional)



13-14



Training courses to
enter their university of their choice



Rs. 1 to 2 lakhs



16-17



Join University



Rs. 3 to 5 lakhs



21-22



Joining a job



Rs. 1 to 2 lakhs



21-22



Starting a company



Anywhere between 10 to
50 lakhs



25-30



Marriage



As per your/your kid’s
wish




The amounts in the above table may look a bit high. I had inflated them to account to some extent the inflation by the time your child reaches that age. Also, the last but one in the table on "Starting a company", may not be the case for every parent. But it is better to build a kitty, if possible. :-)

To satisfy each of those milestones in those stipulated time frames, we need to take a pragmatic approach – a dynamic portfolio that can churn out the required sum of money at the required time. But that needs an actively managed portfolio, for which most of the parents neither have the time nor the patience. Hence the best option will be to run separate portfolios for each of those milestones.

As with any investment portfolio, child savings too should be a combination of equity and debt instruments. For milestones that are closer to the current, as market swings may push the portfolio to any extreme, Debt instruments should occupy a major portion – say 80%-90%. The ones that are farther by years, equity exposure should be as high as possible as markets tend to provide far greater returns than debt instruments in the long run. Now let’s re-visit the milestones and their favourable portfolio mix.


Age



Purpose



Amount
(approx.)



Equity
: Debt



3-4



Starting Primary
School



Rs. 1 to 2 lakhs



0% : 100%



9-10



Starting High School



Rs. 2 to 3 lakhs
(optional)



30% : 70%



13-14



Training courses to
enter their university of their choice



Rs. 1 to 2 lakhs



50% : 50%



16-17



Join University



Rs. 3 to 5 lakhs



70% : 30%



21-22



Joining a job



Rs. 1 to 2 lakhs



80% : 20%



21-22



Starting a company



Anywhere between 10 to
50 lakhs



90% : 10%



25-30



Marriage



Anywhere between 5 to
10 lakhs



90%:10%



Favourable equity instruments are stocks, mutual funds and ETFs. In case of debt instruments, NSC and PPF provide tax savings, and are suitable for long term goals. If you are looking for 2-3 years then Recurring deposit is a better deal.

Also, the equity to debt ratios have to be reviewed at least on a yearly basis and adjusted based on the years left to complete. For e.g., the portfolio related to join university has an equity to debt ratio of 70%:30%. However if that milestone will be reached in the next 3 years, one has to keep an eye on the market and try to sell off some stocks/units at the right market situation to reduce the equity exposure and move that money into debt instruments. When the milestone is reached, almost all the money has to be in debt instruments.

Now to the question that would be lingering in your mind by now. Won’t an ULIP or a Child insurance plan simplify all these? My advice would be – “Beware of such plans and avoid them as much as possible”. Why?
  • One, most of these insurance plans do not return money at the right time, as in the above table.
  • Two, the yield will be less. Endowment child savings policies normally return a meager 3%-4% yield. ULIPs eat most of your investment in terms of charges and again the returns would be much lesser when compared to the above method.
If you are worried about your child’s future, in case of any adverse situation, anyway at those situations, your portfolios will be returned to your nominee and a cheap insurance term plan will be able to provide the cover required to your family and kids. That's the right way to do that. Never mix insurance with investment.

Sunday, 16 October 2011

Add a Menu bar to your blog

Some of my friends have been asking me how to add a menu bar to a blog, like the one below.


Unfortunately, blogger does not provide you any template or a straight forward way to do this. In this tutorial, I will show you how this can be accomplished.

The trick is to add the Pages gadget to your blog and position it under the header. Of course, you need to have pages added to your blog, so that you get the menu items.

I’ll explain here, step-by-step, how it is done.

Step 1: Categorize your posts
A menu bar provides an easy way, for the reader to find the right information he needs from your blog. The key to search any information is to have them categorized into their separate buckets.

Step 2: Create pages
Create a blog page (not post) for each of the bucket you had formed, in the previous step. How do we do it? Go to Design page of your blog. Under ‘Posting’ tab, click ‘Edit Pages’ and then ‘New Page’ button as given in the screenshot below.


For e.g., you want to create a page, for category General, then that can be created as below.


Point 1 in the image indicates the title to match the category which will become the menu item. Point 2 is the title of the blog post that you had published before, which falls under the General category. Below that is a snippet from that blog post ending with a “more >>>” text. Item 2 and 3 should be defined as hyper links to your blog post URL. Your blog post URL can be copied to the clipboard by right clicking the title of any blog post and copying the link address. You can do the same for different posts under that category, one below the other, separated by an horizontal line or any such physical separation, that I leave it to your imagination.

Step 3: Create menu bar
Go to Design page of your blog.


As you can see, there is a Pages section under the header highlighted in red. This is done by clicking on the Add a Gadget link, right below that. On doing this, you will be shown an add gadget dialog as below.


Here the Pages gadget is shown as “Already added”. For you, if you have not added it, there will be a + sign. Click on that and the gadget will appear on your template. By default, this will be added below the “Add a gadget”. Drag and drop this Pages gadget, below the header. This is now your menu bar showing the pages that you had added to your blog – each page as a tab. When you click edit for this gadget (Edit link is shown within the gadget in Design page), the following dialog is shown.


This shows how my menu bar is configured. You can customize this for yours.
You can create as many pages as you want for each of the categories you have in your blog. Each of these pages will get added to the pages gadget automatically and hence will appear in the menu bar. On clicking the menu bar link the viewer will be taken to your page that now contains a title, short text and more hyper text link for your post. Voilà! You have a menu bar for your blog!

Thursday, 13 October 2011

Scottish highlands --a feast for nature lovers


Think of Scottish highlands! Picturesque mountain ranges, placid lakes and breathtaking valleys appear in front of your eyes instantly. The north and west of Scotland which is culturally distinguishable from the lowlands is referred to as the Scottish highlands. The highlands are mainly renowned for their serene and scenic beauty.

The drive from Edinburgh to the highlands is a feast for nature lovers, as Mother Nature shows her exciting colors all along the way. The entire stretch is covered by scenic mountain ranges and lakes. Narrow waterfalls amidst these mountains resemble a lightning that strikes a rain cloud.

Panchaboothangal
There are a number of lakes all through the way and 'Loch Lomond' is definitely the one to be mentioned. It is the largest fresh water loch ('loch' means lake) in Britain by area. The view of the lake with the surrounding majestic mountains is simply awesome. The blending of the clear lake water with the sky, mountains, cool breeze and mild sunshine reminds us of 'panchaboothangal', the nature elements land, water, sky, air and fire at one place.

Loch Ness
'Loch Ness' in Inverness is one of the most famous lakes and has the largest volume of fresh water in the whole of Britain. The never ending water will make anyone wonder if it is a lake or sea. Tourists queue up for the boat ride in "Loch Ness' to enjoy the scenery and to take a glimpse of the 'Loch Ness monster'.'Loch Ness monster’, popularly known as "Nessie monster' looks like a dinosaur and seemed to have been spotted by a person almost 1500 years ago. Since then many have reported seeing it but it has never been proved to be real.
As the boat dashes against the water current, we get drenched by the splashing water. You can also take a glimpse of the 'Urquhart castle' standing on the shore of Loch Ness. It is an old ruined castle of 13th century.

Apart from its scenic beauty, a Scottish highland also houses many castles. Inverary castle in Argyll is one among them. It resembles a fairy castle from outside and the interior is a miniature of the Windsor castle in London with majestic court rooms and kitchen. Unless you are a castle lover, this does not have much to speak for itself.

Eilean Donan Castle
Eilean Donan Castle in Kyle of Lochalsh (a village in Isle of Skye) is a must visit. Situated on an island where three great sea lochs meet, it is surrounded by majestic mountains and adds beauty to the beautiful island. The famous song 'Kandu kondaen' starring Aishwarya Roy was shot here. The breathtaking view from the castle can make everyone dance in glee, leave alone Aishwarya.

Highlands has not just caught the attention of Kollywood directors but also Hollywood directors. The famous 'Hogwarts express' in Harry Porter movie goes on the Glenfinnan bridge in Glenfinnan. To capture a good view of the bridge, you have to climb to the top of the Glenfinnan monument. Beware of climbing this, as the path is too narrow to get through for a fat person.

There is yet another fame to the Highlands. 'Ben Nevis', the largest peak in the UK is located here. A few minutes’ drive from Fort William, you can reach this peak's base. A cable car takes you to the top of Aonach Mor, a mountain adjacent to Ben Nevis.
Needless to mention the breathtaking view from the top, this spot allures many tourists to Scotland. This place gets more attention during winter for skiing and skateboarding in the snow and of course to see the snowy mountains.

A visit to the Scottish highlands is a good getaway from the hustle and bustle of city life.

Our travel

We (2 families) travelled from London to Edinburgh by coach on a Friday evening. From Edinburgh, we rented 2 cars for 3 families with another family joining us in Edinburgh. We drove from Edinburgh to Fort William on Saturday, covering 'Loch Lomond’, 'Inverary castle' and of course the natural scenery. We stayed in Fort William and went to 'Ben Nevis' the next day morning. The rest of the day, we visited 'Glenfinnan' and 'Eilean Donan' Castle and checked in at the hotel in Isle of Skye late evening. Though there is a road way to Isle of Skye, we took the ferry from Mallaig to reach the island to give a break to our drivers!
On Monday, we drove from Isle of skye to Loch Ness. After enjoying the boat ride in the lake, we drove straight to Edinburgh airport to catch our flight to London.

There are also coach trips from Edinburgh to the highlands. But if you can drive, I would suggest rent a car. We could not resist stopping at certain places on the way, which would not be possible in a coach. To mention a few; there was a gushing waterfall in between the mountain range, where we stopped to dip our feet.
When the sun came out after rain, a bright rainbow just popped up in the sky out of nowhere. We could capture it not only in our camera but also lock it behind our eyelids.

Weather
We went in late September. So the weather was mildly cold and just right. But Ben Nevis and Isle of Skye were colder. So, it is better to go with appropriate winter clothing. It also rains most of the time.

Accomodation
The first day, we stayed in a hotel called 'Spean Bridge' in Fort William. The hotel did not have good facilities and it was not worth the money. As we booked at the last moment, we had to go with it. I would not recommend this to anyone. 'Kings Arms' hotel in 'Isle of Skye, where we stayed the next day, was good with the sea view from window. It was close to the Skye Bridge.

Food
There are good Indian restaurants in cities like Fort William, Inverness and Isle of Skye. But on the way, there are none. Better to go with loads of snacks and drinks. There is a restaurant even in Aonach Mor peak. Nothing beats a hot drink in shivering cold!

Sunday, 2 October 2011

Useful Android apps

After using Android for more than a year, thought I could share my list of android apps that would be useful to other android users. This assumes significance because of the fact that, there are too many apps in the android market offering the same functionality with a few bits of less or more features. It becomes really difficult to choose the right app for the right job.

I have divided this as Must-Haves, Good-to-have, Games and Specific-use apps. Must-Haves are required for the basic essential activities that you would want your Android smart phone to do. Specific-use apps are for a specific purpose based on the context.


Must-Haves
  1. Astro File Manager/ES File Manager
    Astro is a File Explorer. As android does not come with a default file explorer, an app of this class is a must. Exception is Samsung phones that come with the "My Files" app, which is a basic file explorer. I chose Astro, as it is light on system resources including storage, never crashed, offers a smooth experience and does what it says. It also offers various tools, like sending a file via e-mail/bluetooth, app backup (I like this one as I can get the apk (android exe cum installer) for all the apps) etc. This was before the latest update to this app.

    Now, I have switched to ES File Manager as Astro's latest update was bulky and slow. ES File Manager has a better interface and a lot more options/features.
     
  2. AndroZip
    Simple, basic Zip (compression) utility. This is needed to unzip your files that you may receive via e-mail.
     
  3. ColorNote
    What the use of a smartphone if you cannot take notes? But oddly android does not offer any stock notes taking app. ColorNote is a note taking app, in which notes are essentially sticky notes. You can stick these notes to your home screen using its widget, which I found to be very useful. You can categorize notes using colors, justifying its name.
     
  4. Astrid Tasks
    Talking about notes, to-do lists come to our mind. Astrid Tasks helps to take control of your myriad tasks from that bill payment to meet a friend at Starbucks. Its an easy to use personal Task management app with features even to set recurrence to daily, monthly, quarterly or even fortnightly as the recurrence pattern is set as every "n" days/weeks/months/years, where n can be any whole number.
     
  5. Droidin
    Connectivity and social networks are the mantra of this age. Though most of the android phones come with a stock facebook app, that is not true with LinkedIn. Droidin was the only option, as only recently LinkedIn introduced its own android app after a lot of hue and cry from the android crowd. However the native LinkedIn app did not live up to its expectations as it is much resource hungry and slow compared to Droidin. So I am sticking with Droidin.
     
  6. Moon+ Reader
    Again android fails to provide a stock eBook Reader. Thanks to the ever growing android market there are numerous choices. I chose Moon+ Reader as it provides the three important features, I needed - a friendly bookshelf, night mode and animated page scroll. Though I would like to have Text-to-Speech so that my books could be read out aloud, it is only available in the paid version and that too is yet to mature. Aldiko is one other reader which is as good as this (sometime even better). However I chose this as it needs lesser storage than Aldiko.
     
  7. Swype
    Swype is an android keyboard. As the name implies you don't type but swipe to create a text. It takes a little bit of effort to switch to swype from a normal qwerty keyboard. Once you are used to it, there is no looking back. Its so much fun to write any big document, even with a small screen and small keys. A MUST have.
     
  8. Llama
    Llama is a location aware app that makes your smart android phone even more smarter. It understands where you are and applies settings or triggers events that you had asked it to perform. For example, you want your phone to go to silent mode as you enter your office or you want your Wi-Fi to be switched on when you reach your home, Llama can do that. Llama does this without using your GPS and hence does not suck lot of juice from your battery. You just have to train this app to understand your location. That's it. A very smart app.
     
  9. 3G Watchdog
    Not everyone has an unlimited 3G data plan. 3G Watchdog helps to keep a watch on your data usage and prevents you from breaching your data plan limits. It offers an excellent widget (which means the app should not be moved to SD), that shows the usage that on tapping provides you a summary of usage and how much will be consumed by end of your billing period.
     
  10. K-9 Mail
    The default mail client has two important issues which made me to use K-9 Mail. One, it was never able to get Hotmail account configured. Two, on exchange 2003, it was not able to show me mail in HTML format. K-9 Mail is able to address both these concerns and it is free. However it has its own disadvantages. At times, sync-up is not real time. And does not mark your e-mails as "read" on the server, when you have in fact read that within K-9. Finally when your exchange server password expires, it just fails to sync up and does not tell you the reason. Yet, it satisfies its purpose most of the times. Along with this, I use Mail Droid for exchange server (my office e-mail) as it not only helps me view HTML e-mail but also compose an e-mail in rich text. Again like K-9, its a bit slow in sync-up, but yet serves the purpose.
     
  11. MoboPlayer
    The stock android video player can only play limited number of formats. This pushed me to search for players that can play almost any kind of video format. There were several players in market that can do it. MoboPlayer is one. But its USP is, its less on resources, including storage supports gesture commands to adjust volume, brightness etc.
     
  12. System Panel Lite
    System Panel Lite is a system monitor or task manager for Android. The functionality is very similar to Windows Task manager. This helps identify system bottlenecks and resource hoggers.
      
  13. SwiFTP
    Copying files across your PC and Smartphone becomes more easy and natural with this app, that too wireless. This turns your Android phone into an FTP server, whose IP address is displayed to you. From the PC a network drive can be mapped to this IP address and used like a normal drive. No wires and most importantly your SD card does not go offline as it would with an USB connection.
     
  14. Advanced English & Thesaurus
    An excellent English dictionary which and uses less resources, including storage. USP of this app is, you can download the dictionary database on to your SD card and hence does not need an internet connection to function, meaning offline dictionary.
       
  15. Text Edit
    Sometimes you need a text editor to just type anything. A notepad would be one of the most used applications in a PC. I just wonder why Android missed such an essential piece. Out of the crazy number of text editors available in the market, this one is the most reliable text editor with all the essential features built-in, like Search & Replace and is also low on storage.
Good to Have
  1. Unified Remote
    Another app that makes your phone much smarter. Unified remote turns your phone into a remote control for your laptop. There are others in the market, but Unified Remote provides customized remote for most of the PC applications like Windows Media Player, VLC Player etc., the basic one emulates the touch pad for your laptop. This app requires a server to be installed on your PC and should have Wi-Fi modem.
     
  2. handyCalc
    This is a replacement for the stock Calculator app with a lot of added features.
      
  3. Android System Cleaner
    Depending upon the Android phone you use, the importance of this app varies from "Good to Have" to "Must Have". On my phone, where the internal storage is dearer, this is a Must-Have as it helps me clean up the cache and history built up by various apps, releasing me the valuable storage with a click of a button.
     
  4. ShopSavvy
    As the name implies this is an essential app for all those shop savvy mortals like me. Scan a bar code of any branded product with this app and it gives you the price of this across local and online stores and helps in your buying decision. However I hope this works very well in US followed by UK. Other areas I am not that sure.
     
  5. handyConverter
    This app is an unit converter helps to convert any metric from one unit to other - convert miles to kilometers or Celsius to Fahrenheit
     
  6. Speedtest
    Whenever I see my download gets delayed or my web page takes ages to load I use this app to check the speed. Very reliable.
  7. My Data Manager
    Though 3G watchdog can keep an eye on your mobile data usage as per your plan, it cannot tell you which apps eat much of that data consumed. My Data Manager gives exactly that, data usage by app.
     
Games
I do not play much games. Found the small list below entertaining.
  1. Air Attack
    An excellent war game considering the graphics and options. Despite rich HD graphics the game works with the storage required is very less. My favorite.
  2. Glow Hockey
    Simple game. Addictive. Very good time pass. 
  3. Angry Birds
    No comments. Every mobile or tablet platform has this.
  4. Paper Toss
    Another Simple game. Addictive. Very good time pass. 
  5. Traffic Jam
    Yet another simple game. Addictive. Very good time pass. 
  6. Hungry Shark
    You are the shark. Catch and eat as much fish as possible. Avoid poisonous jellies or spiny fishes. Relish Bikini girls and savor daring boys.
  7. Raging Thunder 2 Lite
    No game collection can be complete without a car game. This one is excellent.
Specific use apps
The following are some apps that are must haves based on specific instances.
  1. London Tube Status
    Every London commuter needs this. With its widget the tube status updates come to your home screen. On selecting a line, you can even pick up a station and see the time by which the next train will arrive - same as the display on an underground station platform.
  2. Pubtran
    Another London commuter need. Its a Tfl Journey Planner.
  3. OysterMate
    Yet another London commuter need. Helps to see your Oyster Pay As you Go balance.
  4. Got To Do
    A GTD app. If you are a follower of GTD (Get Things Done) philosophy of David Allen, this is a must. The USP of this app is, it is free and supports reminders. I am not able to imagine any app of this sort without a built-in reminder system. However most of them are without such a feature. But unfortunately, this app is no more available in the market. An alternate option is Shuffle. For reminders in Shuffle, one has to move the task to the calendar where a reminder can be set.
  5. Tonido
    Tonido is an Android app for the Tonido personal cloud solution through which one can access their  home PC files anywhere anytime, if Tonido server is running on their PC.
  6. ITA - Income Tax Act (India)
    Ready reference to Indian Income tax act
  7. Yahoo! Messenger
    Name implies. With the video add-in you can do face calling. :-)
That's it. 

Hope this article helped you to find the right app you are looking for.  
Please share your android apps that you feel the best. I'll keep updating this list whenever I find a better app for a solution or an app that offers any essential functionality. One last tip - avoid any Task Killers as they do much bad than good.