Apps-android-commons: Update crash reporting framework

Created on 28 Aug 2017  Â·  25Comments  Â·  Source: commons-app/apps-android-commons

I notice that the app is using the ACRA crash reporter. In the commercial app experience I've had, we moved away from ACRA to Crashlytics several years ago. Google _bought_ Crashlytics back in January and are now suggesting that people use it in preference to Firebase crash reporting. Crashlytics is free.

Out of the box, in addition to crash reporting, Crashlytics offers

  • Key performance metric tracking (I setup "login", "took a photo", "share from gallery")
  • Release adoption graphs (how many people are using which versions)
  • Live count of active users
  • Session length in the app

Crash reports are collected in the web interface so everyone with an account (say, all the folk with commit access here) would be able to look at them. Want to try it out / evaluate it?

The code to switch is on a branch in my fork if you're curious.

privacy

All 25 comments

The link to Crashlytics brings up Fabric - was that intended?

If the link is correct, is Fabric/Crashlytics open source? I understand that it is free, but AFAIK according to our policies we cannot use non-open source dependencies?

according to our policies we cannot use non-open source dependencies?

These were mentioned a few times already. Are these documented anywhere?

Crashlytics started out a standalone crash reporting service that was bought by Twitter and integrated into the wider Fabric SDK in 2013. Last year it was bought by Google with the plan for Crashlytics to replace their existing Firebase crash reporting system.

So, no it's not open source but it is free and part of the overall portfolio of other Google tools. Do we plan on using Google SDKs for push notifications (https://firebase.google.com/products/cloud-messaging/)? This would likely fall into a similar category as that.

I wasn't aware of the open-source only rule. I'm happy to close this issue in that case.

(HockeyApp would be an alternative whose SDKs are open source on Github)

The HockeyApp server is not open source either.
We have no requirement that server-based code is 100% open source, but in accordance with https://wikimediafoundation.org/wiki/Privacy_policy we must be very careful about what we let third-party companies know about our users.

What are the "main" Wikipedia apps doing for crash reporting? If they built their own thing, maybe one can piggyback on them...

@nicolas-raoul Wasn't there an issue with the use of Google Maps SDKs for lat/long calculations when I was implementing the list of Nearby places? https://github.com/commons-app/apps-android-commons/issues/73#issuecomment-239756301 Perhaps we might need to discuss this and agree on a policy for which external libraries and SDKs we can and cannot use (and document it on the wiki, as @janpio suggests).

Also, what are the requirements for F-Droid inclusion? Is it just apps relying on Google Play Services that cannot be included?

@psh Yeah, I was wondering about that, too. We have been finding it difficult to implement push notifications for that reason.

That comment was about using a proprietary Android component directly on the phone. Google Play Services can be considered a library, as it provides methods for all sorts of random things. A Apache2 program can not call a proprietary library.

Calling a proprietary server via HTTP calls, on the other hand, is less of a problem, if privacy is respected.

If we choose to call a proprietary service, though, we will get a negative badge on F-Droid saying "promotes non-free network services". (free being used with the meaning of free software)

I started a wiki paragraph about this topic here: https://github.com/commons-app/apps-android-commons/wiki/Code-style#external-libraries

Thanks for the clarification @nicolas-raoul ! I would be on board with using Crashlytics in that case, assuming the privacy policy isn't contravened, and if the benefits exceed the downsides (the negative F-Droid badge). :)

That means telling Microsoft the IP address of our users.
I am not sure how WMF will see that :-/

On Tue, Sep 5, 2017 at 7:04 PM, Josephine Lim notifications@github.com
wrote:

Thanks for the clarification @nicolas-raoul
https://github.com/nicolas-raoul ! I would be on board with using
Crashlytics in that case. :)

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/commons-app/apps-android-commons/issues/858#issuecomment-327131170,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGFBisC6UDXT8K7QRfg50wmx6PgT6qtks5sfRykgaJpZM4PE3wW
.

If it contravenes the privacy policy, perhaps not a good idea then.

That's a grey area.
For some reason giving our users' IP addresses to Mapbox did not sound
problematic to them.
Better ask WMF case-by-case I think, with a clear explanation of the
benefits.

On Tue, Sep 5, 2017 at 8:25 PM, Josephine Lim notifications@github.com
wrote:

