What's new and changed
Plugins
Plugin support has been added to Cider.
Cider now provides a proper plugin API that allows developers to create plugins that can interact with the main application and the Apple Music API.
Custom UI elements are handled with the Web Components API. Our template plugin can be found here: https://github.com/ciderapp/plugin-template-wip
This template uses Vite and Vue 3 to create a plugin that can be loaded into Cider.
- Plugin Vue components can now use a variety of Cider's components with more to be added as time goes on.
- Cider components can be used by using
<CComponent>
- List of available components https://github.com/ciderapp/plugin-template-wip/blob/main/src/api/ComponentNames.ts
- We plan on better documentation and TypeScript prop types later on
- Cider components can be used by using
Themes
Theme support has been finalized and is now available in the extensions section of Settings.
ThemeKit which was previously an external utility in Cider 2.4 has been integrated directly into the client.
To get started click Create New Theme in the theme settings and a base theme setup will be created for you.
This version of ThemeKit uses PostCSS for the latest CSS features, and features hot reloading available at the click of a button.
Our ThemeKit repository can be found here, where you can find the latest documentation and examples: https://github.com/ciderapp/cider-themekit
Cider Marketplace
Where will you get these plugins and themes? The Cider Marketplace!
The Cider Marketplace is available to view at: https://marketplace.cider.sh/ and also available in the client under the Extensions section of Settings.
Immersive Updates
- Improved how max brightness works for the background, colors are now better preserved and retain vibrancy with lower max brightness.
- Changed menu from a dropdown into a pop out side panel
- Plugins can now make custom Immersive styles!
New Cross-Platform Client Strategy
Our new crossplatform client strategy is to use a shared backend component for platform specific clients. This portable shared component which we internally refer to as Iznamai, is a JavaScript library that provides several backend services to the client. Such as:
- Shared REST and Socket.IO API between clients
- Discord RPC logic
- Last.FM logic
- Plugin and Theme management
- Various external integrations
- Accelerated off-thread operations
This shared component can also be updated with OTA updates, allowing us a ton of oppertunities to improve the client and API's without needing to release a new full client version.
Windows Client
The Windows client has been rewritten (again) using .NET 8, WebView2, and WPF.
Allowing us to take full advantage of the latest native Windows features and APIs.
This client replaces the outgoing Tauri based client (Sabiiro).
Some new features include:
- Playback actions within the taskbar
- Playback notifications
- Seamless and more reliable dark and light mode switching
- Window state is now preserved between sessions on Windows
- Holding ALT while the app is starting will reset the window position and size
- Holding SHIFT while starting the app will open a recovery dialog on Windows
- Windows builds are now signed! This should help with some of the issues with Windows Defender and other antivirus software.
New REST and Socket.IO API's
- New REST and Socket.IO API External Applications
- REST API access requires user granted tokens
- Apple Music API can be accessed via the REST API, allowing for apps like custom remotes to be built
Discord Integration
- Now displays as "Listening to: " when Discord Canary is open
- Animated Artworks will now display in RPC
- Can be disabled in Connectivity -> Discord -> Animated Artwork
- Better RPC debounce
- Unified code between platforms
Lyrics Improvements
- Lyrics code has been rewritten to be more maintainable
- Lyric provider selection is now more deliberate and reliable
- Lyric transitions should be more seamless
Performance Improvements
Several under the hood performance improvements have been made to the client compared to previous versions.
Multi-Selection
Various media item types can now be multi-selected! Holding CTRL or Meta (Apple) will select multiple items, holding SHIFT will select a range of items when supported. Context menus will adapt to the selection, allowing for bulk operations like Play Next, Play Later, Add to Playlist, Remove from Playlist, and more.
Queue Guarding
When there is still an active, newly played items will prompt to replace, play next, or play later in the queue. This can be disabled in the settings. General -> Warn before overriding queue
Tabs / Bookmarks
Tabs in Cider work a bit differently than in a traditional web browser. Tabs function like a cross between a bookmark and a tab in a web browser. Tabs do not change their location when you navigate to a new page, but they do preserve some of the state they were in when you left them, namely scroll position.
You can open new tabs for almost any item in the app. Most will only require you to either right click and select "Open in New Tab" or holding Shift and clicking on the item or link.
This is a feature we're sure will help enhance your music discovery experience, and we're excited to see how you use it.
Old-New Cider Editions
Cider for Legacy Systems is now available as a Patreon exclusive.*
This version of Cider is compiled natively for Windows 7/8/8.1 and macOS High Sierra and Mojave
Note that this version of Cider will only be supported for as long as it is feasible to do so, it's not a priority for us to maintain this version of Cider forever.
This build is basically just made for fun and is considered eccentric.
Bug reports specific to this version should not be filed
More Changes
- Off-loads heavy operations to the backend, reducing load times, and giving an overall smoother experience.
- Most noticeable improvements for library, playlists, and playlist indexing
- The storefront and storefront language can be easily changed at anytime from General -> Apple Music -> Storefront and Language.
- New page transitions
- A brand new consistent icon set is now applied across the app, still a work in progress
- Fixed wrong user font being used for Sing Along
- Fixed some fonts clipping on some elements
- Added Experimental -> Auto switch to Explicit variant
- Chart playlists will now display the chart position in the playlist view
- Added Last Updated date on playlists
- Improved upcoming releases text
- Updated and improved code for favorites
- Added Play to album and playlist context menu
- Moved track count to top of album / playlist view
- Fixes to Command Palette
- Fixed Cider Audio normalization not working correctly
- Fixed Apple Music sharing links
- Changed how song.link shares work, they will now point to the correct *.link domain
- Fixed search suggestions images not appearing at times
- Improvements to how volume is calculated
- Fixed optimistic states for library
- Fixed music video player in light mode
- Config value for pause animated on focus loss now acts as intended
- Adjusted wording on Updates window to make things clearer
- Fixed language list not loading correctly
- Moved Keep Completed Lyrics to the Immersive tab in Settings
- New Immersive Sing Along presets: "Groovy" and "Fruit Company"
- Removed "Enable Sweetener" option, as it is no longer necessary. Most of the features are now standard.
- Changed behavior of sidebar playlists. NavBtn should no longer appear.
- Window controls in mini player will no longer be displayed if Native window titlebar is enabled on Linux
- Play next and Play later are now properly disabled when listening to a station (they were previously enabled and did nothing, we're disabling them to help with the confusion)
- .gitignore files are created in user appdata folders now to prevent Git from tracking them, leaking credentials of users who upload their appdata/config folders to GitHub
- Changed update screen animation