mrkeyoor.com_
Fri 16 Oct 18:51 UTC
Dev Toolsevaluationupdated 11 Oct 2026

MPAndroidChart review

MPAndroidChart draws interactive charts inside Android apps, including line, bar, pie, and candlestick displays. Its current Kotlin rewrite supports conventional Android Views and a separate Jetpack Compose module, with zooming and selection markers so people can inspect individual records.

+3 / 4dstars / 7d
Verdict

Our MPAndroidChart run installed in 67 seconds, but both build and tests failed because the Android SDK location was missing. Shortlist it for interactive Android charts across Views and Compose, provided your toolchain meets the documented SDK requirements. Existing Java-branch users should budget a migration review for formatters and label behavior before upgrading.

We ran it

Lab card: what happened when we ran MPAndroidChartScreenshot of MPAndroidChart (philjay.cc/mpandroidchart)
Install✓ · 67s
Build✗ · 9s
Tests✗ · 8sran, no count parsed
Repo551 files~37,781 lines of source · 11.9 MB · 1 CI workflows

Answers from our run

Does MPAndroidChart build from source?

Dependencies installed in 67 seconds, and the build failed. We cloned commit fae4ad7 into a clean Debian container with 3 CPUs and no project-specific setup.

Do MPAndroidChart's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use MPAndroidChart?

Apps supporting Android API levels below 23: the current README requires minSdk 23.

What are the alternatives to MPAndroidChart?

Vico, Compose Charts. Our MPAndroidChart run installed in 67 seconds, but both build and tests failed because the Android SDK location was missing.

Setup3/567-second install; SDK configuration blocked build and tests
Docs4/5Views, Compose, SDK requirements, and concrete migration edits
Community5/5Recent fixes and October push; small queue reflects a tracker reset
Maturity4/5Current rewrite is maintained; our run could not validate compilation

Who it’s for

Android developers needing interactive charts with custom axes and selection markers.
Teams supporting both Android Views and Jetpack Compose screens.
Existing users prepared to review formatter, payload, and label changes during migration.

Who it’s NOT for

Apps supporting Android API levels below 23: the current README requires minSdk 23.
Teams unable to adopt the documented Compose SDK requirement: MPChartCompose needs compileSdk 37.
Existing Java-branch users expecting an unchanged API: the migration file removes ValueFormatter and changes payload and property handling.
Compose Multiplatform projects needing one chart implementation across platforms: this repository documents Android modules.

Setup reality

Our run installed commit fae4ad7 in 67 seconds. Build failed with exit code 1 after 9 seconds, and tests failed with exit code 1 after 8 seconds. Both logs stopped because the Android SDK location was missing, naming ANDROID_HOME or sdk.dir in local.properties as configuration options.

The fresh Debian sandbox had 3 CPUs, 10 GB of RAM, and lab-jvm:21, without secrets or elevated privileges. The README specifies Android SDK tooling, Java 17, and Kotlin 2.0 or newer. Published artifacts use JitPack, with separate main-library and optional Compose coordinates. The chart quick start needs no hosted service credential.

The main library requires minSdk 23 and compileSdk 35; Compose needs compileSdk 37. The Kotlin rewrite changes formatters and other APIs, so existing apps need the migration guide. Our scan found 1 CI workflow file, no Dockerfile, and no tests directory, without establishing whether checks exist elsewhere.

A current Kotlin rewrite supports Views and Compose

MPAndroidChart's current branch is a Kotlin rewrite with a separate Jetpack Compose module. It draws interactive Android charts, including line, bar, pie, and candlestick displays, with selection markers and control over axes. For an app that needs someone to tap a point and open its underlying record, that combination is more useful than a static chart image. The README also shows the same data moving into a conventional Android View or a Compose screen.

Our checkout at commit fae4ad7 contained 551 files, roughly 37,781 source lines, and occupied 11.9 MB. That is a real library project with examples and multiple modules to understand. Its advertised large-data smoothness remains a publisher claim: our sandbox did not measure rendering, gestures, or frame rates. Choose the API for the interactions your screen needs, then check those interactions with your own records and devices.

What happened when we ran it

Our run installed MPAndroidChart in 67 seconds, then the build failed after 9 seconds and the test command failed after 8 seconds. We cloned commit fae4ad7 on October 10, 2026, into a fresh unprivileged Debian container with 3 CPUs, 10 GB of RAM, and the lab-jvm:21 image. The container held no secrets. Successful installation established that this step completed, without establishing that the project could compile in that environment.

