ReFreezer is an alternative Deezer music streaming & downloading client, based on Freezer. The entire codebase has been updated/rewritten to be compatible with the latest version of flutter, the dart SDK & android (current build target is API level 34).
ReFreezer: A Revitalized Deezer Client for Music Streaming and Downloading
ReFreezer emerges as a refreshed and enhanced Deezer music client, building upon the foundation of the original Freezer app. This revitalized version not only restores beloved features from its predecessor but also introduces several improvements and modernizations to enhance the user experience. This document details the key features and changes implemented in ReFreezer.
Restored Functionality from Freezer
One of the primary goals of ReFreezer’s development was to bring back the functionalities that users cherished in the original Freezer app. This includes a significant restoration of login options, ensuring accessibility for a broader range of users. Crucially, the high-quality streaming and download options have also been reinstated. Premium Deezer account holders can once again enjoy superior audio fidelity, while free accounts retain access to MP3 128kbps streaming and downloads.
Another returning feature is support for downloading music to external storage (SD cards). This is particularly beneficial for Android 11 and later versions, allowing users to manage their music libraries more effectively and conserve internal storage space. This functionality was a key aspect of Freezer and its return in ReFreezer will be welcomed by many users.
The familiar homescreen experience has also been restored, offering a comfortable and intuitive navigation point for users. Furthermore, ReFreezer expands upon this by introducing new “Flow” and “Mood” smart playlist options. These dynamic playlists cater to individual listening preferences and provide a curated selection of music tailored to specific moments or emotional states.
Enhanced User Experience and Interface Improvements
Beyond restoring existing features, ReFreezer incorporates several enhancements designed to improve the overall user experience. A notable improvement is the fix for the log-out functionality. Previously, users were required to restart the application after logging out. This cumbersome step has been eliminated in ReFreezer, streamlining the process and providing a more seamless experience.
The queue screen and queue handling have also undergone significant improvements. Users now have more control over their music playback, with enhanced functionality for shuffling and rearranging the queue. This provides greater flexibility and personalization within the listening experience.
The lyrics screen has been updated to support unsynced lyrics. While synced lyrics provide a timed display synchronized with the music, unsynced lyrics offer a static view of the song’s text. This addition caters to users who prefer to read lyrics at their own pace or who may be using the app in situations where synchronized lyrics are not ideal.
Minor UI changes have been implemented to optimize the app’s appearance and functionality, particularly for horizontal viewing and tablet devices. These adjustments ensure a more consistent and user-friendly experience across a wider range of screen sizes and orientations.
Technical Upgrades and Modernization
ReFreezer benefits from extensive technical upgrades and modernization efforts, ensuring compatibility with the latest software development kits (SDKs) and improving overall performance and stability. The entire codebase has been updated to fully support the latest Flutter and Dart SDK versions, taking advantage of new features and optimizations. Furthermore, the project has been updated to Gradle version 8.5.1, a crucial build automation tool for Android development.
A significant change involves the removal of included C libraries (OpenSSL and OpenCrypto). These have been replaced with a custom native Java implementation. This shift simplifies the application’s dependencies and potentially improves performance by leveraging platform-specific optimizations. Similarly, the included decryptor-jni C library has also been replaced with a custom native Java implementation.
Null-safety has been implemented throughout the codebase, a feature introduced in Dart that helps prevent null pointer exceptions. This enhances the robustness of the application and reduces the likelihood of crashes caused by unexpected null values.
The need for custom versions of the just_audio
and audio_service
plugins has been eliminated. The source code has been refactored to utilize the latest versions of the official plugins. This simplifies maintenance and ensures access to the latest features and bug fixes provided by the plugin developers.
Beyond these specific changes, multiple other fixes have been implemented throughout the application, addressing various bugs and improving overall stability and performance. These updates collectively contribute to a more refined and reliable user experience.