Développement de code itératif

En tant que développeur d'applications mobiles, vous développez souvent l'interface utilisateur de votre application étape par étape que de tout développer en même temps. Android Studio adopte cette approche avec Jetpack Compose en fournissant des outils dont l'inspection ne nécessite pas de compilation complète. modifier les valeurs et vérifier le résultat final.

Modification en temps réel

La fonctionnalité de modification en temps réel vous permet de mettre à jour des composables dans des émulateurs et des appareils physiques en temps réel. Cette fonctionnalité minimise les changements de contexte entre l'écriture et la création de l'application, ce qui vous permet de vous concentrer sur l'écriture du code plus longtemps sans interruption.

La fonctionnalité de modification en temps réel propose trois modes:

  • Manuel: les modifications du code sont appliquées lorsqu'elles sont transmises manuellement à l'aide de Ctrl+' (Cmd+' sous macOS)
  • Enregistrement manuel: les modifications de code sont appliquées lorsqu'elles sont enregistrées manuellement à l'aide de Ctrl+S (Cmd+S sous macOS).
  • Automatique: les modifications sont appliquées sur votre appareil ou dans votre émulateur lorsque vous mettez à jour fonction composable.

La fonctionnalité de modification en temps réel se concentre sur les modifications de code liées à l'UI et à l'expérience utilisateur. Cette fonctionnalité ne prend pas en charge les modifications telles que les mises à jour de signature de méthode, l'ajout de nouvelles méthodes ou les modifications de hiérarchie des classes. Pour en savoir plus, consultez la liste des limites de la fonctionnalité de modification en temps réel.

Cette fonctionnalité ne remplace pas la création et l'exécution de votre application, ni l'option Apply Changes (Appliquer les modifications). Elle est conçue pour optimiser votre workflow lorsque vous compilez, déployez et itérez une application afin de développer l'UI Compose.

Le workflow recommandé est le suivant :

  1. Configurez votre application pour qu'elle puisse être exécutée.
  2. Utilisez "Live Edit" (Modification en temps réel) autant que possible, jusqu'à ce que vous ayez besoin d'apporter une modification non prise en charge par cette fonctionnalité, comme l'ajout de nouvelles méthodes, lorsque l'application est en cours d'exécution.
  3. Après avoir effectué une modification non compatible, cliquez sur Run (Exécuter) Exécuter
icône pour redémarrer. votre application et reprendre la fonctionnalité de modification en temps réel.

Premiers pas avec la fonctionnalité "Live Edit" (Modification en temps réel)

Pour commencer, suivez ces étapes afin de créer une activité Compose vide, activez Utilisez la fonctionnalité "Modification en temps réel" pour votre projet.

Configurer votre nouveau projet

  1. Avant de commencer, vérifiez que vous disposez d'Android Studio Giraffe ou d'une version ultérieure et que le niveau d'API de l'appareil ou de l'émulateur est d'au moins 30.

  2. Ouvrez Android Studio et sélectionnez New Project (Nouveau projet) dans la boîte de dialogue Welcome to Android Studio (Bienvenue dans Android Studio). Si vous avez déjà ouvert un projet, vous pouvez en créer un en accédant à Fichier > Nouveau > Nouveau projet :

  3. Choisissez le modèle Empty Compose Activity (Activité Compose vide) pour Phone and Tablet (Téléphone et tablette), puis cliquez sur Next (Suivant).

    Sélection d'un modèle dans Android Studio
    Figure 1 Modèles disponibles. Pour la modification en temps réel, choisissez Empty Compose Activity (Activité Compose vide).
  4. Dans la boîte de dialogue New Project (Nouveau projet), renseignez les informations requises : nom, nom du package, emplacement d'enregistrement, SDK minimal et langage de la configuration de compilation.

    Exemples de paramètres de projet de l'étape 4 saisis dans Android Studio
    Figure 2 Exemples de paramètres de projet
  5. Cliquez sur Terminer.