The build stopped while determining dependencies for :MPChartCompose:extractDebugAnnotations. The test command stopped at :MPChartCompose:testDebugUnitTest. Both logs said the Android SDK location was missing and named the same remedies: an ANDROID_HOME environment variable or sdk.dir in /work/repo/local.properties. Both commands exited with code 1. That is a setup prerequisite we can identify directly, without guessing about chart code or how any test would behave after SDK configuration.

The harness timings were 9 seconds for build and 8 seconds for tests. Gradle's own tails printed 8 seconds and 7 seconds respectively, so those are separate reporting clocks. Our scan found 1 CI workflow file, no Dockerfile, and no tests directory. The directory signal doesn't prove an absence of checks elsewhere in an Android project. Our testing method covers the supplied run, which reached neither a successful build nor a completed test suite.

The Compose module needs an Android SDK, even on a JVM image

The README requirements specify Android tooling alongside Java and Kotlin. The main library needs minSdk 23 and compileSdk 35, while the Compose module needs compileSdk 37. Java 17 and Kotlin 2.0 or newer are documented. A Java environment by itself is therefore insufficient. The README does mention the Android requirements, so our missing SDK is not evidence of an undocumented dependency.

The 67-second installation is the only successful setup step we measured. For an application consuming a published artifact, the README uses JitPack and distinct coordinates for MPChartLib and optional MPChartCompose. Pin a version and configure that repository in Gradle. No chart-service credential appears in the quick start. Your data source may need authentication, but drawing the supplied entries isn't a hosted analytics service.

The move from Java changes formatter and data code

The migration file documents actual source edits for the Kotlin rewrite. Getter and setter pairs become properties, the old ValueFormatter base class disappears, and entry payloads become typed and read-only. These are material changes if a production screen has custom labels or attaches business objects to points. A dependency bump needs a screen-level review, even when familiar class and package names remain.

Our failed 9-second build cannot tell you how much work those edits take. The migration guide also describes changed label density: the x-axis keeps labels apart, and value labels depend on entries visible in each data set. A chart may therefore look different after migration without a crash. Check long date labels and dense series deliberately. Those are the sort of small visual differences a developer can miss while concentrating on compilation.

Compose setup runs once, while selection lives in state

The Compose quick start passes changing chart data as state and says setup runs once. ChartState exposes the selected entry, visible range, and zoom, with functions for moving the viewport and animating it. That is a useful split for a chart whose selection controls another part of your screen. It also means you should understand which values belong in changing state before putting configuration logic into the setup callback.

With 10 GB available in our sandbox, the measured obstacle was still SDK discovery rather than a reported memory shortage. That finding should steer your first adoption check toward Android tooling. Once configured, exercise your screen's own behavior: data updates, a selection that opens the correct record, and labels that remain readable. The library's example app provides styling code, but its screenshots don't establish usability for your particular chart.

Recent fixes and a reset tracker show active maintenance

The last push was October 9, 2026, and release v4.0.1 shipped on September 28. Its release notes describe fixes for combined-chart bar selection and clipped limit-line labels, among other changes. GitHub returned 38,184 stars and 1 open issue or PR. That small queue needs context: issue 5525 explains the deliberate closure of older reports and reassessment against the rewrite.

The unresolved 8-second test step keeps this from being a lab-confirmed recommendation. I'd shortlist MPAndroidChart for an Android app that needs both View and Compose charts, especially with markers or unusual chart types. Vico deserves comparison when Compose Multiplatform is a requirement, while tehras/charts documents a smaller set of Compose chart examples. For MPAndroidChart, make SDK configuration the first checkpoint, then verify your custom formatters and selection behavior before migrating a shipped screen.

Alternatives

ProjectWhat it isPick it when
VicoA chart library for Compose Multiplatform.pick this instead when your chart UI must extend beyond Android through Compose Multiplatform.
Compose ChartsA Jetpack Compose chart library with pie, bar, and line examples.pick this instead when those basic Compose chart shapes cover the requirement and you prefer its drawing API.

What people are saying

  1. [velocity-scout] PhilJay/MPAndroidChart

Sources

  1. MPAndroidChart README and requirements
  2. Kotlin migration guide
  3. MPAndroidChart v4.0.1 release
  4. Tracker reset explanation
  5. Vico README
  6. Compose Charts README

More dev tools reviews

compose-samples · librepods · sqlmap · coucou · world-execute-me-dsh-pv · mcp-extensions · the whole board →