android / nowinandroid

A fully functional Android app built entirely with Kotlin and Jetpack Compose
Apache License 2.0
16.14k stars 2.87k forks source link

[FR]: Create performance learning journey #181

Open keyboardsurfer opened 2 years ago

keyboardsurfer commented 2 years ago

Is there an existing issue for this?

Describe the problem

We're adding performance inspection code to the app. @JolandaVerhoef recommended creating a learning journey for this.

Describe the solution

Let's create a learning journey.

Additional context

No response

Code of Conduct

keyboardsurfer commented 2 years ago

Adding @dturner's comment to keep track:

As @JolandaVerhoef already suggested, please add supporting documentation for this plugin/feature, either by adding to the existing README or (better) start a performance tracking learning journey.

The docs should include:

The events which are being monitored How the events are currently recorded, and how they could be sent to a Firebase backend (see below) An example output, what the output means and potentially how to address jank. For example, when running the app on the emulator I see the following output: V/NiA Jank: FrameData(frameStartNanos=13037274863989, frameDurationUiNanos=286913934, frameDurationCpuNanos=293708517, frameOverrunNanos=277093643, isJank=true, states=[Navigation: for_you_route]) But, as a layman, I'm not sure what this is telling me, or what (if anything) I should do about it.

I'd also like to see a prod configuration which switches the event recording from using Log to using a real backend, although this can be done in a follow up PR.