Skip to content

Repository files navigation

Clementine Remote for iOS

Clementine Remote controls the Clementine music player on your computer from your iPhone or iPad, over your local network. It does what the Android remote does: play and pause, browse and search your library, browse Clementine's internet services (radio stations, Jamendo, Subsonic, Plex and the rest), manage playlists, read lyrics, rate songs, download songs to your phone, and play Clementine's music on your phone instead of your computer (remote streaming).

You need Clementine 1.3 or later, with Tools → Preferences → Network Remote turned on.

The design is in design/DESIGN.md.

Building

Needs Xcode 26 or later and XcodeGen.

scripts/build.sh          # regenerate the Xcode project and build for the simulator
scripts/build.sh test     # run the tests

The Xcode project is generated from project.yml; after changing that file, run xcodegen generate. ClementineKit (in Packages/) holds everything that doesn't need a screen, and its tests also run with swift test.

Screenshots

On pull requests that change the app, .github/workflows/screenshots.yml takes screenshots of every main screen, light and dark, and posts them on the pull request next to main's, as the Android remote does. The app runs on a simulator against a real Clementine: its latest macOS release, playing the showcase library in clementine-it/. UITests/Screenshots.swift drives the app; without Clementine's address it skips itself, so scripts/build.sh test doesn't run it. To run it locally, with a Clementine set up by clementine-it/start-clementine.sh:

TEST_RUNNER_CLEMENTINE_HOST=127.0.0.1 TEST_RUNNER_SCREENSHOTS_DIR=$PWD/screenshots \
    scripts/build.sh test -only-testing:ClementineRemoteUITests/Screenshots

For the dark screenshots, run it again with the simulator dark (xcrun simctl ui booted appearance dark) and TEST_RUNNER_SCREENSHOTS_PREFIX=dark_.

The comment needs a Cloudflare R2 bucket to host the images: the workflow's header says which secrets and variables to set. Without them, the screenshots are only the run's artifact.

Scripts

scripts/generate-proto.sh regenerates the protocol code from Packages/ClementineKit/Proto/remotecontrolmessages.proto, and scripts/import-android-translations.py imports the Android remote's translations.

Licence

GNU GPL v3; see LICENSE. The remote control protocol is under the Apache License 2.0.

About

Control the Clementine music player from your iPhone

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages