Skip to content

14. Annexes

L'installation d'[Android Studio], de l'émulateur et la préparation d'un téléphone sont décrites au chapitre « Mise en place de l'environnement de travail ». Ces annexes complètent ce chapitre.

14.1. Utiliser Android Studio

  • [File / Open] : ouvrir un projet ([exemples_kotlin], [rdvmedecins_kotlin]) ; [Gradle] le « synchronise » (télécharge les bibliothèques) ;
  • le bouton [Run] (ou Maj-F10) installe et lance l'application sur l'appareil choisi dans la barre d'outils ; [Debug] (Maj-F9) la lance avec le débogueur (points d'arrêt, variables) ;
  • [Apply Changes] remplace le code d'une application en cours d'exécution sans la relancer, quand c'est possible ;
  • l'annotation [@Preview] sur une fonction [@Composable] sans paramètre l'affiche dans l'éditeur, sans émulateur ;
  • le « Layout Inspector » ([Tools / Layout Inspector]) montre l'arbre des composants de l'écran en cours, et le nombre de recompositions de chacun ; l'« App Inspection » montre les requêtes réseau ([OkHttp]) et les bases de données ;
  • Alt-Entrée sur une erreur propose des corrections (ajouter un [import]...) ; Ctrl-Alt-L reformate le fichier ;
  • en ligne de commande : [adb devices] (les appareils connectés), [adb reverse tcp:8080 tcp:8080] (le port 8080 de l'appareil relié à celui de l'ordinateur), [adb install fichier.apk] (installer une application), [adb logcat] (le journal du téléphone ; dans [Android Studio], la fenêtre [Logcat]), [emulator -list-avds] puis [emulator -avd Pixel_8] (lancer un émulateur sans [Android Studio]).

14.2. Les copies d'écran de ce document

Les copies d'écran ont été fabriquées automatiquement, par des tests INSTRUMENTÉS : des tests [JUnit] qui s'exécutent SUR l'émulateur, dans le même processus que l'application, et la pilotent par la bibliothèque de test de [Compose] (trouver un composant par son texte, le toucher, y écrire...). Ils sont dans les dossiers [app/src/androidTest] des deux projets : [Captures.kt] (une fonction de test par exemple) et [CapturesCas.kt] (un parcours complet de l'application). Un extrait :

    @Test
    fun parcours() {
        langueFr()
        ActivityScenario.launch(MainActivity::class.java)
        pause(3000)
        seDeconnecter()

        // ---- la connexion
        pause(1000)
        capturer("cas-01")
        saisir("Login", "admin")
        saisir("Mot de passe", "erreur")
        saisir("Recopiez les caractères de l'image", "test")
        bouton("Se connecter").performClick()
        attendre("incorrect", sousChaine = true)
        pause(1000)
        capturer("cas-02")

Les scripts [outils/captures_exemples.bat] et [outils/captures_etude_de_cas.bat] lancent l'émulateur si besoin, compilent et installent l'application et ses tests, préparent l'émulateur (langue, barre d'état en « mode démo »), exécutent les tests ([adb shell am instrument]), puis rapatrient les images. Le serveur JSON doit être lancé, avec [CAPTCHA_TEST=test].

14.3. Installation de Node.js

[Node.js] se télécharge sur nodejs.org : on choisit la version LTS (support à long terme). L'installateur [Windows] installe aussi [npm]. Il n'est nécessaire qu'au serveur JSON. On vérifie l'installation dans une console :

node --version
npm --version

14.4. Installation de MySQL avec Laragon

Le serveur JSON a besoin de [MySQL] (ou [MariaDB]). [Laragon] (laragon.org) en installe un sous [Windows], prêt à l'emploi, avec l'outil d'administration [HeidiSQL]. Après installation :

  • le bouton « Démarrer tout » lance le serveur [MySQL], sur le port 3306 ;
  • l'utilisateur [root] n'a pas de mot de passe : ce sont les valeurs par défaut du fichier [.env.example] du serveur ;
  • dans [HeidiSQL] (bouton « Base de données »), le menu Fichier / Exécuter un fichier SQL exécute le script [database/dbrdvmedecins2.sql].

Sous [Linux] ou [macOS], on installe [MySQL] ou [MariaDB] avec le gestionnaire de paquets du système, et l'on exécute le script avec le client en ligne de commande : [mysql -u root -p < database/dbrdvmedecins2.sql].

14.5. Installation de curl

[curl] est livré avec [Windows] 10 et 11, [macOS] et la plupart des distributions [Linux]. On vérifie sa version :

curl --version

L'option [--json], utilisée dans ce document, existe depuis la version 7.82 (2022). Avec une version plus ancienne, on remplace [--json @fichier] par [-H "Content-Type: application/json" -d @fichier], ou l'on installe une version récente depuis curl.se.

Sous [PowerShell], il faut taper [curl.exe] et non [curl] : dans [PowerShell], [curl] est un alias d'une autre commande ([Invoke-WebRequest]), qui ne comprend pas les options de [curl]. L'invite de commandes ([cmd]) n'a pas ce problème.