Activer la fonctionnalité de modification en temps réel

  1. Accédez aux paramètres pour activer la modification en temps réel.

    • Sous Windows ou Linux, accédez à File > Settings > Editor > Live Edit (Fichier > Paramètres > Éditeur > Modification en temps réel).
    • Sous macOS, accédez à Android Studio > Settings > Editor > Live Edit (Android Studio > Paramètres > Éditeur > Modification en temps réel).
  2. Sélectionnez l'option Live Edit (Modification en temps réel), puis choisissez le mode que vous souhaitez exécuter dans les paramètres.

    En mode manuel, les modifications de code sont appliquées chaque fois que vous appuyez sur Ctrl+' (Cmd+' sous macOS). En mode manuel activé les modifications de code sont appliquées chaque fois que vous enregistrez manuellement, appuyez sur Ctrl+S (Cmd+S sur macOS). En mode automatique, les modifications de code sont appliquées à mesure que vous apportez vos modifications.

    UI de la case à cocher "Live Edit" (Modification en temps réel) dans les paramètres d'Android Studio
    Figure 3 Paramètres de la fonctionnalité de modification en temps réel.
  3. Dans l'éditeur, ouvrez le fichier MainActivity correspondant au point d'entrée de votre application.

  4. Cliquez sur Run (Exécuter) Bouton d'UI pour déployer votre application.

  5. Une fois que vous avez activé la fonctionnalité de modification en temps réel, la coche verte À jour s'affiche dans en haut à droite de la fenêtre d'outil Running Devices (Appareils en cours d'exécution) :

    Coche verte "Live Edit" (UI)

Apporter des modifications et les examiner

Lorsque vous apportez des modifications compatibles dans l'éditeur, l'appareil de test virtuel ou physique se met à jour automatiquement.

Par exemple, remplacez la méthode Greeting existante dans MainActivity par la suivantes:

@Composable
fun Greeting(name: String) {
    Text(
        text = "Hello $name!",
        Modifier
            .padding(80.dp) // Outer padding; outside background
            .background(color = Color.Cyan) // Solid element background color
            .padding(16.dp) // Inner padding; inside background, around text)
    )
}

Vos modifications s'affichent instantanément sur l'appareil de test, comme illustré dans la figure 4.

Modifications apportées à la méthode d'accueil d'un appareil
Figure 4. Appareil de test affichant les modifications en temps réel apportées à Greeting.

Résoudre les problèmes liés à la fonctionnalité "Live Edit" (Modification en temps réel)

Si vos modifications ne s'affichent pas sur l'appareil de test, il est possible qu'Android Studio ait échoué pour mettre à jour vos modifications. Vérifiez si l'indicateur Obsolète, comme illustré dans la figure 5, qui indique une erreur de compilation. Pour en savoir plus sur l'erreur et obtenir des suggestions sur sa résolution, cliquez sur l'indicateur.

Icône "Out of date" (Obsolète) de la fonctionnalité de modification en temps réel
Figure 5. Indicateur d'état de la fonctionnalité de modification en temps réel.

Limites de la fonctionnalité "Live Edit" (Modification en temps réel)

Voici la liste des limites actuelles.

  • [S'applique uniquement à Android Studio Giraffe et versions ultérieures] La fonctionnalité de modification en temps réel nécessite Compose Runtime 1.3.0 ou version ultérieure. Si votre projet utilise une version antérieure de Compose, la fonctionnalité de modification en temps réel est est désactivé.

  • [S'applique uniquement à Android Studio Giraffe et versions ultérieures] La fonctionnalité de modification en temps réel nécessite AGP 8.1.0-alpha05 ou plus élevée. Si votre projet utilise une version antérieure de l'AGP, la modification en temps réel est désactivée.

  • La fonctionnalité de modification en temps réel nécessite un appareil physique ou un émulateur qui exécute un niveau d'API 30 ou supérieure.

  • La fonctionnalité "Live Edit" prend uniquement en charge la modification d'un corps de fonction Vous ne pouvez donc pas modifier le nom ou la signature de la fonction, ajouter ou supprimer une fonction, ni modifier des champs non fonctionnels.

  • La modification en temps réel réinitialise l'état de l'application la première fois que vous modifiez une fonction Compose dans un fichier. Cela ne se produit qu'après le premier changement de code. L'état de l'application n'est pas par les modifications de code ultérieures que vous apportez aux fonctions Compose de ce fichier.

  • Les classes modifiées par la fonctionnalité de modification en temps réel peuvent altérer les performances. Exécutez votre application et utilisez une version "propre" si vous évaluez son performances.

  • Vous devez effectuer une exécution complète pour que le débogueur fonctionne sur les classes que vous ont été modifiés à l'aide de la fonctionnalité de modification en temps réel.

  • Une application en cours d'exécution peut planter lorsque vous la modifiez à l'aide de la fonctionnalité de modification en temps réel. Dans ce cas, Vous pouvez redéployer l'application à l'aide du bouton Run (Exécuter) Bouton d'UI.

  • La fonctionnalité de modification en temps réel n'effectue aucune manipulation de bytecode définie dans votre le fichier de compilation du projet (par exemple, une manipulation du bytecode qui serait appliquée lors de la compilation du projet à l'aide des options du menu Build (Compiler) ou en cliquant sur les boutons Build (Compiler) ou Run (Exécuter).

  • Les fonctions non composables sont mises à jour en temps réel sur l'appareil ou l'émulateur, et une une recomposition complète est déclenchée. Cette recomposition complète n'appelle pas systématiquement la fonction mise à jour. Pour les fonctions non modulables, vous devez déclencher les fonctions récemment mises à jour ou exécuter à nouveau l'application.

  • La fonctionnalité de modification en temps réel n'est pas réactivée au redémarrage de l'application. Vous devez exécuter à nouveau l'application.

  • La fonctionnalité "Live Edit" (Modifications en temps réel) n'est compatible qu'avec les processus débogables.

  • La fonctionnalité de modification en temps réel n'est pas compatible avec les projets qui utilisent des valeurs personnalisées pour moduleName sous kotlinOptions dans la configuration de compilation.

  • La fonctionnalité de modification en temps réel n'est pas compatible avec les multidéploiements. En d'autres termes, vous ne pouvez pas effectuer de déploiement sur un appareil, puis sur un autre. La fonctionnalité de modification en temps réel n'est active que sur du dernier ensemble d'appareils sur lesquels l'application a été déployée.

  • La fonctionnalité de modification en temps réel fonctionne avec les déploiements multi-appareils (déploiements sur plusieurs appareils créés via Sélectionner plusieurs appareils dans la cible le menu déroulant des appareils). Cependant, il n'est pas officiellement compatible et il se peut que les problèmes de performances. En cas de problème, veuillez les signaler.

  • Les options "Apply Changes" (Appliquer les modifications) et "Apply Code Changes" (Appliquer les modifications du code) ne sont pas compatibles avec la fonctionnalité "Modification en temps réel". et exigent le redémarrage de l'application en cours d'exécution.

  • Actuellement, la fonctionnalité de modification en temps réel n'est pas compatible avec les projets Android Automotive.

Questions fréquentes sur la fonctionnalité "Live Edit" (Modification en temps réel)

  • Quel est l'état actuel de la fonctionnalité de modification en temps réel ?

    La modification en temps réel est disponible dans Android Studio Giraffe. Pour l'activer, accédez à Fichier > Paramètres > Éditeur > Modification en temps réel (Android Studio > Paramètres > Éditeur > Modification en temps réel sous macOS).

  • Quand utiliser la fonctionnalité de modification en temps réel ?

    Utilisez la fonctionnalité de modification en temps réel lorsque vous souhaitez voir rapidement l'effet des mises à jour de l'expérience utilisateur des éléments (tels que les mises à jour et les animations de modificateurs) sur l'ensemble de l'application. expérience.

  • Quand dois-je éviter d'utiliser la fonctionnalité de modification en temps réel ?

    La fonctionnalité de modification en temps réel se concentre sur les modifications de code liées à l'UI et à l'expérience utilisateur. Il n'est pas compatible modifications telles que la mise à jour de la signature des méthodes, l'ajout de méthodes ou la classe les changements de hiérarchie. Pour en savoir plus, consultez la section Limites de Live Modifier.

  • Quand utiliser l'aperçu de Compose ?

    Utilisez l'aperçu de Compose lorsque vous développez des composables individuels. Aperçu permet de visualiser les éléments Compose et s'actualise automatiquement pour afficher l'effet des modifications du code. L'aperçu permet également d'afficher les éléments d'interface utilisateur sous configurations et états différents, tels que le thème sombre, les paramètres régionaux et la police à grande échelle.

Modification en temps réel de littéraux (obsolète)

Android Studio peut mettre à jour en temps réel certains littéraux constants utilisés dans les composables dans les aperçus, l'émulateur et l'appareil physique. Voici quelques types pris en charge :

  • Int
  • String
  • Color
  • Dp
  • Boolean

Vidéo de l'utilisateur modifiant les littéraux dans le code source et aperçu
en cours de mise à jour...
dynamiquement

Vous pouvez afficher des littéraux constants qui déclenchent des mises à jour en temps réel sans utiliser de compilation en activant les décorations littérales via la modification en temps réel de Indicateur d'interface utilisateur de littéraux:

Activation de la modification en direct de
Littéraux

Appliquer les modifications

L'option Apply Changes (Appliquer les modifications) vous permet de mettre à jour le code et les ressources sans avoir à redéployer votre application sur un émulateur ou sur un appareil physique (avec certains limites).

Chaque fois que vous ajoutez, modifiez ou supprimez des composables, vous pouvez mettre à jour votre application sans avoir à redéployer le code en cliquant sur le bouton Apply Code Changes (Appliquer les modifications du code) :

Utilisateur cliquant sur "Appliquer les modifications"
bouton