投稿

1月, 2011の投稿を表示しています

Facebook対応してみました

SmartTraining 5.4.0で真面目にFacebook対応してみたのでメモメモ。 ◆動機 ここのところ、「あれ、こんな人(いかにもFacebook使わなそうな人という意味で)からFacebookの友達登録キタ」。だんだん広がってるんだねぇ。と実感。じゃぁ、SmartTrainingもTwitterと同じレベルでFacebook連携したいよね。 ◆これまで これまでのバージョンでも「Facebookにリンクをシェアする」という形でなんちゃってFacebook対応はしていました。 この仕組は、URL(テキストではなく、わざわざ表示対象となるデータをGoogle MapsにアップしてMapのURLを取得していた)を含んだIntentをFacebook本家のアプリに投げるというものでした。 どういうわけか、Facebook本家のアプリは、plain/textなIntentのデータを無条件でURLとして扱ってくれます。これはただのテキストを送ってもそれを取り扱えず、テキストのみをFacebookのウォールに投稿することができないという意味になります。個人的には爆発してほしい仕様です。 ◆逃げ道は? まずは、手っ取り早い逃げ道。 plain/textなIntentからStringを取り出してFacebookに投稿してくれるFacebook本家以外のクライアントを経由すればいいわけです。 例えば、TweetDeckがその機能を持っています。が、このクライアントの使用をユーザに強要するわけにもいきませんので、残念ながら真面目にFacebook対応をしなくてはいけなくなります。 ◆(渋々)真面目にFacebook対応してみる まずは、 Facebook Android SDK について理解します。 、以上! で終わらせるのはさすがにアレなので、もう少し詳しく。 ・普通にAndroidアプリが開発出来る環境を準備。 ・Git使えるようにする。 ・GitHubリポジトリからFacebook android SDKをダウンロードする。 > git clone git://github.com/facebook/facebook-android-sdk.git で、取ってこれる。 ・SDKに含まれるFacebookディレクトリ内のソースをAndroidプロジ

AWS対応してみました

イメージ
今日のABC2011wでもAmazonさんが講演されていた今話題(?)のAmazon Web Service for Android(AWS)。 SmartTrainigでもAWSを利用してみたのでまとめまとめ。 ◇今の状況 ・「ラリー機能で誰が先頭を走ってるか表示できたら燃えるよ?」って意見もらう。 ・GAE本買って読む。 ・よくわからない。時間無い。挫折。 ・半年放置。 ・デ部でセカイのやましたさんからAWSについて教えてもらう。 ・何それ、サーバプログラム書きたくない俺向きジャン。 ・とりあえずテスト的にSmartTrainingに機能追加してみた。 ←今ここ! ◇成果 これまで、 SmartTrainig のラリー機能は自分が走った距離を貯めて仮想的なコース上に進捗状況を表示するだけでした。 これに、他の人のラリー記録を重ね合わせて表示することができるようになりました。 ◇手順 ・AWSのアカウント作成。 この辺から適当に 。 ・AWS SDK for Androidの 取得 。 ・AWS SDKのセットアップ ・あとはやりたいことを書けばいい。 ※詳しくはたぶん こちら (自分は日本語の情報を見つけられず、 本家サイト の情報だけでなんとかなりました) ◇軽く技術的なこと ・SimpleDB上にドメインを1つ作る(ほぼサンプル通り)。 ・各クライアントはラリー登録時にラリー関連のデータをアップロードする(ほぼサンプル通り)。 ・他クライアントはラリー画面表示時に条件にヒットする他人のラリーデータをダウンロードしてマップ上に表示する(ほぼサンプル通り)。 ・AWSへのアクセス用アカウントはAWS Identity and Access Management(IAM)で権限を制限したアカウントを生成して、全クライアントがこれを利用。accessKeyとsecretKeyは軽く暗号化かけてアプリ埋め込みw「セキュリティ軟弱じゃねぇ?」とか言われると、否定できません。でも、accessKeyとsecretKeyバレても権限制限してるから、いいかなっと。変なことされたら無効にして新しいKey生成しちゃえばいいや。みたいな。とにかく、鍵管理サーバとかも書きたくない。 ・扱うデータに個人情報や機密情報は含めない。抜かれても大丈夫なデータだけ扱う。 ・ ここ と

【勇者募集】SmartTraining 4.1.0b野良公開

前々から他の人が登録したラリーの情報を地図上に表示して誰が一番か、 を見たいという要望がありました。 ようやく面倒な実装なしで実現できる見込みが立ちましたので、 ベータ版ということで一時的に公開します。 今回のベータ版は正式版をリリースしたら公開やめます。 今回の試みでは新しいプラットフォームを使用したのでまだ慣れていません。 パフォーマンスの問題とか、料金発生の問題とか少しずつ様子見ながら展開していきます。 もちろん回避できない問題が発生したらこの機能は消えてなくなります。 その時はごめんねごめんねぇ~! ◇4.1.0bで変わったこと ・ラリー画面で他の人が公開しているラリーデータを表示することができます。  これでライバルと競争できるかもしれません。 ・ただし、現状のバージョンでは表示されるのは自分の前後5人のみです。  いずれ、こなれてきたらいろいろと検索表示条件を追加する予定です。 ・ラリーにトレーニングタイプの考え方を導入しました。  これまで、ラリーにはどんなトレーニングタイプの距離も加算できましたが、  これを「FREE」というトレーニングタイプ扱いにして、これとは別にトレーニングタイプごとにラリー登録できるようにしました。  「競争」という考え方からして、同じトレーニングタイプで比較しないと意味がないかな、と思ったからです。 ・ラリー登録するためには、設定>ラリー>ニックネームを登録する必要があります。 ・あと、ラリー登録=データ公開です。個人情報は公開されません。公開する情報は以下です。  ・端末ごとにランダム生成した概ね一意のキー。UUIDです。  ・タイムスタンプ(登録日時、ラリー開始・終了日時)。  ・距離と計算したラリーコース上の座標。 ◇注意事項  このバージョンは野良公開のみのベータ版です。  一応、データが消えてしまうことはないつもりですが、  いろいろとテスト的な実装が多いので保証できません。  (元々、正式版でもデータが消えない保証はないんですけど。。。)  そういう事情で、何か不具合があってデータが消えても泣かないでください。  寛大な心で許して下さい。  そのテストデータがSmartTrainingを進化させたのだということで。 ◇ダウンロード  例によって、  ・設定>アプリケーション設定>提供元不明のアプリのチェック