diff --git a/README.md b/README.md new file mode 100644 index 000000000..46b97f91d --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +This repository contains the available extension catalogues for the Tachiyomi app. + +[Download links to be added] + +### Writing an extension + +The easiest way to write and debug an extension is by directly hardcoding it in Tachiyomi's source code. Once it's working there, you have to clone this repository and create a new folder with a similar structure to the other catalogues. Then copy your catalogue implementation and make sure to change the package name if it was different in Tachiyomi. Finally, write the `build.gradle` file, which has the following structure: + +```gradle +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +ext { + appName = "Tachiyomi: My catalogue" + pkgNameSuffix = "lang.mycatalogue" + extClass = ".MyCatalogue" + extVersionCode = 1 + extVersionSuffix = 1 + libVersion = "1.0" +} + +apply from: '../common.gradle' +``` + +* `appName` is the name of the Android application. By prefixing it with `Tachiyomi: `, it will be easier to locate with an Android package manager. +* `pkgNameSuffix` has to be unique, and it's added to `eu.kanade.tachiyomi.extension`. The language and the site should be enough. Remember your catalogue code implementation must be placed in this package. +* `extClass` points to the catalogue class. You can use a relative path starting with a dot (the package name is the base path). This is required for Tachiyomi to instantiate the catalogue. +* `extVersionCode` is the version code of the catalogue and should be increased with any change to the implementation. +* `extVersionSuffix` is the last part of the versioning. +* `libVersion` is the version of the [extensions library](https://github.com/inorichi/tachiyomi-extensions-lib)* used. When this value is changed, `extVersionSuffix` should be reset to `1`. With the example used above, the version of the catalogue would be `1.0.1`. + +\* Note: this library only contains the method definitions so that the compiler can resolve them. The actual implementation is written in Tachiyomi. + +When everything is done, you can create the apk in Android Studio with `Build > Build APK` or `Build > Generate Signed APK`. \ No newline at end of file