If it contravenes the privacy policy, perhaps not a good idea then.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/commons-app/apps-android-commons/issues/858#issuecomment-327147683,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGFBkdZl264dWGG5GZVC9HT6dW_J8ySks5sfS-agaJpZM4PE3wW
.

Looks like the main Wikipedia app uses HockeyApp for Android for crash reporting.

Haha, I also still had a tab open where I researched this a few minutes ago:
https://github.com/wikimedia/apps-android-wikipedia/search?utf8=%E2%9C%93&q=hockeyapp&type=

I guess we can use it then.

On Tue, Sep 5, 2017 at 10:47 PM, Jan Piotrowski notifications@github.com
wrote:

Haha, I also still had a tab open where I researched this a few minutes
ago:
https://github.com/wikimedia/apps-android-wikipedia/search?
utf8=%E2%9C%93&q=hockeyapp&type=

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/commons-app/apps-android-commons/issues/858#issuecomment-327180314,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGFBqRmHxDcMmt5CFL3qsXapf_AjgMYks5sfVD0gaJpZM4PE3wW
.

Yes, the Wikipedia app uses Hockey app for Crash reporting and @sharvaniharan from the Wikipedia Android team confirmed the same during the hackathon. It would be great if our app also starts using Hockeyapp. Its open source so unlike Fabric or Firebase it should be safe to use this.

Apart from automatic crash reporting, Hockeyapp has a few other features as well, which we check and use if needed. https://github.com/bitstadium/HockeySDK-Android

Also, Hockeyapp is different from Acra as:

  • it sends the crash reports automatically, rather than the user having to send an email
  • the crash reports are automatically grouped on a dashboard so it is easy to track and resolve issues.

As the device metadata, crash reports are automatically grouped, its easier to find patterns and understand the issue easily.

For eg.

HockeyApp

@misaochan @ashishkumar468 It would be nice to have your opinions on this. :)

Note that HockeyApp won't be available much longer and has be replaced by Visual Studio App Center: https://hockeyapp.net/

Thanks for pointing it out @janpio! I didn't know about App Center.

Looks like App center SDK is also open source. https://github.com/microsoft/appcenter-sdk-android

@dbrant @sharvaniharan Do you have any opinions on what platform we should use for crash reporting?

I think adding the hockey app sdk will be of great help.
As @maskaravivek mentioned

Also, Hockeyapp is different from Acra as:

it sends the crash reports automatically, rather than the user having to send an email
the crash reports are automatically grouped on a dashboard so it is easy to track and resolve issues.

Right now it is really painful to browse and fix the crashes from the google groups. Also, as the crashes are grouped together, it will also help us prioritise them based on the frequency.

Hmm, I guess it depends on whether the new App Center is allowed under policy - if it is, I'm good with doing the switch from ACRA considering its multiple benefits. @dbrant @sharvaniharan What does the Wikipedia app plan to do when Hockey is deprecated? Will you be switching to App Center?

Yes, presumably HockeyApp is being folded into AppCenter. I don't think it's going away, so we'll keep using it. It's been useful to us for being able to add extra metadata to the crashes, such as the user's language selection. If the new AppCenter experience proves to be inadequate in some way, then we'll happily go back to using the generic Play Store crash reporting, which is perfectly fine, too.

Yay, thanks for the feedback @dbrant ! Let's proceed with integrating HockeyApp/AppCenter in that case. :)

Re: Play Store crash reporting, it is a problem for us to rely on that as only myself and @nicolas-raoul have access to the WMF Play Store account at the moment. Adding more people would require Legal's consent (and we did not get it the last time we asked). However, if we use HockeyApp, we can just migrate all the core devs over since the NDA that they signed should suffice for that (I don't think Hockey gives us any additional information that ACRA isn't already, it just organizes it better).

I just realized that there might be a benefit of ACRA - it lets the user comment on what they are doing during the crash, and we can follow up with them because we have their email address from the email that they sent us. @ashishkumar468 how important do you think this would be for your bug-solving? Maybe we should keep Acra AND implement Hockey (as a replacement for the generic Play Store crash reporting)?

I am okay with having both :-), The comment from users is definitely valuable.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

madhurgupta10 picture madhurgupta10  Â·  3Comments

maskaravivek picture maskaravivek  Â·  3Comments

misaochan picture misaochan  Â·  4Comments

misaochan picture misaochan  Â·  4Comments

madhurgupta10 picture madhurgupta10  Â·  4Comments