プログラマーですが何か?まだプログラマーですが何か?プログラマーネタとアスリートネタ中心。作る機会がありました。中でも特にキャッシュ機能を試すことが主目的だったのですが、最低限の機能を実装して公開してみたので、興味ある方は以下を参照して使ってみてください。動作を可能にする」ことを主目的としています。自体の説明をすることが本ブログエントリの目的ではないし、そこまで含めてしまうと長くなりそうなので、興味ある方は適当にググってください。特徴的な機能がいくつかありますが、今回は特に「キャッシュ機能」を確認するためのアプリケーション実装を行いました。「インストール」してみます。場合):正しく追加できるとホーム画面に以下のようなアイコンが追加され、次回からはここをタップすることで同じアプリを起動できるようになります。いうわけでこちらをタップします:先程に似た画面が表示されます。して起動してネイティブアプリっぽく起動しています:「(カテゴリーを選択)」と書かれた部分をタップすると、この後選択する画像のカテゴリー一覧が表示されます。実際には色々なカテゴリーがあっていくつか試すこともできるのですが、キャッシュの説明のため以下は「こども」カテゴリーを選択したものとして(それ以外のカテゴリーは選択していないものとして)説明を続けます:カテゴリーを選択すると、「いらすとや」の選択したカテゴリーの画像がカルーセル表示されます。画像を右や左にフリックすることで次の画像や前の画像を表示できます:カルーセルから「パズルにしたい画像」を選んでタップします。スライドパズル化され、実際に遊ぶことができるようになります:(簡単なパズルではないのですが・・)パズルを進めていって、完成すると、・・・パズル完成までに要した時間と動かした回数が表示されます:続いて過去の(回数の少ない)トップ10が表示されます。直近の記録がこの中に含まれていれば強調表示される、というゲームです:ここまではネットワークに接続された状態で行いました。データをキャッシュすることで、オフラインでもある程度の利用が可能になります。その部分を試してみましょう。アプリをいったん終了(タスク一覧から終了)しておいてください。スマホをオフライン状態にします。状態に設定します:あらためてホーム画面のアイコンからアプリを起動します。先程起動した時に表示されたトップページは自動的にキャッシュされていて、ネットワーク接続がなくても表示され、カテゴリー選択状態になります:カテゴリーとして「こども」を選択した場合も先程の実行時にキャッシュできているので、ネットワーク接続がないにも関わらず画像含めて表示することができています。ここで表示されているのはあくまでキャッシュに含まれている画面であって、ネットワーク接続時の最新状態が表示されているわけではありません:しかし先程選択しなかったカテゴリー(例えば「職業」)を選択すると、こちらの内容は接続状態でのキャッシュが存在していないため、カルーセルの中身を取得することができず、何も表示されない、という状況になります。アプリケーションは以下のようなシステム構成となっています。構成そのものはウェブアプリケーションのシステム構成そのもので、この中で「いらすとや」のページをリアルタイムにスクレイピングしてカテゴリー一覧やカテゴリーの画像一覧を取り出して、アプリケーションの中で利用しています。化する際にいくつか設定のためのファイルを追加するのですが、それらの準備が完了していると、以下のような仕組みでキャッシュが(自動的に)実現されます。キャッシュデータが全くない状態でオフライン操作することはできません。ないと何も表示できません。オフラインでキャッシュ表示するためにはオンライン時にある程度の情報をキャッシュしておく必要があります。する際のパスとその結果を自動的にキャッシュします。データをサーバーに送信することもできません:このアプリケーションのソースコードはこちらで公開しています。アクセスが必須となります。ブログ検索」ブログパーツは、サービスを終了しました。