Readium SDK: Development News

This page details the current status of development on the Readium SDK. A general overview of Readium SDK's architecture and goals is here

Release of Readium SDK - Sprint 17

Readium.org is pleased to announce that 0.17 version of the Readium SDK has been released.  This release was pushed 23 March 2015.

This release includes a significant fix for media handling under Android, which fixes a number of serious stability issues. This release comprises updates to the readium github repositories for readium-sdk, readium-shared-js and the SDK sample applications (including configurations for Android, iOS, and OS/X that have been validated against the EPUB Test Suite, and a Windows configuration that is still in development).  This marks the 17th push (formally tagged as version 0.17) of the source code for SDK.  This release has achieved substantially complete support for the EPUB 3.0 spec including MathML, Reading System object, font-deobfuscation and many more features.  The complete release notes can be found here.

Release of Readium SDK - Sprint 16

Readium.org is pleased to announce that the “1.0” version of the Readium SDK has been released. With this release, the first version of the Readium SDK is essentially complete (hence the “1.0” label). This release was pushed 30 December 2014.

The 1.0 version comprises updates to the readium github repositories for readium-sdk, readium-shared-js and the SDK sample applications (including configurations for Android, iOS, and OS/X that have been validated against the EPUB Test Suite, and a Windows configuration that is still in development).  1.0 marks the 16th push (formally tagged as version 0.16.1) of the source code for SDK.  This release has achieved substantially complete support for the EPUB 3.0 spec including MathML, Reading System object, font-deobfuscation and many more features.  The complete release notes can be found here.

Release of Readium SDK - Sprint 14

The following is info on the content and availability of the most recent release of the Readium SDK, at the end of Sprint 14 (30 April 2014)

This release can be found in the repo here. The tag for this is Release-0.14.  Note that this is the first sprint for more than two months in which all of the active repos were fully updated in the master branch.  There was a lot of work in the previous sprints, but it was restricted to feature branches and the develop branch.  With this release, the team is back on track and anticipates that updates to master will resume on a sprintly basis.

The repos that were updated are:

  • readium-js
  • readium-js-viewer
  • readium-shared-js
  • readium-sdk
  • SDKLauncher-OSX
  • SDKLauncher-iOS
  • SDKLauncher-Android

The key features of this release are:

  • All
    • Updated all licenses in source code to reflect dual license nature
    • Improved continuous build processes and added builders for the Launchers
    • Added support for scrollable views and UI options for same
    • Many fixes and improvements in MO support such that it now passes all the EPUB TestSuite conformance tests
    • Laid the framework for proper runtime versioning.  To be completed in Sprint 15
    • Improved CFI handling, including support for “deep” intra-spine-items CFIs
  • ReadiumJS
    • Replaced the old ChromeExtension with the newly refactored code base, pushed to the Chrome Store
    • Included support for migrating books from old library
    • Added a number of configurable shortcuts and other accessibility features (e.g. Support for screen readers: JAWS, VoiceOver)
    • Expanded and polished the UI for Media Overlays, including word-level highlighting
    • Implemented support for the CloudReader, which is a cross-browser version of ReadiumJS that can be easily installed on the server to support EPUB libraries
    • Refactored the iOS Platform layer in the core to make integration easier  Added support for full-screen
    • Expanded i18n support (still not complete for some languages) Added framework to support bookmarks and annots
  • Readium SDK
    • Support for Media Overlays on Android (though the UI is not as complete as OSX and iOS, this should be added in Sprint 14)
    • Switched to use CocoaHTTPServer on iOS and OSX to resolve issues with the SimpleHTTPServer
    • Converted iOS project to ARC Improved UI in the Android Launcher
    • Improved handling of audio and video in the Android Launcher
    • Support for the Core on Windows 7 and Window 8 RT
      • Note a Launcher for Windows 7/8 is in the repo but is not a formal part of this release pending a couple of critical fixes We should push the Win7/8 Launcher to master at the end of Sprint 15 (circa. May 22)
    • A large number of bug fixes, including
    • Support for SVG in the spine
    • Fix for handling SVG mimetypes with CocoaHTTPServer Some fixes for fixed-page layout (more pending)
    • Fixed crash if nav table was empty
    • Many others…

    Notes:

    • Work on the on Windows launchers is continuing for both Windows 8 RT and Windows 7.  ETA for completion not yet known, perhaps Sprint 15
    • There is a bug in XCode 5 that causes it to build a 64bit library even if not requested if the dev machine is plugged into a 64 bit device (e.g. iPad Air). For this reason, 64bit ARM builds are not yet enabled.  We will look into this more in Sprint 15

       

