Skip to content

Compose Compiler Report to HTML

A utility (Gradle Plugin + CLI) to convert Jetpack Compose compiler metrics and reports to beautified 😍 HTML page. Made with ❤️ for Android Developers and Composers

Distribution Usage Guide Install
Gradle Plugin Read Gradle Plugin
CLI Read NPM Package
Download JAR
Library Artifact Read Install

💡 Motivation

The Compose Compiler plugin can generate reports / metrics around certain compose-specific concepts that can be useful to understand what is happening with some of your compose code at a fine-grained level. See this to understand this concept in detail.

This generates reports in json, csv and txt files which are not easily trace-able for developers. Also, Composable function and class reports becomes large and tedious to check. This tool parses the reports and metrics generated by Compose compiler and beautifies into a HTML page and intelligently distinguishes problematic and non-problematic composable functions and classes.

This utility doesn't generate Compose Metrics and Reports on its own. First, raw Compose report should be generated from the Compose Compiler and those generated files should be feed to this utility. By parsing that data, this utility generates the beautified report.

📈 How it looks?

Info

See report generated for NotyKT app. Once report is generated, it looks like this ⬇️.

View Report

This is overall Report Overview:

Title Preview
Brief Statistics Generates metrics from .json file and represents in tabular format.

Brief Statistics
Detailed Statistics Generates report from .csv file and represents in tabular format.

Detailed Statistics
Composable Report Parses -composables.txt file and separates out composables with and without issues and properly highlights issues associated with them.

Composable Report
Class Report Parses -classes.txt file and separates out stable and unstable classes out of it and properly highlights issues associated with them.

Class Report

Right now, work is in progress and more improvements related to the report will happen in some time. If you have any feedback / suggestions related to the report, feel free to discuss.