この記事についてClaude(Anthropic)との共同編集により作成されました。
要約
- 日本語の小説や記事を、横書きのブラウザではなく本のような縦書きで読むための Android アプリ「tanzaku」を作って、Google Play で公開した
- WebView で開いたページに縦書き CSS を自動注入する。サイト側を変えずに、横書きのページをそのまま縦組みで表示する
- 青空文庫・なろう・カクヨム・はてなブログなど、縦書きで読みやすいサイトがホームに並ぶ。しおり・文字サイズ調整・自動ページ送りも用意
- React Native(Expo)製。これまで作ってきた Web アプリ(tobari / souten / ema)とは違い、初のネイティブアプリ
- 紹介ページは /tanzaku/。入手は Google Play から
日本語の小説を、スマホのブラウザで縦書きのまま読みたい。 そう思って探すと、意外とちょうどいいものがない。だから作った。名前は tanzaku(短冊)。横書きの日本語サイトを、本のような縦組みに変換して読むためのブラウザアプリで、Google Play で公開した。
まずは紹介ページに 27 秒の動画を置いてあるので、雰囲気はそちらが早い。
作った動機 — 横書きで失われる「本の呼吸」
青空文庫の近代文学も、なろうやカクヨムの Web 小説も、書かれた文章そのものは縦書きを前提にしたリズムを持っている。 それをブラウザの横書きレイアウトで読むと、行の流れも改ページの間も変わってしまって、本で読むときの没入感がそがれる。読めはするけれど、読書という感じがしない。
ブラウザの設定や拡張で縦書きにする手もあるが、スマホで手軽にとはいかない。 「開いたら縦書きで読める」状態が最初から用意されている場所が欲しかった。それが tanzaku。
ターゲットははっきりしている。
- スマホで青空文庫やなろう・カクヨムを読む習慣がある人
- 横書きの長文がどうも頭に入りにくい人
- 縦書きの読書体験を、設定をいじらず手軽に取り戻したい人
仕組み — サイトを変えずに縦組みにする
tanzaku の中身は WebView ベースのブラウザで、開いたページに縦書き CSS を自動注入している。 ポイントは、サイト側を一切変更しないこと。横書きで提供されているページを、表示する側だけで縦組みに組み替える。
縦書きにすると、リンクを踏んで次のページに移ったときに本文位置がずれやすいのだが、そこは位置の引き継ぎを工夫して、読んでいた場所から大きく飛ばないようにしている。地味だが、長編を読むときに一番効く部分。
できること

- 縦書き CSS 自動注入 — 横書きのページも自然な縦組みで読める
- ホームから 1 タップ — 縦書きで読みやすいサイトが並ぶアプリ内ホーム。タブを行き来する手間がない
- しおり保存 — 和の伝統色で色分けした、保存先がひと目で分かるブックマーク
- 文字サイズ調整 — 長編をじっくり読むときも目に優しい大きさに
- 自動ページ送り(プレミアム) — 読書中に画面が自動でスクロール。速度を細かく調整できる
ホームに並ぶのは、小説系(青空文庫・小説家になろう・カクヨム・ハーメルン・アルファポリス)、短歌(Utakata)、読み物系(はてなブログ・note)。 いずれもコンテンツは各サイトの提供物で、tanzaku は縦組みで読むための閲覧用ブラウザという立ち位置。
これまでの Web アプリとは違い、初のネイティブアプリ
これまで公開してきた tobari・souten・ema は、どれもブラウザのタブひとつで完結する Web アプリだった。 tanzaku はそこから一歩出て、React Native(Expo)で作ったネイティブアプリになる。WebView を中心に据えつつ、ホーム・しおり・設定といった枠の部分はネイティブ UI で組んでいる。
広告とサブスクリプションの扱いも、Web アプリのときよりは正面から向き合う必要があった。 基本は無料で、控えめなバナー広告が出る。リワード動画を見るとその日は広告が消える。プレミアムに登録すると広告が完全に消え、自動ページ送りが使えるようになる、という構成にしている。
しおり・最後に開いたページ・文字サイズといった設定はすべて端末内にのみ保存していて、外部には送っていない。詳細はプライバシーポリシーに書いた。
おわりに
日本語を、縦に読もう。
tanzaku はそれだけのアプリ。 横書きで読まされていた日本語の小説や記事を、本のかたちに戻して読むための場所を用意した、という話でした。
紹介ページは /tanzaku/、入手は Google Play から。
不具合や要望は hiranorm.support@gmail.com まで。