Release of Readium SDK - Sprint 13

The following is info on the content and availability of the tenth release of the Readium SDK, at the end of Sprint 13 (20 December 2013)

This release can be found in the repo here. The tag for this is Release-0.10.  Note that this is the first sprint for more than two months in which all of the active repos were fully updated in the master branch.  There was a lot of work in the previous sprints, but it was restricted to feature branches and the develop branch.  With this release, the team is back on track and anticipates that updates to master will resume on a sprintly basis.

The repos that were updated are:

  • readium-sdk
  • readium-shared-js
  • SDKLauncher-OSX
  • SDKLauncher-iOS
  • SDKLauncher-Android

In addition, there is a new repo, SimpleHTTPServer, which is a fork of Alain Quatermain's  (Jim Dovey) repo here. The server is used to fetch resources on OSX and iOS and is required to build the associated projects.

The key features of this release are:

  • Support for Media Overlays on iOS (though the UI is not as complete as OSX, this should be added in Sprint 14)
  • Use of SimpleHTTPServer on iOS and OSX to resolve issues with the protocol-management approach previously supported
  • Refactored and improved handling of SMIL and audio in the Core
  • Improved UI in the Android Launcher
  • Improved handling of audio and video in the Androi Launcher
  • Support for the Core on Windows 7 and Window 8 RT (no Launcher yet but soon)
  • A large number of bug fixes

Notes:

  1. Work on the on Windows launchers is beginning for both WIndows 8 RT and WIndows 7.  ETA for completion not yet known, perhaps Sprint 15
  2. There is a bug in XCode 5 that causes it to build a 64bit library even if not requested if the dev machine is plugged into a 64 bit device (e.g. iPad Air). For this reason, 64bit ARM builds are not yet enabled.  We will look into this more in Sprint 14

Status of Readium SDK - Sprint 12

The following is info on the content at the end of Sprint 12 (14 November 2013)

Note the team decided that none of the work was sufficiently stable or mature to push to master. So there is no label for this sprint.

Concrete progress during this sprint was relatively small as many contributors were pulled off to work at their "real jobs".  There has been some progress, including further work on:

  • Media Overlay implementation and port to iOS
  • Media Overlay work on Android
  • JNI Layer refactoring
  • Windows 8 RT builds and test framework

But the team decided that none of the work was sufficiently stable or mature to push to master. That is the primary goal of Sprint 13

Status of Readium SDK - Sprint 11

The following is info on the content at the end of Sprint 11 (17 October 2013)

Note the team decided that none of the work was sufficiently stable or mature to push to master. So there is no label for this sprint.

Concrete progress during this sprint was relatively small.  There has been a lot of progress, including:

  • Media Overlay implementation and port to iOS
  • Media Overlay work on Android
  • JNI Layer refactoring
  • Windows 8 RT builds and test framework

Status of Readium SDK - Sprint 10

The following is info on the content available at the end of  Sprint 10 (25 September 2013).

Note the team decided that none of the work was sufficiently stable or mature to push to master. So there is no label for this sprint.

Note that this is not the 1.0 release, but is just an unfortunate consequence of our numbering of the sprints.  We will address this shortly.

Concrete progress during this sprint was relatively small.  There has been a lot of progress, including:

  • Media Overlay implementation
  • JNI Layer
  • Windows 8 builds

Release of Readium SDK - Sprint 9

The following is info on the content and availability of the ninth release of the Readium SDK, at the end of Sprint 9 (4 September 2013)

This release can be found in the repo here. The tag for this is Release-0.9

