Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

LT20110226 Slim3+android

1,377 views

Published on

Published in: Technology
  • Be the first to comment

LT20110226 Slim3+android

  1. 1. イマドキの Slim3(GAE)+Android アプリ開発 株式会社エイチーム 技術開発部長 高橋 宏明 @hironey
  2. 4. Camelog is   位置情報付き 写真共有 サービス
  3. 5. Android Google App Engine + Slim3 位置情報と写真 URL および属性情報 アーキテクチャ
  4. 6. カメラで見る機能 <ul><li>現在地の周囲 1km 以内に投稿された写真を検索してカメラ上に AR 表示する機能 </li></ul>
  5. 7. 緯度経度での検索 <ul><li>RDBMS で緯度、経度を用いた検索をするなら </li></ul><ul><li>WHERE lat BETWEEN 34.1 AND 34.2 </li></ul><ul><li>        AND lon BETWEEN 135.1 AND 135.2 </li></ul><ul><li>App Engine では、 </li></ul><ul><li>複数のプロパティに対して不等号で検索できない。 </li></ul>
  6. 8. GeoHash
  7. 9. GeoHash <ul><li>緯度、経度をハッシュで表す仕組み。 </li></ul><ul><li>例えば、東京タワー  35.65861, 139.745447 は、 xn76ggrw26 </li></ul><ul><li>GeoHash は桁数が精度を表していて </li></ul><ul><li>例えば、 8 文字で 19m*31m のグリッドになる。 </li></ul>面白いのが、桁数を減らすと、より広域のエリアを表すハッシュになる点 引用元: @masuidrive blog  http://blog.masuidrive.jp/index.php/2010/01/13/geohash/
  8. 10. GeoHash の実装( App Engine 向け) <ul><li>Python </li></ul><ul><li>    geomodel : http://code.google.com/p/geomodel/ </li></ul><ul><li>  </li></ul><ul><li>Java </li></ul><ul><li>    javageomodel : http://code.google.com/p/javageomodel/ </li></ul><ul><li>  </li></ul><ul><li>・緯度経度->ハッシュ変換 </li></ul><ul><li>・データストアからの検索 </li></ul>
  9. 11. GeoHash の実装( App Engine 向け) <ul><li>javageomodel は JDO </li></ul>
  10. 12. GeoHash の実装( App Engine 向け) <ul><li>Slim3 が使ってるデータストアの低レベル API に比べると JDO は遅い </li></ul><ul><li>PersistenceManagerFactory の初期化も時間がかかる </li></ul>
  11. 13. GeoHash の実装( App Engine 向け) <ul><li>Slim3 Datastore を使うように拡張した slim3-geomodel を実装した </li></ul><ul><li>geohash 以外の検索条件も追加 </li></ul>
  12. 14. Android - JSON - GAE <ul><li>Android と GAE とのインタフェースのために WebAPI を開発。 </li></ul><ul><li>レスポンスは JSON 。 </li></ul>
  13. 15. Android - JSON - GAE <ul><li>Java だと JSON データを生成、パースしたり HashMap から値を取り出したりするのが </li></ul><ul><li>メンドイ </li></ul>
  14. 16. Android - JSON - GAE <ul><li>GAE と Android で同じ Java クラスを利用するライブラリを作成することで、 JSONIC(*1) で一発でエンコード、デコードし、双方で同じ型の Java オブジェクトとして使えるようにした。 </li></ul><ul><li>*1   JSONIC は、 Java 用のシンプルかつ高機能な JSON エンコーダー / デコーダーライブラリです。  http://jsonic.sourceforge.jp/ </li></ul>
  15. 17. 以下のキーワードにピンと来た方は ぜひエイチームへ! Android Google App Engine Slim3 iOS

×