Table of Contents
Build
To build a unsigned apk of the app just do ./gradlew assembleRelease
.
Version Name & Version Code
We map the version name to the versioncode. The version code follows this scheme: nnrrmmm
,
- Release: versionName: "0.6.0" -> versionCode: 0006000 = 00.06.000
- Release: versionName: "0.6.1" -> versionCode: 0006100 = 00.06.100
- RC: versionName: "0.6.0-RC1" -> versionCode: 00059xx (from beta)
- Beta: versionName: "0.5.90" -> versionCode: 0005900 = 00.05.x90
- Alpha: versionName: "0.5.80" -> versionCode: 0005800 = 00.05.x80
A beta release will always be version "n.r.m9x". There is a total of 10 "Beta" version names (n.r.m90 to n.r.m99). The beta version codes will start at nnppm00
. The RC phase the version name is always "VERSION-RCX". The version code will be increased as with the beta versions. A final major release will be nnrr000
.
n: 0 (currently not used)
r: the release number
m: minor version
p: previous version
! gradle does not support leading 0s
Architecture
Here you can find some information about the Teapod architecture. Information about the Parser can be found on another site.
Activities
Teapod uses a multi activity architecture. It is recommended not to use more activities than needed, but currently there are no other options than using multiple activities to support all needed features.
- OnboardingAvtivity: Contains the on-boarding and login functions (currently only Crunchyroll)
- MainActivity: As the name suggests, this contains the main GUI
- PlayerActivity: all player relates stuff goes here, separate activity to allow pip
Used Libraries
- AndroidX: https://developer.android.com/jetpack/androidx
- Material Components for Android: https://github.com/material-components/material-components-android
- Material design icons: https://github.com/google/material-design-icons
- ExoPlayer: https://github.com/google/ExoPlayer
- ktor: https://github.com/ktorio/ktor
- kotlinx.coroutines: https://github.com/Kotlin/kotlinx.coroutines
- kotlinx.serialization : https://github.com/Kotlin/kotlinx.serialization
- Glide: https://github.com/bumptech/glide
- Glide Transformations: https://github.com/wasabeef/glide-transformations