Assurez-vous d'avoir :
Plutôt que de démarrer de zéro, nous allons récupérer des projets (écrits en Java natif) réalisés par des étudiant.e.s dans le cadre du cours Android du Master 2 Informatique de l'UPPA.
Pour importer le projet (du + ancien au + récent) de votre choix dans Android Studio, sur l'écran d'accueil, choisissez Get from Version Control et saisissez son URL :
https://git.univ-pau.fr/summer-school/QuelPrixImmo.git
(il faut lui octroyer manuellement la permission de géolocalisation dans Paramètres > Applications, sinon crash)https://git.univ-pau.fr/summer-school/uppamaps.git
https://git.univ-pau.fr/summer-school/boaviztapp.git
https://git.univ-pau.fr/summer-school/fueltoday.git
Patience. Attendez que toutes les tâches visibles en bas à droite de la fenêtre Android Studio soit terminées avant d'entreprendre quoi que ce soit.
Après avoir connecté votre smartPhone, déployez et lancez l'application via la flèche verte dans la barre d'outils (⯈). Constatez que tout fonctionne.
1) Dans le fichier build.gradle
de votre application (celui du Module, pas du Project), rajoutez le plugin sonar à l'existant, comme suit :
plugins {
...
id 'org.sonarqube' version '3.0'
...
}
Pour forcer SonarQube à analyser davantage que du code source Java/Kotlin (ex: fichiers Gradle ou Properties) et pour exclure de l'analyse ce qui ne présente pas d'intérêt dans un projet Android, rajoutez aussi ces lignes :
sonarqube {
properties {
property "sonar.sources", "."
property "sonar.exclusions", "build/**, **/test/**, **/androidTest/**"
}
}
2) Puis, dans le fichier gradle.properties
du projet, ajoutez les lignes suivantes, en les adaptant à votre nom (pour éviter les conflits) :
# Instance SonarQube de démonstration
systemProp.sonar.host.url=https://sonarqube.ecocode.io
systemProp.sonar.projectKey=_votre_pseudo_ici_
systemProp.sonar.projectName=_votre_pseudo_ici_
#----- Token généré pour ce tutoriel
systemProp.sonar.login=046a547e2e90271edb4a4d15fcffdc0401c277ea
Nous allons créer un tâche spéciale Gradle pour pousser le code de notre projet vers le serveur ecocode.io
qui héberge une instance SonarQube de démonstration en mode SaaS.
Dans le menu en haut d'Android Studio, choisissez Run > Edit Configurations. Dans la fenêtre qui est apparue, cliquez sur + en haut à gauche et choisissez Gradle dans la liste.
Dans le champs Name, entrez par exemple "Review with ecoCode.io". Dans le champs Gradle project sélectionnez votre projet, et dans le champs Run saisissez "(:app:)sonarqube". Enfin, cliquez sur Apply puis OK. Voilà, votre nouvelle configuration pour l'analyse est prête.
Pour lancer cette tâche à tout moment, dans la barre d'outils rapides d'Android Studio, basculez de la configuration actuelle "app" à celle "Analyse with ecocode.io". Appuyez sur la flèche verte à droite (⯈).
Avec votre navigateur web préféré, rendez-vous sur https://sonarqube.ecocode.io/
Sur la page, cliquez sur More Options (et non pas Log In with GitLab !). Un formulaire de connexion apparait :
summer-school
Hf6kt
Retrouvez votre projet dans la liste des projets analysés. Cliquez dessus pour consulter le résultat de l'analyse (notamment le nombre de code smells détectés). Les règles actuellement supportées par l'instance ecoCode sont consultables ici.
A l'aide des résultats de l'analyse et guidé par l'enseignant, modifier le code source qui peut l'être afin d'obtenir un meilleur score écologique.
Assurez-vous régulièrement que l'app fonctionne toujours correctement avec vos correctifs. Pour cela, basculez de la configuration actuelle à "app". Appuyez sur la flèche verte (⯈).
Parfois, il ne suffit pas de corriger les défauts; il est nécessaire de repenser le fonctionnement de son app différemment. Prenez le cas de l'app Coin Coin (https://git.univ-pau.fr/summer-school/coincoin.git
), qui récupère quelques valeurs (en dollar exclusivement) de cryptomonnaies par une API, et exploite une autre API pour convertir ces valeurs en euros, au taux de change actuel. Utilisez ecoCode pour detecter ce qui ne va pas, puis proposez une solution alternative.