Appearance
Release notes Android Framework Experimental
For more information about experimental releases, see Experimental Releases.
5.0.0-experimental.2025091601 2025-09-23
NOTE
This version has all bugfixes from version 4.5.0, but also some additional changes and features from the upcoming 5.0.0.
This experimental release does not include all upcoming changes for 5.0.0, but should be used for evaluating the Renderer.ContinuousScroll.
Breaking changes
- Kotlin Gradle Plugin (KGP) has been upgraded to
2.1.21. - Android Gradle Plugin (AGP) has been upgraded to
8.7.3. - Gradle has been upgraded to
8.9. - Changed the minimum required Android WebView version to
64. - Deprecated methods and fields have been removed. A full list will be provided in the
5.0.0-rc.1release.
New features
- Added a new renderer option
swipeNavigationGestureThreshold. This option can be used to configure the swipe distance required to perform a swipe navigation. Additionally, swipe animations have been refined to start more smoothly.
Bugfixes
- Fixed an issue where certain elements were given
tabindex="-1", preventing focus via standard keyboard navigation. - Fixed an issue where publication content that changed
overflow-xstyling could break reflow due to browsers implicitly settingoverflow-ytoauto.
Scroll renderer improvements since 4.4.0-experimental.2025062501
- Several bugs and issues have been fixed.
- The duration of the smooth scrolling can now be controlled with the renderer options
scrollAnimationDurationMsandscrollAnimationMaxDistance. Please refer to the API documentation for more information.
4.4.0-experimental.2025062501 2025-06-30
NOTE
This version is based on the previously released 4.4.0.
New features
- Added the new renderer
Renderer.ContinuousScrollthat shows all documents in a single vertical scrolling view.
Changes since 4.3.0-experimental.2025050801
- Added a new
ReaderView.goTooption to control how scroll renderers behave when the target position is already visible in theReaderView. - Scroll renderers can now smoothly scroll to nearby positions.
- Added a new listener method,
OnRendererScrollEventListener.onRendererScrollChanged(event: RendererScrollEngineEventData), which is called continuously while scroll renderers are scrolling. - Changed the
OnRendererScrollEventListener.onRendererScrollStarted(event: RendererScrollEngineEventData)parameter type toRendererScrollEngineEventData. It is now possible to determine whether scrolling was initiated by the user by inspecting theuserGeneratedproperty. - Fixed several bugs and issues in the
Renderer.ContinuousScroll.
4.3.0-experimental.2025050801 2025-05-08
NOTE
This version is based on the previously released 4.3.0.
New features
- Added the new renderer
Renderer.ContinuousScrollthat shows all documents in a single vertical scrolling view.
4.2.1-experimental.2025041101 2025-04-11
NOTE
This version is based on the previously released 4.2.1.
New features
- Added the new renderer
Renderer.ContinuousScrollthat shows all documents in a single vertical scrolling view.
4.0.0-experimental.2 2023-11-02
Overview
We are pleased to finally invite you to try out our new native Audiobook support.
New in the Experimental 2 release is the ability to open EPUB3 with MO as audio only, with the option to synchronize with the ReaderView at any time if you wish.
For now we support playing from a LPF package, which is just a zipped up Audiobook. Support for HTTP streaming of "un-packaged" Audiobooks is coming in a future release. Support for additional formats will be added in upcoming releases.
Includes all changes and fixes introduced in framework version 3.8.0.
Breaking changes
- Changed minimum Android version to
6. ReaderView.visiblePagesnow returnsList<VisiblePage>instead ofList<VisiblePageData>.ReaderView.fetchRectsForVisibleContenthas been removed. Please useVisiblePage.fetchRectsForVisibleContentinstead.SyncMediaPlayer.approximateElapsedTimehas been renamed toSyncMediaPlayer.approximateElapsedTimeMs.ContentLocation.fetchNavigationItemReferencesonSuccess callback is now called withFetchNavigationItemReferencesResultinstead ofFetchNavigationItemReferencesResultData. Properties inFetchNavigationItemReferencesResultreturnList<ReaderPublicationNavigationItemReference>instead ofList<ReaderPublicationNavigationItemReferenceData>.- The following suspend functions now return a
ColibrioResultobject: -ContentLocationContentResolver.fetchTextContent-ContentLocationContentResolver.fetchTextContentAfter-ContentLocationContentResolver.fetchTextContentBefore ColibrioMediaSessionMetadata.smallIconResIdis now mandatory. It cannot be set tonull.
Bugfixes
- Fixed an issue where
publicationHashSignaturewas calculated differently compared to the Web framework. - Fixed several issues where the playback state was not synced correctly when creating a
SyncMediaPlayerfrom aColibrioAudioPlayerfor synchronization with aReaderView. - Fixed several issues where the playback state was not synced correctly when destroying a
SyncMediaPlayerthat was synchronized with aReaderView. - Fixed an issue where
ColibrioAudioPlayer.approximateElapsedTimeMsdid not update immediately when seeking. - Fixed an issue where
ColibrioAudioPlayer.totalDurationMsreturned0for a short amount of time when theColibrioAudioPlayerwas created.
New features
- Added
ColibrioAudioPlayer.bufferingwhich is equivalent to calling!ColibrioAudioPlayer.ready && !ColibrioAudioPlayer.waitingForReaderViewSynchronization.
4.0.0-experimental.1
Overview
In this first experimental release we are very proud to let you play around with our native Audiobook player.
The new ColibrioAudioPlayer is based on the SyncMediaPlayer API that you already know. It moves the responsibility for all audio playback to the respective native platform.
A fully working demo application source is available in a public Bitbucket repository.
https://bitbucket.org/colibrio/colibrio-android-samples/src/main/AudioSample/
Check out the API documentation at https://api-docs.colibrio.com/android/4.0.0-experimental-1/colibrio-reader-framework/com.colibrio.readingsystem.audio/-colibrio-media-service/index.html for how to configure your app to use the new audio playback capability.
Major new features
- New native
ColibrioAudioPlayerclass that handles playback of audio using the ExoPlayer library. - Support for audio playback of LPF packaged W3C Audiobooks and EPUB with Media Overlays.
- Playback is handled through a service which allows it to continue in the background.
- Full integration with Android's MediaSession features. This means that you can control the playback from any connected device that supports Media Session playback controls, such as Android Auto, Wear OS, etc.
Upcoming features
- Synchronisation with the
Colibrio ReaderView. This feature will automatically synchronise the Audiobook player with the ReaderView whenever you wish to both read and listen. - Support for additional, common audiobook formats. We want your feedback on this.