This document specify hints and good practices for source code contributions.
AndroidAPS is community effort and all contributions are welcome! If you wish help us improving AAPS - please read and try to adhere to this guidelines, to make the development and process of change approval as smooth as possible :)
- There are plenty of ways you can help, some of them are listed on wiki: https://wiki.aaps.app/en/latest/SupportingAaps/HowCanIHelp.html
- If you wish to help with documentation or translating: https://wiki.aaps.app/en/latest/SupportingAaps/Translations.html
- Use Android Studio with default indents (4 chars, use spaces)
- Use autoformat feature CTRL-ALT-L in every changed file before commit
- Make a fork of repository on GitHub (be aware to uncheck the box "Copy the master branch only")
- Create separate branch for each feature, branch from most recent dev
- Commit all changes to your fork
- When ready, rebase on top of dev and make Pull Request to main repo
TODO
- If possible, always use Android translation mechanism (with strings.xml and @strings/id) instead of hardcoded texts
- Provide only English strings - all other languages will be crowd translated via Crowdin (https://crowdin.com/project/androidaps and https://crowdin.com/project/androidapsdocs)
- Start small, it is easier to review smaller changes that affect fewer parts of code
- Take a look into Issues list (https://github.com/nightscout/AndroidAPS/issues) - maybe there is something you can fix or implement
- For new features, make sure there is Issue to track progress and have on-topic discussion
- Reach out to community, discuss idea on Discord (https://discord.gg/4fQUWHZ4Mw)
- Speak with other developers to minimize merge conflicts. Find out who worked, working or plan to work on specific issue or part of app