The key features of this release are:

  • Work on the JNI layer continues including:
    • Added IRI handling to the JNI layer
    • Refactoring of the code psuehd in the previous sprint for better handling and ease of use.
  • Improvements to the method for opening a document in the shared-js layer
  • SDKLauncher-OSX and shared-js: a number of changes to support the ongoing Media Overlay work
  • SDKLauncher-iOS now has settings to support some runtime viewer settings, including
    • font size
    • synthetic spreads
    • gutter size
  • Refactoring work in the iOS Launcher to make URL handling more uniform and robust

Notes:

  1. Work on the Android layer support for audio/video has made progress, but remains in a branch at the end of this sprint.
  2. Although Android work is now proceeding smoothly, work on a Windows launcher is still looking for a volunteer.

Release of Readium SDK - Sprint 8

The following is info on the content and availability of the eighth release of the Readium SDK, at the end of Sprint 8 (14 August 2013)

This release can be found in the repo here. The tag for this is Release-0.8.  Note that due to some broad work on Media Overlays and summertime vacations, the concrete (i.e. in the repo) progress was relatively small.

The only feature in this release is:

  • SDKLauncher-iOS has been enhanced to support some runtime viewer settings, including
    • font size
    • synthetic spreads
    • gutter size

Release of Readium SDK - Sprint 7

The following is info on the content and availability of the seventh release of the Readium SDK, at the end of Sprint 7 (25 July 2013)

This release can be found in the repo here. The tag for this is Release-0.7

The key features of this release are:

  • An Android launcher has been created!  This launcher is built from an Eclipse project.  Information on the launcher and how to build it is here.
  • SDKLauncher-OSX and SDLauncher-iOS now pull the same JavaScript libraries from a common repository (readium-shared-js)
  • SDKLauncher-OSX has been enhanced to support some runtime viewer settings, including
    • font size
    • synthetic spreads
    • gutter size

Notes:

  1. The iOS Launcher does no yet support the veiw settings.  That will be added in the current sprint 8.
  2. Although Android work is now proceeding smoothly, work on a Windows launcher is still looking for a volunteer.

Release of Readium SDK - Sprint 6

The following is info on the content and availability of the sixth release of the Readium SDK, at the end of Sprint 6 (8 July 2013)

This release can be found in the repo here. The tag for this is Release-0.6

The key features of this release are:

  • SDKLauncher-OSX and SDLauncher-iOS were both upgraded to support EPUB documents with mixed layout content (i.e. both fixed and reflowable content).  This comprised changes to the shared JavaScript libraries as well as some changes in the Launchers themselves to use the new functionality.
  • Core library:
    • More package validation and tests.
    • More error handling and package tests.
    • Error handling and supporting unit tests. Not at 100% coverage yet.
    • Partial conversion to spec error handlers.
    • Updated license headers.
    • Error infrastructure now in place.

Notes:

  1. iOS and OSX Launchers now share the JS libraries, but are not pulling from a common repo.  This is scheduled for Sprint 7
  2. Android work has proceeded more slowly than anticipated, as is with Windows.  Hoping to address this in Sprint 7

Release of Readium SDK - Sprint 5

The following is info on the content and availability of the fifth release of the Readium SDK, at the end of Sprint 5 (21 June 2013)

This release can be found in the repo here. The tag for this is Release-0.5

The key features of this release are:

  • SDKLauncher-OSX and SDKLauncher-iOS added support for fixed layout documents.  Support for mixed documents should be in the next sprint (6)
  • All the APIs in the shared JS libraries have had Java-Doc style headers added.  These are harvested to produce the online documnetation, which can be found here.
  • Major refactoring of the Core to support better memory management and re-organizing the object heirarchy to better support extensibility.
  • A number of minor bug fixes in both Core and JS Libraries.

Notes:

  1. Work has begun on the JNI layer and associated infrastructure. 

Release of Readium SDK - Sprint 4

The following is info on the content and availability of the fourth release of the Readium SDK, at the end of Sprint 4 (1 May 2013)

This release can be found in the repo here. The tag for this is Release-0.4

The key features of this release are:

  • SDKLauncher-OSX  fixed two bugs:  Navigation, where the TOC navigation item's contentrefs are relative to the nav.xhtml file that describes the TOC, where spine items hrefs are relative to the location of the package document. And added appropriate scripts to properly package the app so it can be deployed easily.
  • SDKLauncher-iOS added support for out-of-spine TOC and bookmarks, leveraging the common JS functionality share with the OSX launcher.
  • Core library port to Android now complete. 

