ブログやウェブページなどに EPUB を貼り付けて公開できる EPUB リーダ BiB/i(ビビ)の最新版 v0.998 をリリースしました。

前バージョンから3ヵ月以上たち、大きな更新となると実に半年ぶりで、長らくお待たせして申し訳ありませんでした。でも、手前味噌ですが、時間をかけたぶん良いものにできたと思います。

便利な新機能がたくさん追加してあります。けれどなにより、多くのバグが修正されたことで安定性と速度も向上していますので、使ってくださっているみなさんはぜひ更新してみてください。初めてのかたも、この機会にぜひどうぞ。

最初の公開後、バグフィクス版として v0.998.3 がリリースされています。いち早くダウンロードしてくださった方にはお手数をおかけして申し訳ありませんが、最新版をダウンロードしてご利用ください。お願いいたします。

それでは詳細をご紹介していきます。

まずはバグフィクスの内容。

  • iOS 8 の Safari やアプリ内ブラウザで右から左に進む EPUB を開いたときにボタン類の配置がおかしくなる iOS 側のバグを吸収・解決しました。
  • Internet Explorer で読み込み中に止まってしまうことがある問題を解決
  • Internet Explorer で一部の固定レイアウト EPUB がうまく配置できない問題を解決
  • Firefox で一部のリフロー EPUB の表示がおかしくなる問題を解決
  • 画面端のクリック/タップ時、余分にスクロールされることがある問題を解決
  • 望ましくない処理として一部のブラウザのコンソールで警告される処理を刷新・解決
  • OS / ブラウザによっては縦書きテキストの選択・コピーが不可能だった問題を解決
    (記事公開時に忘れていたので追記)

問題解決のために多くの処理が細かく改善されたので、結果として安定化と高速化に繋がりました。

また、これまでは Internet Explorer と Firefox を特別扱いして多くの機能を制限していましたが、今バージョンをもってその多くを解放することができ、互換性が高まりました。

長らくご不便をおかけしてしまいましたが、たくさんの問題を解決することができましたので、ぜひお試しください。

そして、新機能。

  1. 実用的なページ分け表示モードが実装されました。
  2. 個別の HTML で、本に合わせた設定やプロモーションができるようになりました。
  3. EPUB を置いておく bookshelf フォルダの場所を自由に指定できるようになりました。
  4. Internet Explorer の縦書き表示に正式に対応、Firefox にちかく実装される予定の縦書き表示にもあらかじめ対応しておきました。
  5. デザインが刷新されました。

こまかくご紹介していきます。

新機能1・実用的なページ分け表示モード

以前から、左上のボタンを押して出てくるメニュー内に、表示モードを切り替える3つのボタンが並んではいました。けれど、いちばん左のボタンで起動するページ分け表示モードはどうも半端で、ぎこちないものだったんですよね。

今回、ぼくの考える「本らしい」挙動を目指してさまざまな機能を改善していったのですが、このページ分け表示モードは、もっともわかりやすいポイントです。

電子書籍に紙のメタファを過剰に持ち込む必要はないのですが、紙の物理的制約をうまくつかったページという単位には、さしあたって読むべき文量を一目瞭然に把握し、その単位の処理を繰り返すことで読書にリズムを作る効果もあると思っています。長い文章を読むとき、このリズムに助けられている場合もあるのではないでしょうか。

ページ分け表示モードが実用的になったことで、ビビは電子書籍リーダとして安定感を持つことができたと思っています。もちろん、本の中を高速に泳ぐような読み方が可能なスクロールモードも、電子書籍ならでは・ウェブブラウザならではの便利なインタフェイスです。ぜひ、そのときどきに切り替えて使ってみてください。

新機能2・本に合わせた設定やプロモーションに便利な、個別 HTML

ビビで bookshelf フォルダにある BOOKNAME という名前の本を開きたいときは、bib/i/?book=BOOKNAME という方式で指定することになっています。これは bib/i/index.html?book=BOOKNAME を省略したもので、つまりどの本も常に同じ bib/i/index.html を軸に動作しているのです。設置の簡便さを考えてのことでしたが、これでは、たとえば本ごとに個別の OGP を設定することもできず、プロモーションに不便だったと思います。

また、ビビには、表示や振る舞いをカスタマイズできるプリセットという仕組みがあります。bib/presets/ 内にある default.js がそれで、これを編集したり、複製してあたらしいプリセットを作成して使うことができるのですが、これも index.html から呼び出しているため、本に合わせて使い分けるのは難しい状態でした。

こうした問題を解決するため、bib/i/BOOKNAME.html というファイルを用意すれば、bib/i/?book=BOOKNAME と同じく bookshelf 内の BOOKNAME を開くようにしました。

BOOKNAME.html は、index.html を同じフォルダに複製して作成します。あとは本に合わせて title や OGP を自由に設定することで、シェアされたときの効果が高まり、プロモーションがしやすくなります。

プリセットファイルの内部にはデフォルトの表示モードや余白などなどさまざまな設定があり、さまざまなカスタマイズが可能になっていますので、この機会にぜひ本に合わせた設定を試してみてください。

プリセットについてはまともな解説ドキュメントを用意していないため、これまで、一部のパワーユーザにしか知られていなかったように思います。ほんとうに近いうちにマニュアルを作りたいと思っていますが、いちおう、同じフォルダに README.md というメモ書き程度のテキストファイルがあるので、それを読んでみてください(更新が行き届いておらず、内容に不足や齟齬も残っています)。

この個別 HTML 機能は何代か前のバージョンから準備されていたのですが、公表できるレベルになりました。

新機能3・bookshelf フォルダの場所が自由に

