Jetpack est une suite de bibliothèques qui permet aux développeurs de suivre les bonnes pratiques, de réduire le code récurrent et d'écrire du code qui fonctionne de manière cohérente sur toutes les versions d'Android et sur tous les appareils. Ainsi, ils peuvent se concentrer sur le code qui les intéresse.
Jetpack Compose
Une boîte à outils moderne pour créer des interfaces utilisateur natives qui simplifie et accélère le développement d'UI sur Android.

Pourquoi utiliser Android Jetpack ?

Basées sur des pratiques de conception modernes, les bibliothèques Android Jetpack réduisent les plantages et les fuites de mémoire grâce à la rétrocompatibilité.
Android Jetpack gère des activités fastidieuses telles que les tâches en arrière-plan, la navigation et la gestion du cycle de vie, afin que vous puissiez vous concentrer sur ce qui fait la valeur de votre application.
Réduisez la complexité grâce à des bibliothèques qui fonctionnent de manière cohérente sur toutes les versions d'Android et sur tous les appareils.

* Les bibliothèques les plus populaires et souvent utilisées sont listées en premier

activity *Accédez à des API modulables basées sur Activity.
appcompat *Autorisez l'accès à de nouvelles API sur d'anciennes versions d'API de la plate-forme (nombre d'entre elles utilisant Material Design).
appsearch *Créez des fonctionnalités de recherche dans l'application personnalisées pour vos utilisateurs.
camera *Créez des applications d'appareil photo pour mobile.
compose *Définissez votre interface utilisateur de façon programmatique avec des fonctions modulables qui décrivent sa forme et ses dépendances de données.
databinding *Liez des composants d'interface utilisateur dans vos mises en page à des sources de données dans votre application à l'aide d'un format déclaratif.
fragment *Segmentez votre application en plusieurs écrans indépendants hébergés au sein d'une activité.
hilt *Étendez la fonctionnalité de Dagger Hilt pour permettre l'injection de dépendances de certaines classes à partir des bibliothèques AndroidX.
lifecycle *Créez des composants optimisés pour le cycle de vie qui peuvent ajuster leur comportement en fonction de l'état actuel du cycle de vie d'une activité ou d'un fragment.
Material Design Components * Composants modulaires et personnalisables de l'UI Material Design pour Android.
navigation *Créez et structurez l'interface utilisateur intégrée à votre application, gérez les liens profonds et naviguez d'un écran à un autre.
paging *Chargez des données sous forme de pages et présentez-les dans une RecyclerView.
room *Créez, stockez et gérez des données persistantes sauvegardées par une base de données SQLite.
test *Tests sur Android.
work *Planifiez et exécutez en arrière-plan des tâches différables et soumises à des contraintes.
adsObtenez un identifiant publicitaire avec ou sans les services Play.
annotationExposez des métadonnées qui aident les outils et les autres développeurs à comprendre le code de votre application.
arch.coreAide pour d'autres dépendances d'arche, y compris les règles de test JUnit applicables à LiveData.
asynclayoutinflaterGonflez les mises en page de manière asynchrone pour éviter les à-coups dans l'interface utilisateur.
autofillAméliorez la précision de la saisie automatique grâce aux suggestions d'extensions.
benchmarkMesurez avec précision les performances de votre code dans Android Studio.
biometricAuthentifiez-vous à l'aide de la biométrie ou des identifiants de l'appareil, et effectuez des opérations de cryptographie.
bluetoothUtilisez les fonctionnalités Bluetooth de la plate-forme Android avec des API rétrocompatibles.
browserAffichez les pages Web dans le navigateur par défaut de l'utilisateur.
camera.viewfinderComposable autonome et viseur basé sur la vue pour l'appareil photo"
car-appCréez des applications basées sur des modèles pour Android Auto et Android Automotive OS.
cardviewImplémentez le modèle de fiche Material Design avec des angles arrondis et des ombres projetées.
collectionRéduisez l'impact sur la mémoire des collections nouvelles et existantes de petite taille.
compose.animationCréer des animations dans les applications Jetpack Compose afin d'enrichir l'expérience utilisateur.
compose.compilerTransformation de fonctions @Composable et prise en charge des optimisations avec un plug-in de compilation en Kotlin.
compose.foundationConception d'applications Jetpack Compose avec des composants prêts à l'emploi et extension de la base pour créer vos propres éléments de système de conception.
compose.materialCréation d'UI Jetpack Compose avec des composants Material Design prêts à l'emploi. Il s'agit du point d'entrée de niveau supérieur de Compose, conçu pour fournir des composants qui correspondent à ceux décrits sur www.material.io.
compose.material3Création d'UI Jetpack Compose grâce aux composants Material Design 3, la nouvelle évolution de Material Design. Material 3 inclut des thématisations et des composants mis à jour ainsi que des fonctionnalités de personnalisation Material You telles que les couleurs dynamiques. Material 3 est conçu pour correspondre au nouveau style visuel et à l'UI du système Android 12.
compose.material3.adaptiveUtilisez la bibliothèque adaptative Material 3 pour créer des UI adaptatives qui s'adaptent automatiquement en fonction des configurations de fenêtre actuelles, telles que les classes de taille de fenêtre ou les positions de l'appareil. La bibliothèque fournit à la fois des implémentations d'échafaudage par défaut et les composables de blocs de base nécessaires pour créer vos propres expériences personnalisées.
compose.runtimeComposants fondamentaux du modèle de programmation et de la gestion d'état de Compose, et environnement d'exécution principal du plug-in Compose Compiler à cibler.
compose.uiLes composants fondamentaux de l'interface utilisateur de Compose nécessaires pour interagir avec l'appareil, y compris la mise en page, le dessin et la saisie.
concurrentRetirez des tâches du thread principal à l'aide de coroutines et exploitez le potentiel de ListenableFuture.
constraintlayoutPositionnez et dimensionnez les widgets de manière flexible à l'aide des emplacements relatifs.
contentpagerChargez et paginez des données ContentProvider dans un thread en arrière-plan.
coordinatorlayoutPositionnez des widgets d'application de premier niveau, tels qu'AppBarLayout et FloatingActionButton.
coreCiblez les dernières fonctionnalités et API de la plate-forme, tout en prenant en charge les anciens appareils.
core.uwbImplémentez l'UWB (bande ultralarge) sur les appareils compatibles.
credentials Cette bibliothèque fournit un accès unifié aux identifiants d'un utilisateur. Il peut s'agir des mots de passe, des clés d'accès et des identifiants fédérés. Cette bibliothèque doit être utilisée pour offrir une expérience de connexion fluide et sécurisée.
credentials.registryPour résoudre ces problèmes, nous ajoutons un nouveau mécanisme de registre qui permet à une application de fournir des identifiants numériques de manière respectueuse de la confidentialité. De manière générale, l'application du fournisseur préenregistrera tous ses identifiants numériques candidats auprès du Gestionnaire d'identifiants. Lorsque le Gestionnaire d'identifiants reçoit une demande d'application pour un identifiant numérique spécifique, il exécute la mise en correspondance des identifiants et l'UI du sélecteur d'utilisateur dans un bac à sable.
cursoradapterExposez les données du curseur dans un widget ListView.
customviewImplémentez des vues personnalisées.
datastoreStockez les données de manière asynchrone, cohérente et transactionnelle, en éliminant certains inconvénients de SharedPreferences.
documentfileAffichez un document fichier.
draganddropAcceptez les données par glisser-déposer au sein d'une application ou à partir d'une autre application, et affichez une affordance de cible de glisser-déposer cohérente.
drawerlayoutImplémentez un widget de panneau Material Design.
dynamicanimationCréez des animations fluides avec une API d'animation basée sur la physique.
emojiAffichez des emoji sur les appareils actuels et plus anciens.
emoji2Affichez des emoji sur les appareils actuels et plus anciens.
enterpriseCréez des applications professionnelles.
exifinterfaceLisez et écrivez des balises EXIF de fichier image.
gamesUtilisez le SDK Android Game de manière native dans votre application pour effectuer des tâches complexes liées aux jeux, comme l'optimisation des rythmes de frames.
glanceCréez des mises en page pour des surfaces distantes à l'aide d'une API semblable à Jetpack Compose.
graphicsExploiter les fonctionnalités graphiques de plusieurs versions de la plate-forme Android
gridlayoutImplémentez une mise en page en grille.
healthCréez des applications de santé performantes, indépendamment de la plate-forme.
health.connectPermet aux développeurs de lire ou d'écrire les informations de santé et de remise en forme d'un utilisateur.
heifwriterEncodez une image ou une collection d'images au format HEIF à l'aide des codecs disponibles sur l'appareil Android.
inkInspirez les meilleures applications de stylet. Réduire les barrières d'entrée pour les développeurs afin de proposer des expériences d'encrage de haute qualité et performantes
inputRéduisez la latence des interactions d'entrée en prédisant les futurs MotionEvents.
interpolatorUtilisez des interpolateurs d'animation sur les anciennes plates-formes.
javascriptengineHabilitez votre application Android à évaluer du JavaScript.
jetifierOutil autonome qui migre les dépendances d'une bibliothèque de l'ancienne bibliothèque de support vers des dépendances AndroidX équivalentes.
leanbackUtilisez Compose pour la télévision à la place de cet artefact.
legacyCet artefact et ses classes sont obsolètes. À partir d'Android 8, les restrictions liées à la vérification en arrière-plan rendent cette classe inutile.
lintVérifications lint pour vérifier l'utilisation des API Gradle
loaderChargez des données pour votre interface utilisateur après une modification de configuration.
localbroadcastmanagerCet artefact et ses classes sont obsolètes. Utilisez plutôt LiveData ou des flux réactifs.
mediaPartagez des contenus et des commandes multimédias avec d'autres applications. Remplacé par media2.
media2Partagez des contenus et des commandes multimédias avec d'autres applications.
media3 *Prenez en charge des bibliothèques pour les cas d'utilisation de contenus multimédias.
mediarouterActivez l'affichage et la lecture de contenus multimédias sur des appareils récepteurs distants à l'aide d'une interface utilisateur courante.
multidexDéployez des applications avec plusieurs fichiers dex sur des appareils antérieurs à Android 5.
metricsSuivez et analysez différentes métriques d'exécution pour votre application.
paletteExtrayez des palettes de couleurs représentatives à partir d'images.
pdfBibliothèque permettant d'ajouter des fonctionnalités de visionnage de PDF dans les applications.
percentlayoutCet artefact et ses classes sont obsolètes. Utilisez plutôt ConstraintLayout et les mises en page associées.
preferenceCréez des écrans de paramètres interactifs sans avoir à interagir avec l'espace de stockage de l'appareil ni à gérer l'interface utilisateur.
printAffichez des photos, des documents et d'autres images depuis votre application.
privacysandbox.activityÀ FAIRE
privacysandbox.adsCette bibliothèque permet d'intégrer les API de protection de la confidentialité, qui font partie de la Privacy Sandbox sur Android.
privacysandbox.pluginsPlug-in Gradle de la bibliothèque de SDK de la Privacy Sandbox Android
privacysandbox.sdkruntimeCette bibliothèque fournit des composants destinés aux consommateurs qui prennent en compte le SDK Runtime.
privacysandbox.toolsBibliothèque permettant d'utiliser les fonctionnalités Privacy Sandbox dans Android
privacysandbox.uiÀ FAIRE
profileinstallerPermet aux bibliothèques de préremplir les traces de compilation à l'avance afin qu'elles puissent être lues par ART.
recommendationFaites la promotion de contenu sur l'écran d'accueil du Lanceur d'applications Android TV.
recyclerviewAffichez de grands ensembles de données dans votre interface utilisateur tout en réduisant l'utilisation de la mémoire.
remotecallbackCréez un wrapper pour permettre aux développeurs de fournir plus facilement un PendingIntent.
resourceinspectionAffichez les attributs des vues personnalisées dans l'outil d'inspection de la mise en page en temps réel d'Android Studio.
savedstateÉcrivez des composants enfichables qui enregistrent l'état de l'interface utilisateur à la fin d'un processus, puis restaurez-les au redémarrage du processus.
securityGérez les clés de manière sécurisée, et chiffrez les fichiers et les préférences partagées.
sharetargetFournissez une rétrocompatibilité pour utiliser les raccourcis en tant que cibles de partage direct.
sliceAffichez en dehors de votre application des éléments d'interface utilisateur créés à partir d'un modèle.
slidingpanelayoutImplémentez un modèle d'interface utilisateur de volet coulissant.
startupMettez en œuvre un moyen simple et performant d'initialiser des composants au démarrage de l'application.
sqliteUtilisez des bases de données SQLite locales. Si possible, utilisez plutôt Room.
swiperefreshlayoutImplémentez le modèle d'interface utilisateur "Balayer pour actualiser".
test.uiautomatorFramework pour les tests fonctionnels de l'interface utilisateur entre applications.
textclassifierIdentifiez les conversations, les liens, les sélections et d'autres constructions similaires dans le texte.
tracingÉcrivez les événements de trace dans le tampon de traçage système.
transitionAnimez des mouvements dans l'interface utilisateur avec des mises en page de début et de fin.
tvFournit aux développeurs les fonctionnalités Compose et Material Design afin de concevoir des applications pour la télévision
tvproviderFournissez des chaînes Android TV.
vectordrawableAffichez des graphiques vectoriels.
versionedparcelableFournissez un format de sérialisation binaire compact et stable pouvant être transmis d'un processus à l'autre ou conservé de manière sécurisée.
viewpagerAffichez les vues ou les fragments dans un format balayable. Si possible, utilisez plutôt viewpager2.
viewpager2Affichez les vues ou les fragments dans un format balayable.
wearCréez des applications pour les montres connectées Wear OS by Google.
wear.composeCréez des applications Jetpack Compose pour les accessoires connectés en fournissant des fonctionnalités compatibles avec les tailles, les formes et les gestes de navigation spécifiques à ce type d'accessoires.
wear.protolayoutCette bibliothèque permet de définir un ensemble de mises en page d'UI et d'expressions non liées à l'UI à afficher ou à évaluer sur des surfaces distantes.
wear.tilesCréez des applications pour les montres connectées Wear OS by Google.
wear.watchfaceCréez des applications pour les montres connectées Wear OS by Google.
webkitUtilisez les API WebView modernes sous Android 5 ou version ultérieure.
windowFavorise la compatibilité avec différents facteurs de forme d'appareil (appareils pliables, par exemple).
window.extensions.coreAPI principales des extensions de la bibliothèque du gestionnaire de fenêtres
Compose août 2023
Jetpack Compose 1.5.0 passe en version stable et apporte d'importantes améliorations des performances, y compris une refactorisation des modificateurs de haut niveau tels que "Cliquable", qui peut améliorer le temps de composition de 80 %. Août 2023, Compose améliore de 70% l'allocation de mémoire (en particulier dans la pile graphique), ce qui réduira l'espace mémoire utilisé par Compose sur les appareils.
Wear Compose et Wear Tiles 1.2
Wear Compose et les cartes Wear sont désormais disponibles en version stable pour améliorer l'expérience des développeurs Wear OS. Les deux sont complémentaires : Wear Compose permet de créer des écrans d'application complexes sur des appareils Wear, tandis que des cartes Wear peuvent être utilisées pour créer les cartes d'application. La nouvelle version de Wear Compose contient de nouvelles fonctionnalités, comme les éléments extensibles et le balayage pour afficher. La version des cartes Wear est désormais également compatible avec l'animation de widgets et la liaison de données de plate-forme (telle que la source de données de santé).
Window 1.1
La version 1.1 stabilise les API d'intégration d'activités, ce qui permet à des applications comme WhatsApp, eBay et Temu de proposer des mises en page sur grand écran. L'API est enrichie de fonctionnalités, car elle permet aux développeurs de modifier le comportement de l'écran partagé, de vérifier (et de modifier) l'état de l'écran partagé au moment de l'exécution, d'implémenter des écrans partagés horizontaux et de démarrer une fenêtre modale en plein écran.
Notes de version
Pour en savoir plus, consultez nos notes de version.

Apprendre à utiliser Jetpack

Découvrez les bibliothèques Jetpack essentielles dans le cours sur les principes de base d'Android avec Compose et réduisez le code récurrent dans votre application.
Familiarisez-vous avec trois bibliothèques Jetpack qui simplifient votre couche de données : LiveData, ViewModel et Room.
Découvrez comment les bibliothèques Jetpack les plus populaires peuvent être utilisées ensemble dans une application en production

Actualités et vidéos