I'd finished up my first android application, a simple power
management app, and was preparing to release it when I realized that I
didn't have a proper design or infrastructure for bug reporting.  One
of my pet peeves with the applications on the Android marketplace is
that there's inadequate visibility into the change logs from version
to version.  I get a notice to update app X, but I don't know if
that's fixing a bug that's been annoying me, adding/refreshing
advertising code, etc.  I dislike adding to chaos.

So, I started looking at my options.  Obviously, if I hosted my source
code somewhere then users could use the hoster's built-in bug tracking
facility to report bugs.  On the off chance that a mobile user took
the time to look up the project and submit a bug, I'd still be reliant
on the submitter to supply correct and relevant diagnostic
information.  I have my doubts that either would occur reliably.

I came across this thread [http://groups.google.com/group/android-
developers/browse_thread/thread/bae832439608ad2e/44d2e285da39aa57?
lnk=gst&q=exception+handler#44d2e285da39aa57] detailing a simple
strategy for collecting information under the covers and posting an
exception to a remote server.  I see some issues with this strategy as
well:

1.  It doesn't engage the user to acknowledge that a problem has
occurred (mea culpa).
2.  It doesn't elicit contextual information from the user.
3.  It doesn't help to provide the user visibility into the state of
issues for the application (bugs nor enhancements).
4.  It requires that my application request internet permission.  If I
wanted to allow the user to opt-in to send some personally
identifiable information (say to support notification), then I'd need
to request profile permissions.  I dislike jumbling together a lot of
disparate concerns and then asking for every permission under the
sun.  This trend will lead to users totally disregarding the
permissions altogether.

So, my thought was to implement a separate Bug Reporting application
that handles bug tracking.  Other programs could elect to register
with this app.  The BR app accepts crash information from a calling
application, prompts the user to provide summary, description, and
priority information, then posts the issue to the developer's bug
server (indicated during registration).  The BR application could be
further enhanced to retain these issue ids and allow the user to
browse the state of them (by browsing to a well defined link or via
some well-defined exchange with the bug server).  Similar
functionality could be implemented to allow viewing change logs,
release road maps, etc. for the app.  Obviously, the integration b/t
the BR app and the client apps would be implemented in such a way that
there would be a transparent no-op if the user decided to uninstall or
never install the BR app (so as to not perpetuate a bad Vista-like
user experience).

It looks like I can license JIRA for $10 and open up anonymous issue
creation.  So, far I've prototyped a simple BR activity and a JIRA
plugin to accept BR submissions.  Obviously, the http protocol could
be openly defined in such as way as to allow integration with any
extensible bug tracking system.

I'd like to hear opinions on this strategy.  Has it already been
done?  Is it too intrusive or techy for users?  Do you agree or
disagree that visibility is an issue?  Is there simply a better
solution of which I'm unaware?  Ideally, such a thing would be
embraced by Android itself (or the market).

regards,

-Jess

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to