emitron (Android)
emitron is the code name for the raywenderlich.com app. This repo contains the code for the Android version of the app.
Contributing
To contribute a feature or idea to emitron, create an issue explaining your idea.
If you find a bug, please create an issue.
If you find a security vulnerability, please contact [email protected] as soon as possible. See SECURITY.md for further details.
There is more info about contributing in CONTRIBUITNG.md.
Development
Currently, only people that hold an active raywenderlich.com subscription may use emitron. Non-subscribers will be shown a "no access" page on login. Subscribers have access to streaming videos, and a subset of subscribers (ones with a "Professional" subscription) is allowed to download videos for offline playback.
Setup
- Copy
gradle.properties.dist
togradle.properties
- Add
google-services.json
toapp
directory from Firebase console.
Secrets Management
emitron requires 2 secrets:
SSO_SECRET
. This is used to ensure secure communication withguardpost
, the raywenderlich.com authentication service. Although this is secret, a sample secret is provided inside this repo. This shouldn't be used to create a beta or production build.APP_TOKEN
. Required in order to enable downloads. This is not provided in the repo, and is not generally available.
NOTE: To get the release build secrets, check the emitron S3 bucket, or contact [email protected]. Developers should never need these, as CI will handle it.
If you are working on the download functionality and are having problems without an APP_TOKEN
, contact [email protected] and somebody will assist you with your specific needs.
For further details, check out CONTRIBUTING.
Continuous Integration & Deployment
emitron uses GitHub Actions to perform continuous integration and deployment. Every PR is built and tested before it can be merged.
- Merges to
development
will create a new build of the emitron β app on Firebase. - Merges to
production
will create a new build of the emitron production app on Google Play Store.