bnc tech forum 2010: designing ebooks for epub reading engines
DESCRIPTION
Instead of becoming alarmed at the proliferation of ereaders and ebook softwares, designers and publishers should be thinking about the two dominant ePub reading engines: Adobe Reader Mobile SDK and WebKit. This talk will help ebook producers understand what a reading engine is, and how this framework can greatly simplify ebook crafting, design and testing.TRANSCRIPT
Open source ePub: Digital Books
Liza DalyThreepress Consulting Inc.
Thursday, April 1, 2010
Thursday, April 1, 2010
This is the collection of ereaders and mobile devices I have at the office. I use them to test ebooks as well as report on the capabilities of the various hardware readers out there.
TextPlus one netbook, two Macs, one Windows laptop, and an iPad (on order).
Thursday, April 1, 2010
That doesn’t even count the most popular ereading devices today: the multiple computers, netbooks and tablets.
?Thursday, April 1, 2010
The challenge: How do book designers and publishers effectively design ebooks for large screens, small screens, and screen dimensions and platforms that haven’t launched yet?
Thinking about devices
Thursday, April 1, 2010
Thinking about devices
Thinking about reading engines
Thursday, April 1, 2010
I’d like to propose that we change the conversation from thinking about specific devices (which multiply every day) to thinking about “reading engines.”
Reading engines put text on the screen
Thursday, April 1, 2010
A reading engine is the part of the ereading software that actually places text on the screen. It’s the most basic, primitive component of any ereader.
Mobi: fail
AdobeReader Mobile SDK
WebKit
Thursday, April 1, 2010
Fortunately for ebook producers, there are far fewer reading engines than devices. This talk will focus on the two most popular reading engines for ePub books: Adobe Reader Mobile SDK (RMSDK) and WebKit.
Adobe Reader Mobile SDK
Software that is licensed to device-makers and software partners to provide Adobe’s
EPUB support and DRM.
Thursday, April 1, 2010
Adobe Reader Mobile SDK
Thursday, April 1, 2010
RMSDK doesn’t technically power Adobe Digital Editions, but it’s very close in terms of its behavior.
Adobe Reader Mobile SDK
Thursday, April 1, 2010
Adobe Reader Mobile SDK
Thursday, April 1, 2010
RMSDK includes both the reading engine and the DRM server. Licensees get both, so in most cases if a reader supports Adobe EPUB DRM, it uses the RMSDK reading engine.
With great power...
• Limited CSS support•No support for foreign
characters (without font embedding)•Narrow default margins•Multimedia only via Flash•Adobe-only extensions
•Almost industry- standard DRM•Consistent rendering
across devices• SVG support• Flash support•More precise pagination
and layout controls
Thursday, April 1, 2010
There are some advantages and disadvantages to this approach. I’m going to focus on how to turn the disadvantages into cost savings during ebook production.
...at least the bugs are consistent
Thursday, April 1, 2010
Once you understand what uses RMSDK, it’s possible to see the same issues across many different software programs and devices.
Readers using the RMSDK:
•Digital Editions• Sony Reader• Sony desktop reader•Barnes & Noble nook• IREX
• txtr• Spring•PlasticLogic•Kobo Reader (device
only)
Thursday, April 1, 2010
WebKit
Thursday, April 1, 2010
WebKit powers a number of different web browsers and mobile browsers. If you’ve used Google Chrome, Safari, the iPhone/iPad/iPod Touch, Android or Palm Pre/Pixi, you’ve used WebKit.
WebKit
Thursday, April 1, 2010
Though there are other browser engines on the desktop web (IE, Firefox’s Gecko, Opera), WebKit has quickly dominated the mobile web.
WebKit
Thursday, April 1, 2010
and it’s expected to grow as other kinds of mobile devices replace their own browsers with it.
Ereaders using WebKit
Thursday, April 1, 2010
Although WebKit isn’t technically a reading engine, because ePub is so similar to web technologies, it makes an excellent tool for building an ereader. Most mobile ereaders use WebKit, and any browser-based solution (Bookworm, Ibis Reader) will be using it on the right browser. iBooks is almost certainly WebKit-based.
Ereaders using WebKit
Thursday, April 1, 2010
Some devices are hybrids. The Spring Design Alex ereader uses both RMSDK and WebKit, via its built-in Android browser.
WebKit vs. Mobile SDK(Barnes & Noble vs. itself)
Thursday, April 1, 2010
Some ecosystems are also hybrids. Kobo also follows this pattern, where they have a custom WebKit-based software for computers and mobile devices, but RMSDK on hardware devices.
Designing for 99 devices
Thursday, April 1, 2010
Designing for 99 devicesDesigning for 2 reading engines
Thursday, April 1, 2010
So thinking about reading engines can really simplify issues around ebook design.
Avoid Adobe-specific extensions...
...except to solve Adobe-specific problems
Surviving Digital Editions
Thursday, April 1, 2010
Here are some techniques for optimizing for the Adobe ecosystem without affecting the validity of your ebooks.
Page templates (XPGT) control the layout and flow of pages in ADE-related reading engines
Mostly harmless
http://blogs.adobe.com/digitaleditions/template.html
Thursday, April 1, 2010
http://blogs.adobe.com/digitaleditions/template.html
Mostly harmless
XPGT lets you control page breaks and widths of columns in RMSDK software, and still produce valid ePubs
Thursday, April 1, 2010
Mostly harmless
Work around RMSDK’s poor international font support with embedded open-source fonts.
http://blog.threepress.org/2009/09/16/how-to-embed-fonts-in-epub-files/
Thursday, April 1, 2010
Considered harmful
InDesign font obfuscation isn’t compatible with other systems and isn’t in the ePub spec.
http://blog.threepress.org/2009/09/16/how-to-embed-fonts-in-epub-files/
Thursday, April 1, 2010
Considered harmfulADE will only display the first dc:author - don’t work around by adding multiple authors in a single field. That’s bad metadata!
http://blog.threepress.org/2009/11/27/practical-epub-metadata-authorship/
Thursday, April 1, 2010
Considered harmful
Adobe’s page-map, mapping print pages to ebook “pages,” is not in the ePub spec and won’t work anywhere else.
http://blog.threepress.org/2009/11/26/adobe-page-map-versus-ncx-pagelist/
Thursday, April 1, 2010
Designing for the future of ePub
Keep markup minimal and semantic.
Thursday, April 1, 2010
Designing for the future of ePub
Specifying the spacing between a header and body text is presentational.
Specifying some spacing between a scene change is semantic.
Keep markup minimal and semantic.
Thursday, April 1, 2010
Some tips that will work well in WebKit and all future ePub implementations include being thoughtful about what design elements are specified in the book. Try to keep to purely semantic markup and styling.
Designing for the future of ePub
Prefer padding to margin.
Use Adobe’s extensions to handle page breaks and margins; let other readers decide for “themselves.”
Restrict CSS to inside the content.
Thursday, April 1, 2010
Test and preview in:
RMSDKBig WebKitLittle WebKit
Thursday, April 1, 2010
My recommended testing paradigm: test in one RMSDK device/software (usually ADE), one “big WebKit” like a web browser or iPad, and one “small WebKit”, or mobile device or browser.
Multimedia?
No HTML5 in ePub...
...but no Flash on the iPad
Thursday, April 1, 2010
Designing for the future of ePub: what about multimedia? Unfortunately Flash is no longer the easy answer. HTML5 <video> adoption will come to ePub eventually, but for now it will produce invalid ebooks in most case.
These companies are betting HTML5:
and provide significant resources for WebKit development...
Thursday, April 1, 2010
However, looking ahead, I think the smart money is on what Google and Apple are doing.
Designing for the future of ePub
...means designing for WebKit
Thursday, April 1, 2010
This doesn’t mean that you should ignore the Adobe ecosystem! It’s the most significant part of the marketplace right now. And don’t design two different ebooks -- all these techniques can be used in the same ePub file successfully. But in my opinion, the future will be browser-like reading engines.