ビビで開きたい EPUB ファイルやその展開フォルダは、bib/bookshelf フォルダに入れるのが基本ルールになっています。今回、前の項目でご紹介したプリセットファイル(bib/presets/default.js)に設定項目を追加し、bookshelf フォルダの場所を変更できるようにしました。bib フォルダの外や、クロスオリジンアクセスの許可された場所であれば外部のサーバでも、指定可能です(たとえば Dropbox のパブリックフォルダなど)。

bib/i/index.html からみての相対パスか、ルート相対パス、外部であれば http:// から始まる URL で指定してください。

前の項目でも書いたとおり、本ごとに個別の HTML を使えるようになったため、そこに書かれたプリセットファイルも本ごとに変えられるようになりました。bookshelf をジャンルごとに変えたり、様々な場所にある EPUB をひとつのビビで開くことができます。

新機能4・IE と Firefox の縦書き対応

どのブラウザよりも早くから縦書き表示に対応していたのに、のちに決まった標準仕様は IE との互換性が低く、センセーショナルに縦書きデビューした Safari / Chrome の影で、ある意味不憫な目に遭っている Internet Explorer。その実力はなかなかたいしたものなのです。ただ、非標準の CSS を書かないと縦書きにならないため、ほとんどの EPUB にも当然 IE 向けの縦書き CSS は用意されていません。結果、「できるのにできない」状態でした。

そこでビビには、EPUB 内の縦書き指定 CSS を IE 向けに翻訳する処理を加えてあったのですが、今回その精度を上げて、正式に「標準の CSS を用意すれば IE でも縦書きで表示できます」といえるレベルになりました(IE 10 以上)。

そして Firefox もちかく縦書きに対応したバージョンが一般公開されそうなところにきていて、開発者向けのバージョンではすでに有効にすることができますので、それにも対応しておきました。一般公開されたら即、縦書き表示が可能です。また、この対応作業の一環で、横書き表示の精度も向上しました。

新機能5・デザインが刷新されました。

見た目にはいちばん大きな変更点だと思います。「YouTube の動画を貼り付けるように電子書籍を貼り付けられます」という説明がしやすいように、ということもあって黒ベースで動画プレイヤーのような見た目にしてあったのですが、そろそろ個性を考えようと思いました。

いまはまだ、見た目が変わった、という説明で十分な程度の変更ですが、いろいろと整理や改善を内包しています。反応と動作が早くなっていたり、読み込みの進捗が表示されるようになったり、細かいところに気づいていただけたら嬉しいです。

デザインの変更は、まだまだ、とりかかったばかりです。今後にもぜひご期待ください。また、今回の変更について、ぜひ忌憚のないご意見をいただきたいと思っています。「グラデーション、アクが強すぎて本の邪魔」とか「なんかぼんやりした」とか「目次が見づらい」とか、厳しいご意見も歓迎です。ただ、ぼくは褒められて伸びるタイプですので、もちろん、「白系のフラットデザインでクールになった!」なんていうお褒めの言葉もお待ちしています。

さあ、つぎのバージョンは?

ビビは、みなさんのおかげでここまで育ってきました。昨年は JEPA 電子出版アワードで審査員特別賞をいただくこともできました。作品をビビで公開してくださる個人作家やグループのみなさん、自社の新刊プロモーションに取り入れてくださった出版社さん、ウェブサービスに組み込んで可能性を広げて下さったでんでんコンバーター電書ちゃんねる / ろすさん電書ちゃんや、EPUB To Twitter言い値書店 / ふじーにょさんといった多くのみなさんに、あらためてお礼を申し上げます。ほかにもさまざまなツールで連携してくださったり、ぼくのドキュメント不足を大きく補う解説記事を書いてくださったり、画期的な応用方法をみつけてくださったり、ほんとうに多くの方に助けていただいています。みなさんの名前を挙げられず申し訳ありません、ありがとうございます。

そして、ビビの開発そのものを直接おおきく手助けしてくれている、友人 @KitaitiMakoto@shunito さんに、ここであらためてスペシャルサンクスを贈らせてください。いつも本当にありがとうございます。

今回のバージョンには、エンジニアとしてぼくより遙かに有能な KitaitiMakoto による新機能やパッチがいくつも盛り込まれているのですが、つぎのバージョンは、アクセシブルかつさわってたのしいインタフェイスをつくってしまう尊敬する先輩 shuito さんが提案してくださった、プラグイン機構の追加が軸になる予定です。ビビ本体をさわることなくさまざまな拡張を可能にするプラグイン機構をとりいれることで、ビビは、音声読み上げなどさまざまな読書に対応するアクセシビリティ向上や、アプリやサービスへの組み込みが容易になる API 整備、読書行動の解析や共有によるソーシャルリーディング、また、EPUBCFI へのより本格的な対応などによる「つながる本」の実現などなど、様々な可能性を拓くことができると思っています。

期待してお待ちいただければ幸いです。

また、ぼくの働いている SINAP で、ビビをつかったウェブサイト/ウェブサービスの開発をお考えのビジネスユーザ向けに、ご希望に応じて有償でサポートを提供できることになりました(現在、詳細なサポート内容やサポート体制を準備中です)。ほか、自社でもビビを活用したサービス構築や提案を行っていくことになり、そこで蓄積された知見ほかの成果はビビ本体にも還元されていきます。つまり、ぼくからすれば会社のサポートを受けて開発できることになったので、より安定して開発を進めていけると思います。

あ、とはいえ、これまでどおり基本的にはぼくの個人プロジェクトですので、Facebook のフォーラムなどにはどうかご遠慮なく、ご質問・ご要望をお寄せください。

来月、6月はビビ公開から2年。なにか特別なことができたらいいなあ……!(ビビさんとの会話もしばらく書き起こしてないし)