iPhoneで「小説家になろう」を読む ── NarouReader iOS

「小説家になろう」をiPhoneで読むためのリーダーアプリ『NarouReader』を公開している。App Storeではなく、SideStoreまたはAltStore Classic経由のサイドロード配布である。

この記事では、アプリの特徴、設計の方針、そしてインストール手順をまとめる。

なぜ作ったか

既存のAndroid向けリーダーアプリ「なろうリーダ」(TSCSoft)を普段使いしていた。機能や挙動が手に馴染んでいるこのアプリを、iPhone環境でも使える形に再構築したかった、というのが出発点である。

iOS向けには「なろうAPIを使って本文テキストだけを取得する」タイプの非公式アプリがいくつか存在する。しかし、なろうの利用規約を読むと、本文テキストのAPI経由取得や再配布は明示的に禁止されており、この手のアプリは規約との整合性に問題がある

そこで、Android版の挙動に寄せつつ、なろう公式規約に抵触しない表示方式を採用した。すなわち、本文はブラウザ(WKWebView)で公式ページをそのまま読み込み、本文要素を抽出して再描画する。APIで取得するのはメタデータ(タイトル、作者、話数など)のみ。これがNarouReaderの基本設計である。

アプリの特徴

読書位置の自動保存と復元

スクロール位置を自動検出し、SwiftDataに永続化する。アプリを閉じて再開しても、最後に読んでいた位置から再開できる。

最後までスクロールした状態を3秒間維持すると、その話を「読了」と確定する。読了判定は話単位で記録され、本棚や作品詳細の未読数表示に反映される。

リーダー表示

フォントサイズ、行間、ダークモード、縦書きなどを設定から調整できる。フォントはiOS標準のものに加え、プロファイル経由で追加したフォントも選択できる(一部制限あり)。

表示方式は「公式そのまま表示」と「カスタム表示(本文抽出)」を切り替えられる。カスタム表示時は、なろう公式ページから本文要素だけを抽出して再描画する。

本棚・検索・ランキング

  • 本棚:読書中の作品一覧と更新チェック(新着話の検知)。
  • 検索:なろう小説API経由で作品を検索。ジャンルや文字数などで絞り込み可能。
  • ランキング:日間・週間・月間・四半期・年間の各種ランキングを閲覧。ジャンル別フィルタにも対応。
  • 作品詳細:あらすじ、話数、更新日時、作者の他作品一覧。

前書き・後書きの表示

本文だけでなく、なろうの前書き・後書きも切れ目なく表示する。これらを読むか飛ばすかは、読者の選択に委ねる。

広告なし・課金なし

広告配信を停止し、AdMob SDKを撤去した。配布IPAに広告IDは含まれず、機能制限や課金要素もない。完全無償で配布している。

なろう規約への対応

本アプリは小説家になろうの公式規約に従って設計している。具体的には次の点を遵守する。

  • 本文テキストのAPI取得は行わない。本文はWKWebViewで公式ページを読み込み、本文要素を抽出して再描画する。
  • 広告除去を目的とした通信ブロックは行わない。本文抽出は許可リスト方式(抽出対象のみ描画)で実装し、display:noneによる事後ブロックは使わない。
  • API取得データはメタデータのみ。タイトル、作者、話数、ジャンル、あらすじなど。
  • 挿絵(画像)は著作者の意図に反して非表示にしない。遅延読み込みによる通信最適化は行うが、最終的に挿絵は表示される。
  • CSS注入は表示調整に限定。フォント、サイズ、色、行間、余白、縦書き、ダークモードなど。

この方針はAndroid版「なろうリーダ」のCacheモードと同等である。公式ページをWebViewで表示しつつ、読みやすさのための表示調整だけを行う。

動作環境

  • iOS 17.0以上
  • iPhone専用(iPad未対応)
  • 現在のビルド環境:Xcode 26.3

インストール手順(サイドロード)

本アプリはApp Storeで配布していない。SideStoreまたはAltStore Classicを使ってサイドロードインストールする。どちらもAppleのDeveloper Enterprise Programには依存せず、個人開発者アカウントで署名したIPAを自分の端末にインストールする仕組みである。

Source URLは次の通り。

https://altstore.xnunux.com/source.json

以下のいずれかのアプリにこのURLを「Source」として追加すると、NarouReaderがアプリ一覧に表示される。

SideStoreの場合

  1. App Store以外の経路でSideStoreをインストールする(公式サイト sidestore.io 参照)。
  2. SideStoreを起動し、「Sources」タブを開く。
  3. 右上の「+」ボタンから https://altstore.xnunux.com/source.json を追加する。
  4. 「Browse」タブでNarouReaderを探し、「Install」をタップする。

既知の注意点:SideStoreには、アプリを更新済みでも更新ボタンが表示されない不具合が報告されている(SideStore Issue #975)。この場合は、一度Sourceを削除して同じURLを再追加し、アプリを再インストールすれば最新版になる。

AltStore Classicの場合

  1. AltStore Classicをインストールする(公式サイト altstore.io 参照)。
  2. AltServerをパソコンに導入し、AltStore Classicを端末にインストールする。
  3. AltStore Classicを起動し、設定からSourceを追加する。
  4. Source URLに https://altstore.xnunux.com/source.json を入力する。
  5. NarouReaderを探し、「Install」をタップする。

いずれの方式でも、7日間または1年ごとの再署名が必要になる。これはAppleのサイドロード制約によるもので、本アプリ固有の問題ではない。

フィードバックと不具合報告

不具合報告や機能要望は、GitHubリポジトリ nunu1733/altstore-source のIssueで受け付けている。

ソースコード自体は非公開だが、配布用メタデータ、アプリ定義、Release運用は同リポジトリで公開している。

おわりに

App Storeの審査を通さず、サイドロード専用での公開という選択は、用途が限られることを理解している。それでも、規約に適合した表示方式を維持しつつ、自分が普段使いできる品質まで持っていけたので、同じように「iPhoneでなろうを快適に読みたい」という方に届けばと思い、公開に踏み切った。

なろうの公式アプリやWebブラウザでも読めるが、「しおりの自動保存」「読了判定」「カスタム表示」といった、長編を追い続けるための細かい積み上げは、専用アプリならではの価値だと考えている。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール