Play Roon the community way
Community Remote has a focus on use-cases not covered by the official Roon Remote. Linux support is the obvious one, others are access control, random album playback and more.
Community Remote is in early development. To be able to use it, things like, Android sideloading, Windows security warnings, etc. should not scare you off.
Currently supported platforms are Linux, Android and Windows.
The project is named Community Remote to emphasize that, in order to have maximum platform support, community collaboration is necessary.
The Community Remote consists out of three main buidling blocks.
The Rust Roon Api provides the backend that takes care of the communication with the Roon Server. It takes care of requesting the data that is made visible in the UI and provides control actions that can be triggered from the UI.
https://github.com/TheAppgineer/rust-roon-api
The frontend is developed in Flutter / Dart, this brings multi platform from a single code base. The out of the box functionalities, like Material Design, take care of quick development and a consistent look. Flutter uses the Dart programming language.
To bridge the gap between the Dart frontend and the Rust backend the Flutter Rust Bridge is used. This generates the glue code to call Rust functions from Flutter / Dart and bring data from the Rust backend to the Flutter frontend.
https://cjycode.com/flutter_rust_bridge
https://docs.flutter.dev/get-started/install
Visit rustup.rs and follow the provided instructions.
cargo install 'flutter_rust_bridge_codegen@^2.0.0'
flutter_rust_bridge_codegen generate
A debug build can be built and run from Visual Studio Code.
To build for Linux
flutter build linux --release
To build an apk for Android
flutter build apk --release
To build for Windows
flutter build windows --release