Notes:

  1. Work on Fixed Layout almost made it into this sprint.  Should be in Sprint 5's release on 22 May.
  2. The Navigation bug is still present in the iOS app.  This will be resolved in the next sprint (5). Workaround is to navigate by sprint item UI
  3. Work has begun on the JNI layer and associated infrastructure. 
  4. Port of Core Library to Windows in progress, will be complete in Sprint 5
  5. Readium now has a developer certificate for the contributors. Contact Ric Wright for more info

Release of Readium SDK - Sprint 3

The following is info on the content and availability of the third release of the Readium SDK, at the end of Sprint 3 (March 20 2013)

This release can be found in the repo here. The tag for this is Release-0.3

The key features of this release are:

  • SDKLauncher-OSX  refactored to remove old Cocoa code. Bug fixes including CFI support for non-text elements
  • SDKLauncher-iOS refactored to remove TypeScript dependencies and to use the common JS library
  • Core library APIs now completely documented. Work on Android still in progress

Notes:

  1. Readium now has a developer certificate for the contributors. Contact Ric Wright for more info

Release of Readium SDK - Sprint 2

The following is info on the content and availability of the second release of the Readium SDK, at the end of Sprint 2 (March 20 2013)

This release can be found in the repo here. The tag for this is Release-0.2

The key features of this release are:

  • CFI and Bookmarks support on OSX
  • complete audio and video support on iOS
  • Invisible refactoring and infrastructure work on both OSX and iOS

Notes:

  1. Readium now has a developer certificate for the contributors. Contact Ric Wright for more info
  2. CFI and hence bookmarks only support text elements at this time. Support for images and other content will be added in a later sprint.
  3. Audio and video on iOS is functional but additional work on client-side caching is slated for a later sprint.

Release of Readium SDK - Sprint 1

The following is info on the content and availability of the first release of the Readium SDK, at the end of Sprint 1 (Feb. 28 2013)

This release can be found in the repo here. There is no tag for this release. Please move onto Sprint 2.

The key features of this release are:

  • Support for the sample app on both OSX and iOS
  • In-spine navigation support in both OSX and iOS
  • Embedded font (OpenType only, not WOFF) support
  • Limited support for audio and video (to be completed in Sprint 2)

Notes:

  1. Pending a Readium developer certificate for iOS, provisioning must be done on an ad hoc basis.
  2. Testing is still rudimentary as we put together test plans and framework
  3. Work on an Android version of the Core Library has begun but is not yet complete. Completion date on this still TBD

Release of Readium SDK - Sprint 0

The following is info on the content and availability of the first release of the Readium SDK, at the end of Sprint 0 (Feb. 7 2013)

Platform/Tool Support

This first release is intended primarily to establish the procedures and processes for the more substantive releases that will follow. As such, the release is limited to OSX  only. A very preliminary iOS configuration with Sprint 0 features is now also in github. Subsequent releases will add Android as well as WIndows desktop.  Further platform support is TBD.

The OS/X and iOS code has been developed and tested using XCode 4.6. Earlier versions of XCode will not work.

New Features in this Release

The source for the release consists of three primary pieces:

  • The EPUB 3 library, which provides functionality for opening the container, reading the package, including the metadata, manifest and spine and providing clients access to these resources.  In addition the core library also provides a great deal of plumbing and infrastructure which will be used more fully as support for the full  EPUB 3 spec is implemented
  • A simple OSX desktop app (built & tested only on 10.8 / Mountain Lion), SDKLauncherOSX, which allows users to open EPUB 3 documents and navigate the contents.  The app presents two panes.  The left is the contents of the spine, presented as a simple list which can be clicked on to navigate between spine items.  The right hand pane displays the contents of the specified spine item.

Documentation

The documentation for this release is limited, consisting of three pieces:

  • The release notes (this page)
  • Build information, which can be found here (very preliminary build information for iOS can be found here)
  • API documentation, which currently must be built by the user.  Please see the build information for how to do this.

Known Issues

At this point, there has only been limited ad hoc testing so the number of known issues is small.  This will no doubt change with time.