HeliBoard project is based on Gradle and Android Gradle Plugin. To get started, you can install Android Studio, and import project 'from Version Control / Git / Github' by providing this git repository URL (or git SSH URL). Of course you can also use any other compatible IDE, or work with text editor and command line.
Once everything is up correctly, you're ready to go!
HeliBoard is a complex application, when contributing, you must take a step back and make sure your contribution:
- Is actually wanted. Best check related open issues before you start working on a PR. Issues with "PR" and "contributor needed" labels are accepted, but still it would be good if you announced that you are working on it, so we can discuss how changes are best implemented. If there is no accepted issue related to your intended contribution, it's a good idea to open a new one to avoid disappointment of the contribution not being accepted. For small changes or fixing obvious bugs this step is not necessary.
- Is only about a single thing. Mixing unrelated or semi-related contributions into a single PR is hard to review and can get messy.
- Is finished or a draft. When you keep changing the PR without reviewer's feedback, any attempt to review it is doomed and a waste of time. Better mark it as a draft in this case.
- Has a proper description. What your contribution does is usually less obvious to reviewers than for yourself. A good description helps a lot for understanding what is going on, and for separating wanted from unintended changes in behavior. Therefore the changes should be as described, not more and not less.
- Uses already in-place mechanism and take advantage of them. In other terms, does not reinvent the wheel or uses shortcuts that could alter the consistency of the existing code. The contribution should only add as little complexity as necessary, the code is overly complicated already 😶.
- Has a low footprint. Some parts of the code are executed very frequently, and the keyboard should stay responsive even on older devices.
- Does not bring any non-free code or proprietary binary blobs. This also applies to code/binaries with unknown licenses. Make sure you do not introduce any closed-source library from Google. If your contribution contains code that is not your own, provide a link to the source.
- Complies with the user privacy principle HeliBoard follows.
(and leave dependency upgrades to the maintainers, unless it's an actual security issue) In addition to previous elements, HeliBoard must stick to F-Droid inclusion guidelines.
See layouts.md for how to add new layouts to the app. Please stay in line with other layouts regarding the popup keys.
When editing existing layouts, please consider that people should should still get what they're used to. In case of doubt it might be better to add a new layout instead of overhauling existing layouts.
See make-emoji-keys tool README.
Translations can be added using Weblate. You will need an account to update translations and add languages. Add the language you want to translate to in Languages -> Manage translated languages in the top menu bar. Updating translations in a PR will not be accepted, as it may cause conflicts with Weblate translations.
No new dictionaries will be added to this app. Please submit dictionaries and the wordlist to the dictionaries repository