roc-streaming / roc-droid

Roc for Android!
https://roc-streaming.org
Mozilla Public License 2.0
79 stars 23 forks source link
android audio hacktoberfest networking real-time streaming

Roc for Android!

Build GitHub release Matrix chat

Android app implementing Roc sender and receiver. Work in progress!

Features:

Download

<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" alt="Get it on F-Droid" height="80"> <img src="https://gitlab.com/IzzyOnDroid/repo/-/raw/master/assets/IzzyOnDroid.png" alt="Get it on F-Droid" height="80">

Screenshot

Features

Key features of Roc Toolkit streaming engine, used by Roc Droid:

Compatible senders and receivers include:

Donations

If you would like to support the project financially, please refer to this page. This project is developed by volunteers in their free time, and your donations will help to spend more time on the project and keep it growing.

Thank you!

Donate using Liberapay

Building

The app uses Java bindings for Roc Toolkit. You don't need to install them manually; gradle will automatically download AAR from maven central, which contains both libroc and Java bindings built for all Android ABIs.

The easiest way to build the app is using Android Studio.

Alternatively, you can build and deploy APK from command-line.

Build:

./gradlew build

Install to device:

adb install app/build/outputs/apk/debug/roc-droid-*.apk

Development

To check code style use:

./gradlew spotlessCheck

To apply code style use:

./gradlew spotlessApply

To check consistency of version name and code:

./gradlew checkVersion

Signing

Keystore with certificates was generated using this command:

keytool -genkey -v -keystore roc-droid.jks -alias apk -keyalg RSA -keysize 2048 -validity 10000

Then it was encoded to base64:

base64 roc-droid.jks

Then the following secrets were added to the repo:

GitHub actions decode SIGNING_STORE_BASE64 into a temporary .jks file and set SIGNING_* environment variables with the name of the file and credentials.

Then the following command is run:

./gradlew assembleRelease

It reads credentials from the environment variables and signs release APK using them.

Release

To release a new version:

Authors

See here.

License

MPL-2.0