Android Jetpack
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
Développer une interface utilisateur avec 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 ?
Suivez les bonnes pratiques
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é.
Éliminer le code récurrent
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éduire la fragmentation
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.
Bibliothèques Jetpack Explorer toutes les bibliothèques
* 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. |
ads | Obtenez un identifiant publicitaire avec ou sans les services Play. |
annotation | Exposez des métadonnées qui aident les outils et les autres développeurs à comprendre le code de votre application. |
arch.core | Aide pour d'autres dépendances d'arche, y compris les règles de test JUnit applicables à LiveData. |
asynclayoutinflater | Gonflez les mises en page de manière asynchrone pour éviter les à-coups dans l'interface utilisateur. |
autofill | Améliorez la précision de la saisie automatique grâce aux suggestions d'extensions. |
benchmark | Mesurez avec précision les performances de votre code dans Android Studio. |
biometric | Authentifiez-vous à l'aide de la biométrie ou des identifiants de l'appareil, et effectuez des opérations de cryptographie. |
bluetooth | Utilisez les fonctionnalités Bluetooth de la plate-forme Android avec des API rétrocompatibles. |
browser | Affichez les pages Web dans le navigateur par défaut de l'utilisateur. |
camera.viewfinder | Composable autonome et viseur basé sur la vue pour l'appareil photo" |
car-app | Créez des applications basées sur des modèles pour Android Auto et Android Automotive OS. |
cardview | Implémentez le modèle de fiche Material Design avec des angles arrondis et des ombres projetées. |
collection | Réduisez l'impact sur la mémoire des collections nouvelles et existantes de petite taille. |
compose.animation | Créer des animations dans les applications Jetpack Compose afin d'enrichir l'expérience utilisateur. |
compose.compiler | Transformation de fonctions @Composable et prise en charge des optimisations avec un plug-in de compilation en Kotlin. |
compose.foundation | Conception 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.material | Cré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.material3 | Cré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.adaptive | Utilisez 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.runtime | Composants 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.ui | Les 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. |
concurrent | Retirez des tâches du thread principal à l'aide de coroutines et exploitez le potentiel de ListenableFuture. |
constraintlayout | Positionnez et dimensionnez les widgets de manière flexible à l'aide des emplacements relatifs. |
contentpager | Chargez et paginez des données ContentProvider dans un thread en arrière-plan. |
coordinatorlayout | Positionnez des widgets d'application de premier niveau, tels qu'AppBarLayout et FloatingActionButton. |
core | Ciblez les dernières fonctionnalités et API de la plate-forme, tout en prenant en charge les anciens appareils. |
core.uwb | Implé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.registry | Pour 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. |
cursoradapter | Exposez les données du curseur dans un widget ListView. |
customview | Implémentez des vues personnalisées. |
datastore | Stockez les données de manière asynchrone, cohérente et transactionnelle, en éliminant certains inconvénients de SharedPreferences. |
documentfile | Affichez un document fichier. |
draganddrop | Acceptez 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. |
drawerlayout | Implémentez un widget de panneau Material Design. |
dynamicanimation | Créez des animations fluides avec une API d'animation basée sur la physique. |
emoji | Affichez des emoji sur les appareils actuels et plus anciens. |
emoji2 | Affichez des emoji sur les appareils actuels et plus anciens. |
enterprise | Créez des applications professionnelles. |
exifinterface | Lisez et écrivez des balises EXIF de fichier image. |
games | Utilisez 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. |
glance | Créez des mises en page pour des surfaces distantes à l'aide d'une API semblable à Jetpack Compose. |
graphics | Exploiter les fonctionnalités graphiques de plusieurs versions de la plate-forme Android |
gridlayout | Implémentez une mise en page en grille. |
health | Créez des applications de santé performantes, indépendamment de la plate-forme. |
health.connect | Permet aux développeurs de lire ou d'écrire les informations de santé et de remise en forme d'un utilisateur. |
heifwriter | Encodez une image ou une collection d'images au format HEIF à l'aide des codecs disponibles sur l'appareil Android. |
ink | Inspirez 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 |
input | Réduisez la latence des interactions d'entrée en prédisant les futurs MotionEvents. |
interpolator | Utilisez des interpolateurs d'animation sur les anciennes plates-formes. |
javascriptengine | Habilitez votre application Android à évaluer du JavaScript. |
jetifier | Outil autonome qui migre les dépendances d'une bibliothèque de l'ancienne bibliothèque de support vers des dépendances AndroidX équivalentes. |
leanback | Utilisez Compose pour la télévision à la place de cet artefact. |
legacy | Cet 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. |
lint | Vérifications lint pour vérifier l'utilisation des API Gradle |
loader | Chargez des données pour votre interface utilisateur après une modification de configuration. |
localbroadcastmanager | Cet artefact et ses classes sont obsolètes. Utilisez plutôt LiveData ou des flux réactifs. |
media | Partagez des contenus et des commandes multimédias avec d'autres applications. Remplacé par media2. |
media2 | Partagez 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. |
mediarouter | Activez l'affichage et la lecture de contenus multimédias sur des appareils récepteurs distants à l'aide d'une interface utilisateur courante. |
multidex | Déployez des applications avec plusieurs fichiers dex sur des appareils antérieurs à Android 5. |
metrics | Suivez et analysez différentes métriques d'exécution pour votre application. |
palette | Extrayez des palettes de couleurs représentatives à partir d'images. |
Bibliothèque permettant d'ajouter des fonctionnalités de visionnage de PDF dans les applications. | |
percentlayout | Cet artefact et ses classes sont obsolètes. Utilisez plutôt ConstraintLayout et les mises en page associées. |
preference | Créez des écrans de paramètres interactifs sans avoir à interagir avec l'espace de stockage de l'appareil ni à gérer l'interface utilisateur. |
Affichez des photos, des documents et d'autres images depuis votre application. | |
privacysandbox.activity | À FAIRE |
privacysandbox.ads | Cette bibliothèque permet d'intégrer les API de protection de la confidentialité, qui font partie de la Privacy Sandbox sur Android. |
privacysandbox.plugins | Plug-in Gradle de la bibliothèque de SDK de la Privacy Sandbox Android |
privacysandbox.sdkruntime | Cette bibliothèque fournit des composants destinés aux consommateurs qui prennent en compte le SDK Runtime. |
privacysandbox.tools | Bibliothèque permettant d'utiliser les fonctionnalités Privacy Sandbox dans Android |
privacysandbox.ui | À FAIRE |
profileinstaller | Permet aux bibliothèques de préremplir les traces de compilation à l'avance afin qu'elles puissent être lues par ART. |
recommendation | Faites la promotion de contenu sur l'écran d'accueil du Lanceur d'applications Android TV. |
recyclerview | Affichez de grands ensembles de données dans votre interface utilisateur tout en réduisant l'utilisation de la mémoire. |
remotecallback | Créez un wrapper pour permettre aux développeurs de fournir plus facilement un PendingIntent. |
resourceinspection | Affichez 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. |
security | Gérez les clés de manière sécurisée, et chiffrez les fichiers et les préférences partagées. |
sharetarget | Fournissez une rétrocompatibilité pour utiliser les raccourcis en tant que cibles de partage direct. |
slice | Affichez en dehors de votre application des éléments d'interface utilisateur créés à partir d'un modèle. |
slidingpanelayout | Implémentez un modèle d'interface utilisateur de volet coulissant. |
startup | Mettez en œuvre un moyen simple et performant d'initialiser des composants au démarrage de l'application. |
sqlite | Utilisez des bases de données SQLite locales. Si possible, utilisez plutôt Room. |
swiperefreshlayout | Implémentez le modèle d'interface utilisateur "Balayer pour actualiser". |
test.uiautomator | Framework pour les tests fonctionnels de l'interface utilisateur entre applications. |
textclassifier | Identifiez 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. |
transition | Animez des mouvements dans l'interface utilisateur avec des mises en page de début et de fin. |
tv | Fournit aux développeurs les fonctionnalités Compose et Material Design afin de concevoir des applications pour la télévision |
tvprovider | Fournissez des chaînes Android TV. |
vectordrawable | Affichez des graphiques vectoriels. |
versionedparcelable | Fournissez 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. |
viewpager | Affichez les vues ou les fragments dans un format balayable. Si possible, utilisez plutôt viewpager2. |
viewpager2 | Affichez les vues ou les fragments dans un format balayable. |
wear | Créez des applications pour les montres connectées Wear OS by Google. |
wear.compose | Cré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.protolayout | Cette 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.tiles | Créez des applications pour les montres connectées Wear OS by Google. |
wear.watchface | Créez des applications pour les montres connectées Wear OS by Google. |
webkit | Utilisez les API WebView modernes sous Android 5 ou version ultérieure. |
window | Favorise la compatibilité avec différents facteurs de forme d'appareil (appareils pliables, par exemple). |
window.extensions.core | API principales des extensions de la bibliothèque du gestionnaire de fenêtres |
Nouveautés
- 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
Formation de base
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.
Tutoriel pratique
Familiarisez-vous avec trois bibliothèques Jetpack qui simplifient votre couche de données : LiveData, ViewModel et Room.
Exemple d'application Sunflower
Découvrez comment les bibliothèques Jetpack les plus populaires peuvent être utilisées ensemble dans une application en production