Android: Postmortem Reports via email

How can I get postmortem exception information from my deployed app without requiring net access?

One of the major breakthroughs I have had with my Android development has been the addition of a postmortem exception reporter into my apps. I started out my development on the emulator only as I did not have an Android phone of my own yet. I ran into the dilemma of having code that worked fine on the emulator, but crashed on some phones out in the field. Comments were pouring into my app with 1 star ratings and “FC on open”. I searched far and wide for a solution to use with postmortem crash analysis, but each one I researched required net access on the phone in order to report back. I was not going to force the requirement onto my fans because I don’t trust apps that should not need net access but do, so why should I force my fans to trust me? Continue reading

What is a “gopher” app?

Aside from the usual reference to a certain networking protocol, I made up the term to describe a certain kind of application.  While the implied phrase of “go for …” has some meaning for these small apps, it also shares other characteristics of the little animal.  A gopher app has little, if any, user interface.  Most of it’s work is done underground, hidden from view, and only occasionally pops its little head up now and then when it requires some user interaction.  These kinds of apps do not exist as a Widget on your phone’s Home screen, do not reside in the App Launcher area like a traditional app, are small and prefer to stay out of sight (or underground) until you need them for their specific task.  They are not libraries that sit like a book on a shelf waiting for someone to come use them, nor are they like a nasty virus who try to stay completely out of sight for fear of cleansing.  They can be managed like a normal app so that if you find it annoying, you can hunt it down and kill it (by uninstalling the thing), but for the most part, they stay hidden and only pop up when you need them.

The primary example of what I am talking about is my AttachSave app. The whole design is to extend the functionality of another app and not really do much on it’s own.