/api/touch

livedoor Readerアプリを作りながら気付いた点。
前回書いたように、/api/touchの意味がlivedoorのシステムに記事が取り込まれた時間に対するものだとすれば、記事のリストの中で「ここまで読んだ」という指定には使えない。しかし、feedの記事を「全部読んだ」と指定する場合に普通は/api/touch_allを使うことを考えるが、この場合にむしろ/api/touchを使用すべきなのではないか。

アプリを起動して未読の記事を全部取得する。それを読んでいるうちに時間が経過して、どれかのfeedに未読の記事が追加されたとする。しかしユーザはreloadしないでそのfeedの記事を表示してしまうと、/api/touch_allが呼び出されて、追加された記事は見る機会の無いまま既読になってしまう。
touch_allの代わりにtouchを使用して、最初に記事を取得した時間をtimestampとすれば、このようなことは殆ど起こらない。

AeroReaderを使って実際にどうなっているのか確認してみると、追加された記事も既読になっているようだった。

(注 前回書いた内容が正しいと保証するつもりはない)