オープンソースの EPUB ビューワ BiB/i(ビビ)の最新版 v0.999.9 をリリースしました。

かんたんにおさらいですが、ビビを使うとこんなことができます。

  • EPUB 形式の電子書籍を、ウェブに公開してたくさんの人に読んでもらえる
  • クリックすればブラウザのまますぐ読んでもらえるリンクをシェアできる
    (こんなふうに ↓)
    http://fracoco.co/bib/i/?book=idpf/samples/mymedia_lite
  • 電子書籍を(YouTube 動画のように)ウェブページに埋め込んで公開できる
    (こんなふうに ↓)

基本的なできること・使いかたはそのままですが、よりたくさんの人に・より快適に読んでもらえるよう、またたくさんの改良を加えました。

新機能

過去最大のアップデートといっても過言ではない今回の v0.999.9 に加わった新機能をご紹介します(バージョンの数字の増やしかたに問題がありますね……!)

アクセシビリティの向上

  • ユーザが読みながら文字サイズを変更できるようになりました。(上部メニューバーに操作ボタンが追加されています)
  • スマートフォンでは、ピンチアウトで拡大できるようになりました。雑誌をそのまま EPUB にしたような文字の小さい本や、細かいところを拡大して読みたい漫画も、これで安心。

あたりまえの機能であるだけに、ずっと、ちゃんと実装したかったのです。ようやく叶いました。

互換性の向上

  • 必要に応じてスタイルシートを事前処理・翻訳することで、(たとえば電書協ガイドのようにいまやレガシーな仕様で作られていても)EPUB 制作者の意図を酌んで表示するようになりました。
  • とうとう Internet Explorer でも、フォルダに展開せず EPUB ファイルのまま開けるようになりました。
  • Android 5.1 以上の Chrome で、より快適に動作するようになりました。

スタイルシートの事前処理は、主に Firefox / Edge / Internet Explorer 向けの対応です。ちゃんと書けばブラウザは表示できるのに CSS がいま一歩なので意図どおりに表示されない、あるいは逆に、そのブラウザには独自の記法でないと対応できない、といった状況をできるだけ回避します。(Fx も Edge も IE も、ほんとはみんな、もっとできる子なんですよっ)

速度の向上

  • 動作処理の見直しやライブラリの整理で、全体的な処理速度が向上しました。
  • 展開しないままの EPUB でも、実用的な速度で動作するようになりました。

むしろ、容量の大きくない EPUB なら展開しないままのほうが転送がばらつかず速いことも? 挿絵の少ない小説・文章や30ページくらいまでの漫画などでは、ぜひ展開しないままの動作も試してみてください。フォントファイルを同梱していたり、本文中に多くの画像を埋め込んであったり、容量が 10MB を超えていたり、内部の HTML ファイル数が30を超えるような本は、事前に展開しておいたほうがいいようです。

公開方法の自由度の向上

  • スマートフォンでも、上に貼り付けてある例のように、ページ内に埋め込まれたまま新しいウィンドウを開かずに本を開けるようになりました(bib/i/presets/default.js で一括指定するほか、埋め込みタグの data-bibi-start-in-new-window 属性で個別に指定できます)
  • EPUB 内のスタイルシートを編集しなくても、ビビで開いたときのデフォルトの文字サイズをピクセルで調整できるようになりました。ストア向けに調整した EPUB の文字サイズがウェブでは大きすぎる/小さすぎる、といったときに便利です。(bib/i/presets/default.js に指定します)
  • EPUB ごとに別々の HTML を用意する方法が簡単になり、個別の OGP などを運用しやすくなりました。(本のファイルの場所は、URL に ?book= で指定するほか、body タグ内にある data-bibi-book に同じ値を書くことでも指定できます)

まとめると

  • より EPUB リーディングシステムらしく/よりウェブアプリらしく、さまざまな環境に対してレスポンシブに、表示を最適化し、読みやすくする機能を提供するようになりました。

代表的なバグフィクス

ほか、これまでにあった問題も多数修正されています。

  • 画面端のめくりボタンを短時間に連続でタップ/クリックするとめくれなくなる場合があったのを解決。
  • Android の Chrome で UI が上手く機能しない場合があったのを解決。
  • スマートフォンで目次内リンクが機能しない場合があったのを解決。
  • 互換モード優先だったり特殊なセキュリティ設定だったりすると Internet Explorer で動作しない場合があったのを解決。
  • いくつかの In-App ブラウザ(スマートフォンアプリ内ブラウザ)で開いたとき、本の高さが画面を超えてはみ出たりしていたのを解決(iOS 版 Facebook アプリのような暴君実装にも対応しました)

ここでお礼を申し上げます。

上で紹介した今回のアップデートの目玉のひとつ、フォントサイズ変更機能は、とあるビジネスプロジェクトの中で磨かれました。

ネットでビビを見つけてご連絡くださったそのクライアントさんは、こんなことを仰っていました。

「ビビは、オープンソースで公開されているというのが素晴らしいし、おもしろい」

「開発された機能を私たちが囲い込むことにはなんらメリットがない。むしろ、広くたくさんの人に使ってもらえるようにしてほしい」

ビビを使い、拡張も必要なプロジェクトをご依頼くださることによって、ビビやオープンソースや電子出版等々の発展と、ひいては世の中の利便性向上に寄与したい、……と仰って下さったのだと捉えています。とてもありがたいことです。

そのクライアントである地球快適化インスティテュートさんのご厚意と、ぼくの所属するシナップの協力のもと、今回のアップデートが実現されました。ありがとうございます。

‪地球快適化インスティテュートさんは三菱ケミカルホールディングスのシンクタンクです。この度、グループ内の約7万人に向けた研究活動報告書アーカイブに EPUB とビビをご採用、そして上のとおり、ビビの拡張成果はすべてオープンにすることをご快諾・お勧めくださいました。深く感謝して、順次汎用化・公開していきたいと思います。‬

たとえばフォントサイズ変更機能のほかにも、閲覧中の読者の「読む」という行為に関わるさまざまな操作を蓄積するアナリティクス機能も開発しました。

ビビには既に Google Analytics と連携するエクステンションが同梱されていますが、いまのところ、ごくわずかな情報しか記録できません。今回のプロジェクトの成果に基づいてこのエクステンションを拡張することで、たとえば、どれだけの人に最後まで読んでもらえたか、どこで読み詰まることが多いか、などなど、作者にとって重要な情報が収集できるようになるかもしれません。(もちろん、統計的な取得のみを目的に、読者のプライバシーを侵害しないものにします)

今後について

ほかにもまだまだ、読み上げや Media Overlays 対応などなど、作りたい機能はたくさんあるのですが、皆さんがどんな機能を求めているのかにも、とても関心があります。どうかご要望やご感想をお寄せください(どんどんと、お気軽に!)

ビビは、EPUB 作成ツールの「でんでんコンバーター(電書ちゃんねる)や、EPUB を Twitter のタイムライン上でそのまま読めるようにするサービス「EPUB to Twitter(hon.jp)にも採用されています。今後も、作品を届けたい人と読みたい人とを繋げるツールとして、更新を続けていきます。

β版のリリースはこの 0.999.9 が最後です。1.0.0 は、新機能は加えず調整に特化して、6月にはまとめたいと思っています。というわけで、では、また、そのころに!(ひさびさにビビさんも登場するかも?)