Story of my app

It was one weekend a few years back. I was on vacation and I get a call from my boss asking me to forward an email with attachment — which he had sent. With a mobile in hand, and a flaky internet connection, I could not send it. Not that I would have sent it, even if the internet connection was good — because I had archived the emails and created a pst file which was stored on my laptop- with a backup on my external hard disk.

This incident gave birth to an idea — which resulted in an app called ViewIT on Android which could read pst files. I wanted to create an app which could read one or many pst files, enable users to search for emails or attachments and forward emails using their favourite email client.

After a few weeks of coding, I was able to release the app. The initial adoption was slow and the feedback was not very positive because the performance was poor. Search was taking a lot of time and large pst files used to crash the application due to lack of memory.

To improve performance, especially on mobile devices which have constraints on memory and processing power, I started indexing emails within pst files. Indexing was made mandatory as it was the only way performance could be improved. Once this was enforced, the performance improved exponentially. Also, indexing of emails enabled faster retrieval of emails and search across pst files. Providing statistics on number of emails indexed became easy. Since Lucene was used for indexing, all the search criteria which Lucene provided were applicable for ViewIT — thus improving the search functionality’s usability drastically.

There are still enhancements I am thinking of, which needs to be implemented. I would appreciate if I get feedback on the good and the bad of what I’ve done with ViewIT. Any suggestions for performance improvements, or new ideas for implementation are welcome.

If you want to check out how ViewIT works, you can try a free version which restricts users to index only one pst file. You can download it here.