5/29のオープンアワー報告
参加者は4人でした。
今日は、昨日クローズドベータの申し込みに滑り込めたSqale - 開発者のためのホスティングサービス【スケール】 Ruby on Rails 対応。をいじろうかと思っていたのですが、結局つぶのみに機能を追加していました。
追加したのは下記。
タイムライン上のツイートでのメンション、ハッシュタグはユーザー、検索のタイムラインにintentで渡すようにし、メディア等のURLはブラウザに飛ばすように。
タイムラインからの公式リツイートと、DMも出来るようにしました。
参加の皆様お疲れ様でした。
つぶのみ と かおポト の近況
2つとも、一応使える所まで作ったので、常用しています。
で、使っていて、不満が出たらその都度ちょこちょこと改修している感じです。
つぶのみに最近追加した機能
1.ユーザータイムライン、検索タイムラインのツイートから返信できるように
メールのリンクからのリプライだけで困らないかなと思っていたのですが、ツイート入力画面から新規につぶやこうとした際に、どのツイートに対する返信であるかの情報である、in_reply_to_status_id が欲しい場面が出てきたので。
一覧からツイートを選択
表示上見えてませんが、in_reply_to_status_idもセットしています。
2.スクリーンネームの補完候補単語を削除出来る画面を追加
任意のユーザータイムラインを表示するには、スクリーンネームを入力して表示させているのですが、毎回打ち込むのが面倒なので、過去に入力したスクリーンネームをsharedPreferencesに保存して、autocompleteさせて表示してます。
が、typoして、余計な単語が登録されて邪魔になってきてました。というわけで単語を取り除く画面を追加しました。
kaと入力すると該当する単語が表示。typoしたものも一緒に・・
メニューから削除する画面に
kaで絞り込んでみました。たくさん間違えてる
選択するとalertが表示。Deleteで削除
他のを消したのでひとつだけになりました。
かおポトに最近追加した機能
1.ブラウザからのページ共有を受け取り、いいねする
LikeBoxが設置されていないページもいいねしたい、と思っていたので、暗黙的インテントで受け取って、いいねできるようにしました。
やってることはわりと単純です。
WebViewに、shareされてきたページをいいねするLikeBoxのiframeと、shareされてきたページを表示するiframeを差し込んでいるだけです。
渡されるページによっては、shareされてきたページをiframeに表示されない場合があるのですが、肝心のLikeBoxは問題なく使えているので、まあいいかと放置してます。
ちなみに、Facebook公式アプリだと、インテントで受け取ったやつは、Likeじゃなくてシェアなんですよね。
ブラウザで表示したページを
共有
LikeBoxでいいね出来ます
2.フレンドのウォールへの投稿
フレンドのウォール表示は多分見ないだろうということで、実装するのをばっさりとやめてしまい、代わりに相手のウォールへの投稿だけ実装しました。
とくにロードマップがあるわけではないのですが、使っていて足りない部分が出てきたらというスタンスでぼちぼちやっていこうかと思っています。と、最近はこんな感じです。いじょ
5/22オープンアワー報告
参加者は2人。
かおポトでブラウザに飛ばしている部分を改修していましたが、回り道をして、結局Notificationsの部分しか実装進みませんでした。
一度、WebViewでhtmlを動的にStringで生成して表示する形で実装したのですが、Webに飛ばすリンクが残っている限り、だら見してしまう部分への動線が残ってしまうと、はたと気づきました*1。
結局、ListViewで再実装しなおし、WebViewで書いたコードはボツにしました。
後、FQLのMulti Queryは面倒くさいですね。今日はそんな感じでした。
@koi_zoom1 さんお疲れ様でした。
*1:最初に気づけという話です。全部ネイティブにするのは面倒なので、どうするか思案中
AndroidでオレオレFacebookクライアントアプリケーションを作ってみました
Androidでのオレオレアプリ第二弾を作ろうと、15日火曜日のオープンアワーから、空き時間でちょこちょこと作業してました。
最低限の機能をつけたので公開します。
Facebookクライアントアプリケーションです。
アプリ名は、かおポトとしました。
機能など
スクリーンショット
ボタンをクリックして認証開始
ログインして許可だして
追加の許可だして
プロフィール画像と名前が表示されました。
ウォールへ投稿。Dialogsを使って楽をしました。
フレンド一覧表示
藤岡さんを検索
表示されました
誕生日で検索。5/1など途中でも検索できます*1
5月26日が誕生日な方が表示されました
Likeしたページ一覧を表示
Railsで検索
Rails勉強会@東北がヒット
お知らせ、フレンド、ページの参照はブラウザに飛ばしてます
オレオレアプリなので、マーケットには上げません。
ソースコードはgithubに公開しています。
使ってみたいという方は、READMEを参照ください。
出来るだけ手抜きをするという事で、Facebook SDK for Android だけではなく、サンプルも一個、ライブラリプロジェクトとして参照しています*2。
つぶのみと同じようなコンセプトで、自分のニュースフィードを見て、ダラ見してしまうので、そうならないで作業するためのアプリとして作りました。なお、グループなどもあまり見ないので省いてます。
現状、ブラウザに飛ばしてしまうと、ニュースフィード等、諸々の機能にアクセスできてしまうので、ブラウザに逃げてる部分は、そのうち置き換えする予定です。
Facebookの場合、Twitterと違って、各ポスト内にコメントしたり、色々する必要があり、目的を達成するには、つぶのみのように、タイムラインの表示を作りこまずに済ますというわけには行かないのが悩ましい所*3。SDKのサンプルにあった、streamというアプリのように、WebView使って動的にフィードを構築すれば、ネイティブでやるよりは多少楽できるかなと考えています。
以上、Androidでのオレオレアプリ第二弾を作ってみたよという話でした。
IntelliJで他のプロジェクトをライブラリプロジェクトとして読み込む
Androidでのオレオレアプリ第二弾として、Facebookアプリを作ろうと作業していました。
で、Android SDKを使おうということで、 チュートリアルをやってみたのですが、SDKの組み込み方で少々つまずいたので、備忘録として残しておきます。
Facebook Android SDKは、gitでおっことしてきたSDKを、ライブラリプロジェクトとして、自分のプロジェクトから参照するのですが、それのIntelliJでのやり方についてです。
とりあえず、SDKを、IntelliJでexamplesもひっくるめて、丸々プロジェクトとして読み込んでみました。
続いて、自分のAndroidプロジェクトを作成し
Project StructureのProject SettingsにあるModulesを選択
Moduleを新たに追加
先程作成したSDKプロジェクト内からmoduleをインポート
Is Library projectにチェックが入っているか確認*1
後は、Module dependency…と、するか
コードを書き始めてからAdd dependency on module 'Facebook'とすればOK.
それと、ライブラリプロジェクトではないものでもライブラリとして読み込める模様。
examplesにあったサンプルを読み込んでから、Is Library projectにチェックをつけたら、ライブラリとして使えました。
*1:外れてると、アプリを入れた時に、アプリに含められず、別々に入ってしまう