Measure performance of React Native apps - performance

I need to measure the performance of a React Native app. What's the best tool for this?
I try google trace in google chrome, and Instruments in mac for iOS platform, but these show me a lot of unorganized data.

I implemented some tools that helped me to check my application's performance, below is the list of the tools:
1) (reactotron) https://github.com/infinitered/reactotron
It's the coolest way to get logs of your application(redux actions etc), I have integrated this tool in my projects, in case you need any help just feel free to ask.
2) https://facebook.github.io/react/docs/perf.html (react-addons-perf)
This tool tells you about the frames/s,instances etc.. This is a react tool, it possible to integrate with react native.
Use the built-in Profiler to get detailed information about work done
in the JavaScript thread and main thread side-by-side.
For iOS, Instruments are an invaluable tool, and on Android you should
learn to use systrace.
You can also use react-addons-perf to get insights into where React is
spending time when rendering your components.
Another way to profile JavaScript is to use the Chrome profiler while
debugging. This won't give you accurate results as the code is running
in Chrome but will give you a general idea of where bottlenecks might
be.
Note: The above tools are for monitoring javascript performance, for example time took to rendering of components, which action in redux is getting inbetween the flow of regular actions..
Cheers :)

Related

What are good analytic tools for Xamarin Forms?

I am looking for a way to track the navigation process of my users, as well as the number of clicks/user for each view, average screen time per/day/user, and so on.
I know I can do this programmatically but it doesn't seem like the ideal solution.
Is there any software that covers all of this?
Visual Studio App Center provides multiple useful tools. It offers real-time diagnostic data, tracking of usage patterns, user adoption and a lot more engagement metrics with App Center Analytics. You can even use custom events to get the exact user behaviors you are looking for.
I've been using it for a while and so far i'm satisfied.
AppCenter is the easiest to integrate with, it also allows you to export the data to ApplicationInsights on azure to do more with that data. There are some other options like Google Analytics (You have to install nugets on platform projects and implement them separately). You also have segment If you are interested.

Profiling Webworkers in Firefox

I am trying to profile a Javascript app with Firefox Quantum. The part that I am most interested in runs inside webworkers. I am not sure if I am doing everything correctly, but I cannot find a way to get any useful data with the built in profiler. All I can see is this:
Is there a hidden feature that can help me look inside the webworker?
For anyone else finding this in the future: https://profiler.firefox.com/ is able to profile Web Workers.
You need to open the Resources drop-down and choose Thread: DOM Worker.
After further looking into this I came to the conclusion that Firefox does not support runtime analysis for web workers at the moment. I will have stick with Chrome for profiling our app.

Xamarin cross-platform user experience vs. native development

I am trying to evaluate whether Xamarin would be a good option for my project. The project is a large, complex app for Android and iOS with a lot of client-server communication. The user interface is a major focus and has to be really fast and smooth. Also, we plan to make large use of UX graphic effects (comparable to the Spotify app).
For now we are planning to go for two separate native apps using Java/Objective-C. However, the possibility of cross-platform code sharing would be very convenient for us of course.
Most opinions I've heard so far say that Xamarin - although far better than HTML5 apps - cannot match the UX of a native app. Also, I tested the following applications made with Xamarin (on Android):
Rdio
MarketWatch
Busch Gardens Discovery Guide
Sqor
Storyo
From my impression, none of them could quite match the speed and smoothness of a good native app.
If our focus is on a top notch user experience, would Xamarin really be a viable option? Can it really match a native UX? I am particularly looking for opinions from developers who have experience with large and complex cross-platform Xamarin applications. A few critical voices would be very helpful.
Thank you a lot!
I'm on the Rdio mobile development team, so I can make some personal reflections from that standpoint.
Xamarin allows you to write native applications in C#. Any slowness, jankiness, ugliness or bad-appiness usually has nothing to do with the Xamarin layer itself.
You save some time being able to share core business logic between your different clients, but you're still writing the UI from scratch, specific to the platform. You're just writing it in C#.
But while you save that time, you're spending it in other ways. All of those SDKs you want to use probably aren't compatible with Xamarin out of the box. You won't be pod install'ing that iOS framework, and you might be reinventing the wheel for handfuls of things. Xamarin takes advantage of the NuGet repo so you have a library of components that handle many of the things most people need (Analytics, Testing, Facebook SDK, JSON parsing, Database, etc etc) but it doesn't cover everything. And it certainly doesn't cover stuff that's out the day of an Apple or Google product announcement.
Any 3rd party code that you do want to import into your project will be done through writing custom bindings. While not usually difficult, it is time consuming. Xamarin has a team of people that specialize in assisting you in this. This fact speaks to the process being messy at times.
So while the slowness, jankiness, ugliness or bad-appiness probably isn't the fault of Xamarin, it might be the fault of you spending time in places you normally wouldn't, or not being able to take advantage of features you normally would. If that 3rd party partner SDK is giving you problems, your troubleshooting may take twice as long because there's a layer that you don't control.
UI is a wash. You're writing it from scratch anyway.
Business logic is shared. Depending on the app that might be a win if you architect your application to take advantage of it.
Compatibility / bleeding edge ability will be lacking. That might not matter to you at all, or you might be the person wanting to take advantage of that hot new API in the next OS release the day it's announced.
My personal thought, without knowing specifics, is if you want to build an application that you plan on being around years from now, and that will take advantage of the latest and greatest, I'd tell you to write natively for each platform. Unless you can really see huge gains in sharing that business logic the upfront gains are minimal. Or if you really like C#.
Xamarin uses native controls. So you design a fully native UI per platform. The users can't see that your App is made with Xamarin or Java/Objective-C.
There are sometimes performance issues in conjunction with the platform independent UI wrapper Xamarin.Forms. But you're not forced to use it. When you have still performance issues in your Xamarin.Android or Xamarin.iOS app then you produce them in your code.
There are benchmark results for Android apps comparing Xamarin.Android and Java apps: Does anyone have benchmarks (code & results) comparing performance of Android apps written in Xamarin C# and Java?
As you can see Xamarin's internal performance became better and better over the time.
Conclusion: Yes, you can write smooth native Apps using Xamarin.

