1

I am checking my options for getting user analytics and metrics for Xamarin.Forms application.

Hockeyapp, Application insight, Visual Studio App Center etc are top providers but I am skeptical to use them. I cant find any information how do they effect performance of android/ios application. They dont expose any asynchronous method. So I cant run them separately on another thread.

what is even happening if user doesnt have internet connection? Does it try to send analytic until it gets timeout?

UPDATE:

I was using xamarin insight and recently I removed it and I recognized that Xamarin insight is increasing start up time between 2-3 secs to initialize it. my app size is reduced also 3-5 mb. I dont recommend using Xamarin insight even though it is deprecated now.

Dan Rigby
  • 17,133
  • 6
  • 43
  • 60
Emil
  • 6,411
  • 7
  • 62
  • 112
  • I have only ever used HockeyApp myself, but in general you should be able to run all of them separately on another thread to some extent by running at least the manual methods within `Task.Run()` and not awaiting it. I do not know if they are thread safe but you could also create a class and put a lock around an instance of it to make it thread safe. – hvaughan3 Jun 09 '17 at 14:49

3 Answers3

2

Firstly; as you can see here; Xamarin Insights will merge with HockeyApp over the next few months so you will be able to use the same platform both for getting things like user analytics and metrics and the things like exceptions for your Xamarin App.

Secondly; according to Xamarin Insights Life Cycle if the application doesn not have an open internet connection, the Xamarin Insights data is logged locally on the device. Later when a network connection is re-established, the log data is transmitted to the Xamarin Insigths web server.

Finally I have been using both HockeyApp and Xamarin Insights for a while and it works pretty good and it will be better since Microsoft has started to improve it, for more details please see this documentation.

Nurhak Kaya
  • 1,470
  • 1
  • 18
  • 20
  • I am also using xamarin insight and hockeyapp for catching exceptions but I never used for metrics. I didnt know xamarin insight had metrics. I thought application insight has but not xamarin insight. Do you see any performance issue using Hockeyapp metrics – Emil Jun 09 '17 at 13:36
  • No, I haven't so far. I recommend using it. – Nurhak Kaya Jun 09 '17 at 13:39
  • @batmaci Technically HockeyApp also already has metrics (very simple built in metrics) that can be enabled and then they also have a newer feature called [Custom Events](https://support.hockeyapp.net/kb/general-account-management-2/getting-started-with-custom-events) which allows you to collect custom metrics but it is very simple and fairly manual. I think once Insights and Hockey App merge, the metrics will get wayyyy better. Very excited for that! – hvaughan3 Jun 09 '17 at 14:45
2

Although HockeyApp and Xamarin Insights are the preferred you are not tied to these solutions when it comes to Analytics. In a Xamarin Application you will can still use Google Analytics or the "brand new" Firebase as well as the AWS solution.

You can do your own research to find out which one better fits your needs.

pinedax
  • 9,246
  • 2
  • 23
  • 30
  • but hockeyapp seems like doesnt support xamarin forms. you cant trackexceptions at least inside xamarin forms project – Emil Jun 17 '17 at 13:49
1

First of all every new feature you add to the app is something that will slow its startup performance, increase memory usage. It is up to you to decide whether it may or may not bring the value to the user, it is not a question for StackOverflow as it would be closed as 'opinion based'.

All the solutions that you mention above are now owned by Microsoft and they will all become deprecated in favor of Visual Studio Mobile Center. So if you decide to use something you should definitely use that and not the things that you have mentioned.

Other than that, there is an API to check whether the connection is available and for the app to react when it becomes available. Whether Mobile Center implements that? I can't tell you, but it would be way too rookie if it doesn't.

Ivan Ičin
  • 9,672
  • 5
  • 36
  • 57
  • Actually i didnt want to ask which one is best but how can i use without effecting user. for example if I add a custom metric on a button click and if it slows down the action button mainly executes when slow connection or no connection or it runs on a separate thread. such information I couldnt find. – Emil Jun 09 '17 at 13:38