ブログをアプリ化したいという要望はよく聞かれます。ブログシステムはフィード配信を行っているので、それをアプリ側で解析すれば簡単にできそうです。
とはいえ、単に読み込んで表示するだけでは面白くありません。例えば次のような機能を実装したいと思ったとします。
- オフライン時の対応
- フィードを取得、解析
- 既読管理
これらの機能をMonacaを使った場合にもどう実装すればいいのか紹介します。
1. オフライン時の対応
デバイスがインターネットにつながっているかどうかは次のようなコードで管理できます。
// オンラインになった時に呼ばれるイベント document.addEventListener("online", onOnline, false); // オフラインになった時に呼ばれるイベント document.addEventListener("offline", onOffline, false);
このイベントを使って、フラグを管理することでオンライン/オフラインの管理ができます。
そしてオフライン時に取得したフィードのデータはそのままlocalStorageに保存しておくのがいいでしょう。画像データについては今回は対象外とします。
そしてオフライン時はlocalStorageのデータを使い、オンライン時にはサーバから取得できるデータを使って解析を行えばいいでしょう。
2. フィードの取得、解析
フィードはXML形式になります。解析するのは多少面倒です。そこでmBaaSを使った方法を紹介します。ブログのフィードデータを定期的に取得し、mBaaSに登録しておくのです。こうしておくことで、mBaaSのJavaScript SDKを使って簡単にデータの取得、利用ができるようになります。
SDKを使えばデータを検索したり、並び替えや絞り込みも簡単にできるようになります。RSSフィードではそういった操作はできませんが、mBaaSを経由することでデータの蓄積や再利用が手軽になります。
3. 既読管理
記事を読んだ、読んでいないといった既読管理を行うのもmBaaSを使うことで簡単に実現できます。ユーザ登録していない場合でも、匿名会員機能を使ってデバイス単位でデータを管理できるようになります。これにより既読管理ができるのです。
アプリ利用者にユーザ登録してもらうというのはとても障壁が高いものです。いくら役立つと思ってもなかなかしてくれないでしょう。そんな時に使えるのが匿名会員機能になります。利用者は意識せずに使える機能になりますので、デバイス単位でのデータへのアクセス権限ができます。なお、匿名会員はデバイス単位になりますので、複数デバイス所有している場合のデータ同期を行いたいと思ったら会員登録してもらう仕組みが必要になるでしょう。
なお、アプリならではの機能を考えるならば、プッシュ通知の実装は必須といえます。プッシュ通知を使うことでブログコンテンツをアップしたタイミングで利用者に通知ができます。mBaaSを使えばデータ登録で使ったWeb APIと同じ仕組みでプッシュ通知の作成ができます。新しいコンテンツをデータ追加したらプッシュ通知も作成するようにすれば良いでしょう。