他の人によって登録されている枚数。お店の紹介コメントなどを取得してきます。STEP1で基本的な画面構成はすでに表示していますので、データを読み込み次第、遅延させてレンダリングしているため、画面遷移のレスポンスには影響ありません。2の部分は折りたたみできるタブとして構成しています。iPhoneだと閉じて表示。iPadだと開いて表示するのがデフォルトにしていますが、特にiPhoneだと遅延表示されても見た目にほとんど影響がないです。ShopCard.meは、当初、電波の繋がらないお店の奥とかで使ってもらうことを想定していたので、基本的には取得してきたデータをローカルにキャッシュしています。通信が途切れていても、お店の詳細情報は表示されるし、お店の情報をBluetooth経由で、友達にシェアすることができるようにしていました。店舗の詳細情報は、キャッシュさえあれば通信なしで表示できます。一度キャッシュしたら、一覧画面のお店配列に詳細情報をぶらさげているので、画面の行き来をするだけなら二度目以降は通信が発生しない仕組みになっています。API利用規約の方で、最新情報を表示するために長期間のキャッシュは禁止になっているので、都度APIから最新情報を持ってくるようにしてあります。食べログ、ぐるなびなどの情報サイト検索ShopCard.meの実態は、お店情報の検索ロボットみたいな作りになっていて、実質Google検索クライアントです。裏で、お店の情報を元に食べログやぐるなび、海外ならYelp!、ホテルとかならTripAdviserなどのお店ページを探してきて、一覧で並べて調べることができるようになっています。ShopCard.meで既に探索済みもしくは登録済みのURL情報があれば、STEP2の段階でURLを持っていますが、そうでなければ、STEP2でショップの詳細情報を読み込んできた後で探しに行く処理が走っています。たべろぐやぐるなびなど、個別のグルメサイトを探しに行くリクエストはすべて非同期で行われています。2.ユーザーがShopCard.meに直接アップロードした画像の2種類があります。登録済みの画像があれば、Step2で画像URLを持ってきてるので、遅延ローディングで画面にレンダリングしています。サムネイル画像がない場合は、サーバ側で画像をネットに探しにいく非同期キューが走るようになっています。そのため一度リクエストがあった場合、過去に誰かがShopcard.meサーバに画像をアップロードしていないのであれば、画像を探しに行くキューがサーバ側で走っています。一度目は即座にサムネイルが表示されなくても、画像情報が見つかり次第URLを取得し、画像を表示するという流れになっています。サムネイルを探しに行くためのキューは、一つ前の画面のお店一覧画面でも裏側で走っており、見知らぬ土地で検索しても、いい感じに画面表示してくれるようになっています。この画面は、画面を下に引っ張ると、すべての情報をリロードしてくるようになっており、iPhoneの方で回線が繋がらないような通信エラーが発生したとしても、リロードして画面が再構成されるようになっています。サムネイルの再更新は、その処理をで行うようにしています。今後について今はユーザーのリクエストベースで、情報を探しに行く処理を走らせていますが、クローラで事前に探しに行くような処理を入れたいのと、位置情報APIに依存しない情報検索機能を作りたいと思っています。限られたオフ時間を、今は大学院の研究の方を優先していて、抜本的な作りなおしをする時間が取れないのですが、ちょいちょい時間を作ってはいじっています。あと抜本的な改善という意味では、構成とデザイン自体を全部作り直したいなーと思ってたりします。それ結構、お金も手間もかかるんでアレなんですが、こないだアメリカ行った時に、あ、このデザインいいなってのがありまして。アプリのサービスの方にご興味をもっていただいた方がいたら、是非お使いいただけますと幸いです。ちなみに裏ワザなんですが、他のアプリとかWebページのURLをクリップボードにコピーすると、状況にあわせて、いい具合にお店の情報を取り込む機能とかをつけています。X250を購入してみた。Garageは、Webを中心としたビジネス&テクノロジーに関する思いつきを綴ったブログです。初代モバツイ開発者インターネットと日常の生活が融合された「何か楽しいもの」/「便利なもの」を作ることを目標に活動中。Fujikawa(@fshin2000)。