作品の仕組み 2026-10-21
過去問ループをホーム画面に置ける仕組み ― 資格ごとのマニフェスト、/study/ の下だけで働くサービスワーカー、記録は端末から出さない
過去問ループは、アプリストアを通さずに、ウェブのページのままスマートフォンのホーム画面に置けて、一度開いた資格は電波が無くても解けます。アイコンから開いたときにその資格の一覧で始まるマニフェスト、ページはネットを先に・ファイルは控えを先に使うサービスワーカー、記録を端末の中だけに置くことの良さと弱点(機種変更で引き継げない、iPhoneではSafariとホーム画面で記録が分かれる)を書きます。
この記事の位置: AIが作り、コードが検分する → [送らない(端末の中で完結する)] → 数字と実寸 → 教材の設計
2026年10月19日、過去問ループを、スマートフォンのホーム画面に置けるようにしました。アプリストアには出していません。ウェブのページのまま、ホーム画面にアイコンを置けて、全画面で開き、一度開いた資格は電波が無くても解けます。この形を、PWA(ホーム画面に追加できるWebアプリ)と呼びます。作るときに決めたことは三つでした。アイコンから開いたとき、どの画面で始めるか。電波が無いとき、何を返すか。記録をどこに置くか。
アプリストアに出す道を選ばなかったのは、手間とお金の話だけではありません。ストアのアプリは、直すたびに審査を通し、使う人に更新してもらう必要があります。過去問ループは、問題の誤りを見つけたら、その日のうちに直したい作品です。ウェブのページのままなら、直したものが次に開いたときにそのまま届きます。インストールも登録もいらない、という入口の軽さも、そのまま残せます。
一つ目の、どの画面で始めるか。ホーム画面に置くアイコンの名前、色、開く場所は、「マニフェスト」という小さな設定ファイルに書きます。過去問ループは、宅建、行政書士、賃貸不動産経営管理士、マンション管理士など10の資格を一つの作品で扱っていて、マニフェストを資格ごとに分けました。過去問ループのトップの分を合わせて11個です。宅建の一覧で「ホーム画面に追加」をすると、アイコンの名前は「宅建」になり、開くと宅建の科目一覧から始まります。勉強している資格が一つなら、アイコンを押してすぐ、その資格の科目が並ぶほうがいいからです。二つの資格を勉強している人は、アイコンを二つ置けます。
マニフェストは、過去問ループのページを開いているあいだだけページに差し込み、ほかのページに移ったら外します。KuraLabには定規や解説記事など別の作品も並んでいて、それらのページで「ホーム画面に追加」をしたときに、過去問ループのアイコンになってしまわないようにするためです。
二つ目の、電波が無いとき何を返すか。これを受け持つのが「サービスワーカー」です。ブラウザの中で、ページと通信のあいだに入って働く小さなプログラムで、届いたものの控えを取っておき、電波が無いときに控えを返すことができます。働く範囲は /study/ の下だけに絞りました。記事やほかの作品の通信には手を出しません。
扱いは二通りに分けています。ページそのもの(/study/takken など)は、まずネットから取りに行き、取れたら控えを新しくします。電波が無いときだけ、控えを返します。問題の誤りを直したり資格を足したりしたときに、古い画面が出続けないようにするためです。一方、画面を動かすプログラムや問題データのファイルは、ファイル名に中身から作った印(ハッシュ)が入っていて、中身が変われば名前も変わります。名前が同じなら中身も同じなので、控えがあれば控えを先に使います。そのぶん、二回目からは速く開きます。
スマートフォンの中で、サービスワーカーがページと通信のあいだに入る。ページ(/study/の下)はネットを先に取りに行き、電波が無いときだけ控えを返す。名前にハッシュの入ったファイル(プログラムと問題データ)は控えを先に使う。記録(○×と確信度)は端末のlocalStorageにあり、サービスワーカーは触れず、サーバーにも送らない。
サービスワーカーが働くのは /study/ の下だけです。iPhoneとiPadでは、ホーム画面のアイコンから開いたときの保存場所がSafariとは別になります。
問題データは資格ごとに別のファイルになっていて、開いた資格の分だけを読み込みます(過去問ループの仕組みの記事に書いた、資格ごとのパックです)。控えに入るのも、開いた資格の分だけです。だから「一度開いた資格は、電波が無くても解ける」のであって、開いたことの無い資格は、電波の無いところでは開けません。電波が無いときに、まだ控えの無い画面(たとえば宅建の演習の画面)を開こうとしたときは、同じ資格の控えのページを返します。画面はURLを見て組み立て直すので、ページの中身は同じもので足ります。
三つ目の、記録をどこに置くか。過去問ループの記録(○×と確信度、1問あたりの履歴、日ごとの点数)は、最初から端末の localStorage(ブラウザが端末の中に持つ保存場所)に置いていて、サーバーには送りません。PWAにしても、ここは変えていません。サービスワーカーは記録に触れず、控えにも入れません。登録もログインも要らないのは、預かる記録がそもそも無いからです。
その代わりの弱点も書いておきます。記録は、その端末の、そのブラウザの中にしかありません。機種を変えると引き継げず、ブラウザのデータを消すと記録も消えます。そしてiPhoneとiPadでは、ホーム画面に追加したWebアプリは、Safariとは別の保存場所を持つ仕組みになっています。Safariで解いてきた記録は、ホーム画面のアイコンから開いたほうには出てきません。追加するなら早めに、追加したあとはアイコンから開いて解く、というのが今のおすすめです。記録を書き出して別の端末に移す機能は、いまはありません。
控えに入る量も書いておきます。控えに入るのは、過去問ループの画面のプログラム一式と、開いた資格の問題データです。問題データは資格ごとに大きさが違い、肢の数が多い資格ほど大きくなります。全部の資格を開いても、スマートフォンの保存容量から見れば小さな量です。反対に、ホーム画面のアイコンを削除すると、端末によっては、そのアイコンから開いて解いた記録も一緒に消えることがあります。勉強を終えるまでは、アイコンは消さずに置いておいてください。
ホーム画面に置く案内は、各資格の一覧に出しています。AndroidのChromeやパソコンのChrome・Edgeのように、ブラウザが追加のボタンを出せるときは、その場に「ホーム画面に追加する」ボタンを出します。iPhoneとiPadのSafariにはそのボタンが無いので、共有ボタンから「ホーム画面に追加」を選ぶ手順を文で書きます。追加できないパソコンのブラウザと、すでにアイコンから開いているときは、案内そのものを出しません。
うまくいかなかったときのことも決めてあります。古いブラウザなどでサービスワーカーの登録に失敗しても、普通のウェブページとしてそのまま解けます。どのブラウザでも解けることが先で、電波の無いところで解けることは足し算です。控えには版の名前を付けていて、版を上げたときは古い控えをまとめて消し、古い画面が残らないようにしています。
この作品を「送らない(端末の中で完結する)」の棚に入れているのは、このためです。記録は送らず、問題は端末に控え、電波が無くても一周できる。通勤の地下鉄の中でも解けます。代わりに、記録の引っ越しはまだできません。そこは正直に書いておきます。
執筆:長澤 湊(宅地建物取引士・行政書士・測量士補) 内容確認日:2026-10-21
この記事は制度と手続きの一般的な説明で、個別の事案についての法律・税務の相談や判断ではありません。制度や数字は内容確認日の時点のものです。ご自身の事案は、弁護士・司法書士・税理士・行政書士など、該当する専門家に確かめてください。
参考(公式)
この記事の制度と数字は、次の一次情報で確かめられます(2026-10-21 確認)。
- W3C「Web Application Manifest」 ― ホーム画面に置くときの名前・アイコン・開く場所(start_url)・範囲(scope)を書く設定ファイルの仕様
- MDN「サービスワーカー API」 ― ページと通信の間に入り、電波の無いときに控えを返すなどの処理をするしくみの解説