AndroidでTwitterへのツイート&DM専用アプリケーションを作ってみました

連休も終了ですね。
皆様楽しく過ごされましたでしょうか?


自分はというと、Android用のアプリを作ってみようと思いまして、連休中5日ほどを使って、Twitterクライアントアプリケーションを作ってみました。
送信専用のクライアントなのでつぶのみと命名しました。

以下、機能とか
  • ツイートとダイレクトメッセージの送信機能のみで、タイムライン等の参照機能はありません。
  • 添付写真はTwitterの公式写真投稿サービスへ投稿されます。
  • ツイート本文とダイレクトメッセージの140文字カウントは、Twitter公式の短縮サービスt.coと、公式の写真投稿分に対応しています。
  • メールアプリのメール本文などのreply,DMへのリンクから、暗黙的インテントを受け取り、返信することが可能です。
  • DM画面は、暗黙インテントからのみアクセスします。
  • Android 2.3.3以上
スクリーンショット

OAuthの開始

ブラウザへ暗黙インテント

メインのツイート画面

写真を添付。文字数カウントもメディア分カウント

urlもt.co短縮に対応した文字カウントを表示

メール本文内のリプライのリンクをタップして

選択して・・・

リプライ

メール本文内のDMリンクをタップして・・・

選択して・・・

DMの返信

メニューからOAuth連携解除へ

Galaxy S2,Android 2.3.3のみで検証しています。他の機種、バージョンでは動かない可能性があります。特に画像投稿まわり。
オレオレアプリとして作ったので、今のところマーケットに上げる予定はありません。
というか、デザイン全く・・なのでそもそもアレ。アイコンもないし。
自分仕様を満たして動かすことを最優先に作ったので、色々な所のコードを参考にしています。
Activityのライフサイクル的にもお作法に従ってない所もあるかと。今時点で理解してない部分もあるので。
ソースコードgithubに公開しました。

JavaでのAndroidアプリ開発の感想など

書籍などは読まず、ネット上の情報だけで作ってみました。
IntelliJ CEを使用しましたが、使いやすかったです。割りと癖なくAndroidアプリ開発に専念できました。
自分がIntelliJファミリーに慣れてきたせいかもしれませんが。
JavaScriptの開発には最近IntelliJファミリーであるWebStormを使っているのですが、IntelliJベースのIDEは、Javaをターゲットとした開発で、一番真価を発揮するのだなと思いました。
JavaIDEが無いと、今の自分ではさくさく書けない気がします。
非同期処理に使うAsyncTaskが便利と感じました。Activityとの依存性が分離されきってないのがきにかかりましたが。
Twitter4Jを使いました。至れり尽くせりで楽できました。streamingもちょこっと試してみましたが、楽に実装できそう。
公式の短縮サービスであるt.coに対応した文字カウントが面倒だなと思っていたのですが、twitter-text-javaが公開されていたので、こちらを利用して少し楽できました。
カメラへの暗黙インテントでの写真撮影まわりで、色々調べたのですが、機種依存が大変そうでした。
自分用ということで、Galaxy S2で動くように書きましたが、まともに対応すると結構な工数がかかりそうでした。まあそれ以前に、検証用端末たくさんもってないわけですけど。
あと、Galaxy S2で撮影するとちょっと容量がデカすぎる写真が保存されるので、投稿するのに良い感じのサイズに微調整するのに、思った以上に時間がかかりました。


元々Android端末を入手したのは、かゆいところに手が届く、オレオレアプリを作ってみようかと思ってのことでした。
せっかくの連休なので、利用して一つ作ってみましたという話でした。