Mobile apps running on top of battery-limited devices are more than others concerned by the reduction of their environmental footprint. Hence, we created ecoCode mobile, the version of ecoCode project fully dedicated to mobile platforms. It provides static code analyzers to highlight code structures that may have a negative ecological impact: energy over-consumption, "fatware", shortening devices' lifespan, etc.
ecoCode mobile is based on evolving catalogs of best practices, for Android and iOS. A SonarQube plugin then implements these catalogs as rules for scanning your projects. To learn more, take a look at the complete presentation (in french) or the presentation in a nutshell (in english).
2 mobile technologies are supported by the plugin right now:
The custom GUI above is reserved to educational purpose only.
A SonarQube container image with ecoCode mobile embedded exists !
docker run -ti --rm \
-v sq_ecocode_mobile_logs:/opt/sonarqube/logs \
-v sq_ecocode_mobile_data:/opt/sonarqube/data \
-p 9000:9000 \
--name sonarqube-ecocode-mobile \
ghcr.io/green-code-initiative/sonarqube-ecocode-mobile:latestWait a little bit during first start initialization, and go to http://localhost:9000. Default credentials are admin/admin
If you use ecoCode in an academic work we would be really glad if you cite our seminal paper using the following bibtex entry:
@inproceedings{10.1145/3551349.3559518,
author = {Le Goaer, Olivier and Hertout, Julien},
title = {EcoCode: A SonarQube Plugin to Remove Energy Smells from Android Projects},
year = {2023},
isbn = {9781450394758},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3551349.3559518},
doi = {10.1145/3551349.3559518},
booktitle = {37th IEEE/ACM International Conference on Automated Software Engineering},
articleno = {157},
numpages = {4},
keywords = {android, energy, smells, debt, quality, battery},
location = {Rochester, MI, USA},
series = {ASE22}
}Ready to use binaries are available from GitHub.
| Plugins Version | SonarQube version |
|---|---|
| 0.0.+ | SonarQube 8.9.+ LTS to 9.3 |
| 0.1.+ | SonarQube 9.4.+ LTS to 9.9 |
| 1.0.+ | SonarQube 9.4.+ LTS to 9.9 |
| Plugins Version | Java version |
|---|---|
| 0.0.+ | 11 / 17 |
| 0.1.+ | 11 / 17 |
| 1.0.+ | 11 / 17 |






