Local-first reader app

BookField

BookField は、端末に取り込んだ .wbpkg パッケージを読むための reader アプリです。教材、参照資料、注釈、学習予定、オフライン読書を、クラウド前提にせず扱えるようにします。

.wbpkg の取り込み

オフライン読書

メモとハイライト

.wbpkg の取り込み操作を表示している BookField のライブラリ画面

Package format

BookField に取り込んで読める package

.wbpkg は BookField が読み込むインストール可能なパッケージ形式です。manifest、ReaderDoc 本文、メディア、navigationTree、必要に応じた学習予定や locator index をまとめ、端末内で使える状態にします。

Manifest contract

manifest は package identity、work、edition、assets、初期表示の入口を定義します。

ReaderDoc content

ReaderDoc の本文は取り込み時に端末内へ保存され、runtime で EPUB、HTML、CSS を解析しません。

Offline references

locator index と bindings により、対応する package が端末にある場合は構造化参照をオフラインで解決できます。

Reader experience

クラウド文書ではなく、取り込んだ package を中心に読む

BookField は package を取り込んだ後の体験を重視します。ライブラリ、読書位置、端末内の注釈、学習予定、検索をひとつの reader 体験として扱います。

Library import

アプリ内の Library、または Files / Open In から .wbpkg を取り込めます。

Library-first access

最近開いた package や一覧から、読みたい資料へすぐ戻れます。

Study plans

package に学習予定が含まれる場合、Calendar で予定を確認できます。

Search and notes

ハイライト、段落メモ、ブックマーク、検索用のローカル記録を端末内に保持します。

Package handoff

公開する流れはシンプルに保つ

公開ページでは、利用者に見せる流れを product level に絞ります。内部の作成手段ではなく、配布者が用意した package を BookField に取り込む境界だけを説明します。

  1. 1

    .wbpkg を受け取る

    配布者または社内の作成フローで、BookField に取り込める package を用意します。

  2. 2

    BookField に取り込む

    ユーザーが BookField に package を取り込むと、Reader が検証して端末内に保存します。

  3. 3

    読む・予定を見る・検索する

    取り込んだ package は Library に並び、学習予定や検索データも使えるようになります。

Platform status

現在の実装基準

iOS
現行の product baseline は iOS 実装です。
Android
Android は iOS の挙動に合わせる parity hardening 中です。

Technical notes

Reader を予測しやすくする境界

  • 取り込んだ package content は、読書と検索のために端末内へ保存されます。
  • 初期の product promise は cloud sync に依存しません。
  • Reader 内での教材作成は対象外です。BookField は準備済み package を読みます。
  • 初期表示と移動は package の navigationTree に従い、runtime EPUB 解析に依存しません。

BookField 向け package 配布を計画する

.wbpkg の概要で BookField が自社コンテンツに合うか確認するか、教材や資料の配布フローを相談してください。