MPAndroidChart Kotlin : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

MPAndroidChart pour Kotlin : guide complet avec exemples

MPAndroidChart est une bibliothèque open source puissante et flexible pour créer des graphiques et diagrammes dans les applications Android. Écrite en Java, elle est parfaitement compatible avec Kotlin grâce à une interopérabilité totale. Cette bibliothèque est la référence de facto pour la visualisation de données dans l'écosystème Android, offrant une large gamme de types de graphiques : des simples graphiques linéaires et à barres aux graphiques circulaires, à bulles et combinés les plus complexes.

Pourquoi utiliser MPAndroidChart ? Dans le développement mobile moderne, la visualisation des données joue un rôle clé. Qu'il s'agisse d'afficher des indicateurs financiers, des résultats sportifs, des statistiques d'utilisation de l'application ou l'évolution de la température, un graphique de qualité rend l'information claire et compréhensible. MPAndroidChart prend en charge tout le travail lourd de rendu, d'animation, de gestion des touches et de zoom, permettant au développeur de se concentrer sur la logique métier. La bibliothèque gère des milliers de points de données, fonctionne de manière fluide même sur les anciens appareils et offre des dizaines d'options de personnalisation.

Dans ce guide, nous allons détailler l'installation de la bibliothèque, les classes et méthodes principales, écrire plusieurs exemples fonctionnels en Kotlin et donner des conseils pratiques pour optimiser les performances. À la fin de cet article, vous serez capable d'intégrer en toute confiance tout type de graphique dans votre application Android.

1. Installation

MPAndroidChart est distribué via Maven Central. Pour l'installer, ajoutez la dépendance dans le fichier build.gradle de votre module (généralement app/build.gradle).

Commande exacte (Gradle) :

dependencies {
    implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
}

Après avoir ajouté cette ligne, synchronisez votre projet (Sync Now). La bibliothèque est prête à être utilisée.

Important : Assurez-vous que le dépôt Maven Central est ajouté dans le build.gradle racine (niveau projet) :

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

Si vous utilisez la nouvelle méthode de configuration (Gradle 7+), ajoutez le dépôt dans settings.gradle.kts :

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}

2. Démarrage rapide — exemple minimal fonctionnel

Créons un graphique linéaire simple avec trois points de données. Commencez par ajouter un LineChart dans votre fichier XML de mise en page :

<!-- activity_main.xml -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <com.github.mikephil.charting.charts.LineChart
        android:id="@+id/lineChart"
        android:layout_width="match_parent"
        android:layout_height="400dp" />

</LinearLayout>

Maintenant, le code dans l'Activity (Kotlin) :

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.github.mikephil.charting.charts.LineChart
import com.github.mikephil.charting.data.Entry
import com.github.mikephil.charting.data.LineData
import com.github.mikephil.charting.data.LineDataSet

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val lineChart: LineChart = findViewById(R.id.lineChart)

        // 1. Créer les points de données (Entry)
        val entries = listOf(
            Entry(0f, 10f),   // x=0, y=10
            Entry(1f, 20f),   // x=1, y=20
            Entry(2f, 15f)    // x=2, y=15
        )                    

Recommendations