Looking to report an issue/bug or make a feature request? Please refer to the README file.
Thanks for your interest in contributing to Tachiyomi!
Pull requests are welcome!
If you're interested in taking on an open issue, please comment on it so others are aware. You do not need to ask for permission nor an assignment.
Before you start, please note that the ability to use following technologies is required and that existing contributors will not actively teach them to you.
- Basic Android development
- Kotlin
- Android Studio
- Emulator or phone with developer options enabled to test changes.
To auto-fix some linting errors, run the ktlintFormat
Gradle task.
- Join the Discord server for online help and to ask questions while developing.
Translations are done externally via Weblate. See our website for more details.
Forks are allowed so long as they abide by the project's LICENSE.
When creating a fork, remember to:
- To avoid confusion with the main app:
- Change the app name
- Change the app icon
- Change or disable the app update checker
- To avoid installation conflicts:
- Change the
applicationId
inbuild.gradle.kts
- Change the
- To avoid having your data polluting the main app's analytics and crash report services:
- If you want to use Firebase analytics, replace
google-services.json
with your own - If you want to use ACRA crash reporting, replace the
ACRA_URI
endpoint inbuild.gradle.kts
with your own
- If you want to use Firebase analytics, replace
- Go to Google Cloud Console
- Create a new project
- Go to API & Services -> Library -> Google Drive API and click enable
- Go to API & Services -> Oauth consent screen
- Create it, fill in the app name, user support email, and developer contact information
- In the next screen, click add or remove scopes, and add the
.../auth/drive.appdata
and.../auth/drive.file
scopes - Don't add any test users and go back to the dashboard
- Click publish
- Go to API & Services -> Credentials
- Click Create credentials -> Oauth client ID
- Select Android, give it a name, and set
eu.kanade.google.oauth
as the package name - To get the SHA-1 key, run
keytool -printcert -jarfile app-standard-universal-release.apk
on your apk, and copy the listed SHA-1 - Expand advanced settings, and enable Custom URL scheme
- After that just download the json, name it to
client_secrets.json
and put it inapp/src/main/assets/