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).
🌿 SonarQube Plugin
2 mobile technologies are supported by the plugin right now:
NOTE: iOS plugin has moved to it own repository here.
The custom GUI above is reserved to educational purpose only.
🚀 Quickstart
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:latest
Wait a little bit during first start initialization, and go to http://localhost:9000. Default credentials are admin
/admin
🤝 Partners
📢 Cite this work
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}
}
🛒 Distribution
Ready to use binaries are available from GitHub.
🧩 Plugins version compatibility
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 |
☕ Plugin Java part compatibility
Plugins Version | Java version |
---|---|
0.0.+ | 11 / 17 |
0.1.+ | 11 / 17 |
1.0.+ | 11 / 17 |