Tisaki Apps

SCP記事一覧の表示を速くするためにローカルDBを採用した話

毎回APIへ問い合わせる構成から、アプリ同梱DBと差分更新へ変更した経緯をまとめます。

初期版では記事一覧を表示するたびにサーバーへ問い合わせていました。データが少ない間は問題ありませんでしたが、記事数が増えると起動直後の待ち時間が目立ち、ネットワーク状態によって一覧そのものが開けないこともありました。

一覧データは端末に持つ

記事タイトル、番号、言語、URLなど、頻繁には変わらない情報をローカルDBへ保存する構成に変更しました。アプリの初回起動時から最低限の一覧を見られるようデータを同梱し、その後でサーバーとの差分だけ更新します。

すべてをキャッシュしない

サムネイルや記事本文まで同梱すると容量が大きくなり、更新も複雑になります。そこで、一覧表示に必要な情報はローカル、サムネイルは表示時、本文は記事を開いた時に取得するよう役割を分けました。オフライン対応とアプリ容量の折り合いをつけるための判断です。

並び順も利用体験の一部

英語記事と日本語記事、通常番号とJoke記事が混ざると探しにくくなります。番号として比較できる記事を先に並べ、特殊な接尾辞を持つ記事は後ろへ送るなど、単純な文字列順ではない並び替えも実装しました。速度だけでなく、目的の記事へ到達しやすいことを重視しています。

関連する記事