散文を愛する人のために作られた、ページ送りリーダー。
Apple の Core Text 上に直接構築。1ミリ秒未満の組版、リアルな3D紙めくり、揺るがないリフロー位置保持、ケーブル不要の WiFi 書籍転送。
Web ブラウザの寄せ集めではなく、ネイティブな楽器のように作られています。
多くの電子書籍リーダーは Chromium や WebKit を内部に抱え、リフローに数秒かかり、バッテリーを消耗し、DOM 由来の不自然な余白に悩まされます。Reader は原理原則から作り直しました。
1ミリ秒未満の Core Text ページ分割
Apple の低レベルフレームワーク Core Text を使い、段落の組版と改行をディスプレイ描画単位まで直接処理します。ページは 0.8ms で描画され、カクつきはありません。
揺るがないリフロー位置保持
iPad を回転させても、Mac のウィンドウサイズを変えても、文の途中でフォントサイズを変えても大丈夫。Reader は UTF-16 の文字オフセットを正確に保持するので、読んでいた位置を見失いません。
3D Metal 紙めくりシミュレーション
独自の Metal コンピュート/フラグメントシェーダで計算されるインタラクティブな紙のカール。指のドラッグ角度に応じて動的に反応し、本物のような接触影を落とします。
ピクセル単位で正確なビューポート配置
行に追従するスマートなフローティング操作オーバーレイ。端の近くでは選択 UI が余白へなめらかにはみ出し、ビューポートから切れることはありません。
SpeechReader 読み上げ
文と単語の2段階でハイライトする音声読み上げエンジンを内蔵。同期して動く文のバンドと、読み上げ中の単語を示す枠を、リアルタイムで目で追えます。
ピンインとふりがな(ルビ)
東アジア文字の上に付ける読み仮名のルビをネイティブにサポート。Core Text の行の高さの計算に直接組み込まれており、レイアウトが欠けることはありません。
ライブラリにあるあらゆる形式を読めます。
内蔵のバイナリパーサーと統計的な文字コード判定により、古いテキストファイルも、DRM フリーの最新の EPUB も、文字化けなくきれいに開けます。
電子出版物
XHTML パッケージのナビゲーション、章の構造、インラインスタイル、ベクター SVG、埋め込み画像に対応。
Kindle PalmDOC
Huff/CDIC デコードに対応した PalmDOC 解凍を直接実行。古いライブラリも変換なしで読めます。
XML FictionBook
スキーマを完全に解析し、base64 埋め込み画像のデコード、詩の連(スタンザ)レイアウト、著者メタデータにも対応。
CommonMark と散文
見出しから充実した目次を自動生成。引用、強調、コードスパンも保持します。
あらゆる文字コード
GB18030、Big5、Shift-JIS、EUC-KR、UTF-8、UTF-16 を統計的に判定し、章も自動で検出します。
中身を確かめられる、すっきりした設計。
Reader のすべての不変条件は、完全な並行処理の分離のもとで動作する充実した自動テストで検証されています。
| コンポーネント | アーキテクチャ / 技術 | 主要な指標 | 目的 |
|---|---|---|---|
| 組版コア | Core Text (C / Metal) | 1ページ 0.8 ms | 1ミリ秒未満のラスタライズ、DOM 由来の遅延ゼロ |
| 並行処理モデル | Swift 6 Actor 分離 | Complete モード | データ競合のない厳密なマルチスレッド |
| ページカールの物理 | Metal Shading Language | 60 / 120 FPS | 動的な接触影を伴う、3D のインタラクティブなメッシュ折り |
| 位置インデックス | UTF-16 コードユニットのインデックス | O(1) のシーク速度 | CJK のサロゲートペアによるずれを防止 |
| 自動テスト | Swift Testing Suite | 410 件のユニットテスト | ページ分割と端のクランプを網羅的にカバー |
| 対応プラットフォーム | iOS 17.0+ / macOS 14.0+ | マルチウィンドウ | キーボードと vim キーに完全対応したユニバーサル SwiftUI デザイン |