Adding and using ACRA in Husky

on captainepoch's log

This January 15th, 2022 I added ACRA to Husky. This library will help to improve the stability of the application by making you able to report random crashes that could happen using the application. This feature is opt-in.

Since Husky 1.1.0-beta1 now, when the application crashes randomly, a push notification is displayed, and the user has the option to either report the crash or discard the notification. In the future, instead of a notification, it will display a dialog, but for now the push is enough.

If you look at the code changed in that build you will see that I put a mailist email to send those crash reports. That made me think that, well, everyone can subscribe to a mailist in Sourcehut.

In Husky 1.1.0-beta2 I changed the email from that list to a more private one. Amolith1 provided me an alias to my current email, so every crash report will be sent directly to me. As I say in the section ACRA support, no personal information will be made public.

The code which specifies what it’s shared in the email is at TuskyApplication.kt#132-138:

reportContent = listOf(
	ANDROID_VERSION,
	APP_VERSION_NAME,
	APP_VERSION_CODE,
	BUILD_CONFIG,
	STACK_TRACE
).toTypedArray()

This will be only used for debugging purposes. I do not collect any personal data from anyone, nor do I intend to start doing it so.

Reviewing my stand on ethics with analytics

Adding this made me think about the blog post I wrote titled On ethics using analytics. Reporting something is, somehow, kind of a track system because you have data to analyze and choose how to act.

As you can see in the blog post, I pointed out things to keep in mind, important stuff to preserve the privacy of the users using your software and to clean old, useless data.

Adding ACRA into Husky provides a way for me to know about the crashes (if ACRA is enabled and the users report them). Also, let’s go over the checklist:

  • ACRA is an opt-in feature, it has to be enabled in the Preferences view.
  • ACRA generates random UUIDs in the reports that I do not keep (it has no meaning to the important stuff of the crash).
  • I use a FOSS backend to provide this functionality inside the application.
  • I specify how I will use the data in the Contributing guide, section ACRA support.
  • Old emails will be deleted, and crashes already fixed will result in the deletion of emails . Again, I do not collect any personal information about anybody.
  • The code is FOSS and you can see it at git.sr.ht/~captainepoch/husky.

I intend to keep Husky away from analytics (meaning Firebase or platforms like that) because I do not collect data about the use of the application. My intention with ACRA is to get crashes that could happen on a variety of devices that do not happen to me (or any contributor) while working on the application.


  1. He provides NixNet Services and was kind enough to let me use email service. Thank you very much! ↩︎