Testing VXML Applications in a Application Simulator

I am looking for a solution to simulate vxml application in a desktop/web browser.
Challenge
i have few hundreds of unit test cases in every new vxml application development.
it is not possible to always make a test call to test every single unit test cases i have. if i can test vxml application in a simulator it will be more easy to test it..
i am aware of that avaya Dialog designer/AAOD have a feature to test application in their inbuild Application simulator which comes with AAOD/DD Eclipse package but this tool can run AAOD/DD projects in workspace alone.
Please refer : Chapter 16 in Avaya dev guide
AAOD's Tool looks like this
is it possible to customize to use this tool to simulate static VXML / Nuance NDF based VXML application ?
or any other tools available ?
Unit testing of IVR applications is challenging and it is near impossible to hit ever possible path in the call flow for an application of any size. I am not aware if you can customize Avaya's tool for your needs. But there is a product out there that may fit some of your requirements. It is Voiyager by Syntellect. It looks like they have a free trial now if you want to try it out. I saw a demonstration of it at SpeechTEK a few years ago and it was pretty impressive. The only reason I did not pursue it at the time is that it was pretty pricey.
Avaya od/dd is a platform dependent tool(IDE) where you can create (vxml+java), test and debug application in the tool. But code which is created outside(Avaya OD/DD tool) the environment is not possible. Because code generated in avaya OD is java format, while executing in the voice browser it is converted into vxml for that u need to give webLM a license to avaya tool.You can use some ivr automation tools like hammer etc.But you need to pay for the software.
VXML apps are just WARs. The only session information transferred between invocations of pages is the session id. We have used Apache JMeter to create apps.
What you can do it try and see if what you want to do can be done via the web browser, by going to http://<server>/<Application/Start there fill the boxes you require (most of the time just filling the ones marked ANI and DNIS will be enough). If your call can be tested this way you can use the tools for web testing, without using Orchestration Designer.
If your app has a CTI/AES connector you may not be able to do this, because the web server tries to connect to AES upon submitting the first page.
As stated above , there are things that cannot be unit tested .
Nuance NDF and SVF applications come with test pages where you can simulate the call flow ; similar tools exit for grammars .

Performance testing of HTML5/cs/js pages in phonegap

I'm a tester and our company is planning to build an app in HTML5/CSS/JS, jquery mobile and deploy on iPhone and android using phonegap.
I was wondering how would I test performance of the app on these platforms? Specifically performance of the rendering, user response times, dynamic data binding?
Is there a tool that can measure performance of the above? Can I use automation?
Appreciate your answers.
You can use Weinre. But the metrics are limited and still a lot of manual steps involved. Your best bet is to write your own instrumentation and JS based reporting.

Resources