ラベル Twitterクライアント の投稿を表示しています。 すべての投稿を表示
ラベル Twitterクライアント の投稿を表示しています。 すべての投稿を表示

2015年2月23日月曜日

自作Twitterクライアント作成の記録(32)(じみったーだけに)地味にソース公開しました

すっごい今更感しますが作成中のTwitterアプリのソース公開します
各リンクは下の欄からどうぞ
なお旧版と新板の違いについてですが、旧版は2015年2月23日現在公開されてるアプリのソースになり、新板はそれのソースを書き直してるだけです。(ついでに機能追加してたり)
また新板の方へソースをコミットしていく形になるので気になる方はちょくちょく確認してみるといいかも。
また、こういうふうにしたほうがいいよとかアドバイスがあれば何かしらの手段で教えてもらえると嬉しいです。
(旧版)
https://bitbucket.org/meronmks/oldzimittaproject/src
(新板)
https://github.com/meronmks/zimitta

2014年11月22日土曜日

自作Twitterクライアント作成の記録(30)Fragmentが想像以上に厄介だった件(解決)

AndroidでTabを使ったビューを作るときに推奨されてるFragment
一応2.2でも動くように目標を定めsupportv4ライブラリを使用して実装をし
(ちょっと古い画像だけど)
こんな感じに一応タブを作ったわけなんですよ。
ただこの後とあることでこのFragment(正確にはListFragment)が厄介なものだと知ることになりました。
そのあることとは
getLiatView()が使えない
どういうことなのかv4ライブラリにあるgetListView()メソッドはListViewを返してくれません。そのせいでListViewに項目を追加して表示を更新するたびに一番上まで戻される糞な状態に。

そしてさらに謎なのが
結構v4でgetListView()が使えるという日本語記事ばかりだったんですよね。
無論その方法で生成してみてもダメだったわけで、現在完全に止まってしまってます。

頼りの英語での記事も使えるって記述と使えないって記述が混在していてどうにもならない状態です。

おそらく3.0で追加されたものなのでそれと混じってるかどうにかしたらv4ライブラリのgetListView()でも取得できるのかもしれませんがこのままだとある意味の詰みです。
どうにかしてv4ライブラリでgetListViewが使用できる方法とかないんですかね?

追記
解決しました。
どうやらonActivityCreated()をオーバーライドしてそこでアダプターの作成とgetListViewを行うとちゃんと取得できるみたいです。
ほんとこんなややこしいのほんとありがとうございました(

2014年10月21日火曜日

自作Twitterクライアント作成の記録(29)アプリだけで連携解除がしたい

先日Twitterを何気なく見ていたら、PCを持っていない友人へ向けた連携解除の手順を示した画像が流れてきました。
そういえばアプリだけで連携解除が行えるようなものが無いなと思い、無いなら作ってしまうか

というわけでまずは完成品の画像をいくつか


2014年9月20日土曜日

自作Twitterクライアント作成の記録(28) リスト表示の対応

かなり前に実装していた機能ですが全くそれに関して触れていなかったことに気が付く今日この頃
完全に忘れないうちにメモとして残しておきたいと思います。


2014年7月27日日曜日

自作Twitterクライアント作成の記録(27)Twitterクライアントを作るなら最初に見るべき項目

タイトルにはこう書いてますが、こいつの存在を知ったのはつい最近です。

実は少し前にニコニコで生放送しながら開発進めていると同じようにクライアント作ってる人が来たんですよ、無論いろいろ話をしていたんですが突然「Developer Display Requirements」
という単語が飛んできたわけですよ。
今回はその「Developer Display Requirements」(この先DDRと略します)についてのお話です。

・DDRとは何ぞ?

端的にいうとTwitter社によるクライアントにおけるツイートの表示の仕方の指針。

詳しいことは
Developer Display Requirementsが更新されたので再び訳してみた
か原文の
Developer Display Requirements
を見てもらうとして、つまりはクライアント作るならこれに準じてね?ってことですはい。(一応例外もあるらしい)
守らないとアプリケーションキーが剥奪されるとか、でも全部クリアしてるクライアントあまり見ないんだが・・・・・(あるにはある)

まあそれは置いておいて、一応DDRが設定されている目的としては
「使用環境の一貫性の確保」
みたいですが
そもそも公式のUIやシステムが気に入らないからクライアントをだn(ry
って文句いっても仕方ないね。

とにかく、クライアント作るなら一度は目を通しておくと幸せになるかも(ならないかも)
ということで今回はこの辺で

2014年7月11日金曜日

自作Twitterクライアント作成の記録(26)SDKのアップデートでちょっと困った件

どうも、ここ最近またこいつの開発にはまる私ですよ。
今回はSDKのアップデートで起きたちょっとしたことの解決法をメモしておきたいと思います。


2014年7月9日水曜日

自作Twitterクライアント作成の記録(25)GooglePlayにアプリを置いてきた件

やったことはタイトル通りです、ついに一般公開してしまいました。
まだまだ機能は少ないですがこれから使える機能を増やした上にどんどん使いやすくできたらいいですね。

デベロッパコンソールからはこんな風に見えてます。
ここにDLカウンタが付く日はいつになるのやら。

と、報告はここまでにして、ちょっと公開する際に手間取ったことをいくつか忘れないうちにメモしておきます。


2014年7月6日日曜日

自作Twitterクライアント作成の記録(24)複数画像の扱いとツイート可能文字数の表示

ほんの少し前に私のフォロワーさんから複数画像の投稿に対応しないの?
というメッセージをいただいたのでさっそく実装してきました。

まず現状のライブラリで複数画像の投稿ができるのかと思い調べてみたら。

Twitter4Jで複数の画像をアップロードしてツイートする方法
という何ともドンピシャな内容が書かれたサイトにありつくことに。
これを見て思ったのは、どうやら一枚一枚アップロードしてから後でリンクを張るみたいな構造になってるんですね。こういうのも触れてみて初めてわかることなのかもね・・・
というのは置いておき、無論アップロードということなので通信の動作が入るため別のスレッド等でこの処理を書かないといけないわけですが、まあツイートを投稿する非同期のメゾットにぶち込んでおけば問題なく動くと思います。

で、このサイトで宣言されているpath1,path2という変数Fileという型ではなくStringのため
   uri= data.getData(); //選択した画像の受け取り
   ContentResolver cr = getContentResolver();
String[] columns = { MediaStore.Images.Media.DATA };
Cursor c = cr.query(uri, columns, null, null, null);

c.moveToFirst();   
            if(path1 == null){
    path1 = c.getString(0);
   }else if(path2 == null)
   {
    path2 = c.getString(0);
   }else if(path3 == null)
   {
    path3 = c.getString(0);
   }else if(path4 == null)
   {
    path4 = c.getString(0);
   }
という風にそのままpathとでも名前をつけた変数に代入しておくといいと思います。

ちなみに
             Intent intent = new Intent(Intent.ACTION_PICK);
         intent.setType("image/*");
         startActivityForResult(intent, 1);
等をボタン等のイベントに書いておくとギャラリーが開いて
   protected void onActivityResult(int requestCode, int resultCode, Intent data) {

  super.onActivityResult(requestCode, resultCode, data);
  if (resultCode != RESULT_OK) return;

  if (requestCode == 1) {
   uri= data.getData(); //選択した画像の受け取り
   ContentResolver cr = getContentResolver();
String[] columns = { MediaStore.Images.Media.DATA };
Cursor c = cr.query(uri, columns, null, null, null);

c.moveToFirst();
if(path1 == null){
path1 = c.getString(0);
}else if(path2 == null)
{
path2 = c.getString(0);
}else if(path3 == null)
{
path3 = c.getString(0);
}else if(path4 == null)
{
path4 = c.getString(0);
}
  }
  }
これでギャラリーで選択した画像が取れるみたいです。

1つ向こうのサイトで書いてることで気を付けておくこと
update.setMediaIds(new long[2]{media1.getMediaId(), media2.getMediaId()});
これの[2]の部分を[]にしないとコンパイルが通りません何故か。
配列定数は、イニシャライザーにおいてのみ使用可能です。
とか出て怒られます。
配列定数はわかるけど、イニシャライザーってなんだ?
今度調べよう。

さてタイトルにあるもう一つの項目文字数表示。
こちらも何故かドンピシャなものが
[Android] EditTextの入力文字数を動的にカウント表示する方法
こちらのソースを参考にさせていただきました。
あとは表示の仕方を自分で決めてしまうだけ。ね、簡単でしょ?(簡単じゃないフラグ)
まあとにかく、徐々にクライアントとして必要な機能はついてきているわけですよ。

そろそろGooglePlayで公開してもいいかな。
でもその前にアイコンと、アプリ名をもっとセンスのいいものに・・・・誰か案をくださいお願いしま(ry

最後に
え?DMでの画像投稿はどうしたって?
まだだよちくしょーーめ!

2014年6月26日木曜日

自作Twitterクライアント作成の記録(23)DM送信対応等

長いこと更新してませんでしたが、いろいろ忙しくてこちらまで手が回らない状況でした。
とにかく、DM送信(文字だけ)に対応させたので仕方のメモ的なものを残しておきます。

送信する際に使うもの(文字のみ)

mTwitter = TwitterUtils.getTwitterInstance(this);
mTwitter.sendDirectMessage(mentionID, params[0]);

mentionIDには相手方のUserID(Mention送信と同じでOK)paramas[0]には送信したい文字列を
あとは、返信等で使ったものを流用してDM送信機能の出来上がり。

画像送信の方は画像つきツイートと同じ要領でいけると思ってたらそうでもなく、なぜかうまく行かない・・・・うまくいったらまた書き換えておきます。

2014/07/06追記
タイトルの番号振り間違えてるorz

2014年4月28日月曜日

自作Twitterクライアント作成の記録(22) 環境を変えたら・・・・

どうも、おひしぶりです。
最近忙しくなってあまりプログラムを弄れない状況にいました。(主に大学)
行く日は片道1時間半かけて(この時間で講義聞ける)行ってます。関係ないですね。

さて、その大学で指定PCを買い、性能がかなり良かったので開発環境を移したのですが、その際発覚したアプリのバグについてすこし。


2014年3月12日水曜日

自作Twitterクライアント作成の記録(20)ようやくストリーミング安定?

さて、久しぶりの更新。最近リアルで忙しいから仕方ないね。
まあ、今回は開発進めてるよーって報告程度なので簡潔に。

おそらくストリーミングが安定しました!

↑ここ重要なとこです。

いつもの様に例の場所(OneDriveという名の物置)にAPKファイルを置いておくので、もしデバックに協力してくれる人がいたら協力していただけると嬉しいです。
(こんな糞アプリに来るのか?)←自虐ネタ

そろそろAndroidのデベロッパ登録でもしてMarket上での配信を考えた方がいいのかな?
でもそれならあのアイコン(ひらがなの「つ」)をどうにかしたいとも思ってたり、でもあれでよくね?て思ってる自分もいたり。

なにかコメントいただけると嬉しいです。

最後に、もし需要があれば今回のストリーミング部分の汚いソースを公開するかも。
役に立つかどうかは知らない。

2014年2月16日日曜日

自作Twitterクライアント作成の記録(19)β0.9.8について

最近とある理由でAndroidのソフトを触る時間を増やしているつもりである。
という前置きは置いておいて今回の更新内容を

・プロフ画面からフォロー数と、フォロワー数を見れるようにし、現在設置プロフ画面に設置しているボタンのすべてが使えるように。

・プロフ画面にてスクロールを可能に(小さい端末に対応したつもり)

・ストリーミング有効時、リプライ、ふぁぼ、RT、フォローがあると通知をするようにした
(バックグラウンドでも一応通知する模様、ただし、いつまで持つかは未検証)

このようになっております。
ところで、一つ前でエミュレータで接続できなくなったと書きましたが、どうやら時間が大幅にずれていた為だったみたいです、タイムゾーンがずれていても日付と時間があっていれば大丈夫な模様。

また、DMの機能作ると言ったな・・・・・あれは嘘d(うわなにをするやめ・・・・

真面目にしよう

一つ重要な連絡
どうも、ストリーミングでツイートを取得していると内部的なズレが起きて選択したものと全く違うツイートが選択されるみたいです。
また、最後のツイートの位置も上手く取れないみたいです。

とにかく直そう・・・・

2014年2月12日水曜日

現在一部ユーザーでユーザータイムラインが古いのしか取れない?(追記2014年2月16日)

現在いたるところでユーザタイムラインが古い(2/10以前)ものしか取れなくなっているみたいです。
通常のタイムラインや、リプ等は正常に動いてるみたいですが、ユーザータイムラインをよく見る人は要注意されたし。

2014年1月13日月曜日

自作Twitterクライアント作成の記録(17)β0.9.5について

さて今回から、ブログの方でアプリを更新したら内容等を書いていこうと思います。
なんせまだストアになんて並べられる代物じゃないし、なによりクレカを持っていないため、デベロッパ登録ができないため(いつかはするつもり)

β0.9.5の変更点
・ストリーミング時に放置しててもツイートが流れてくるようになった。
 ただし、たまにすぐに来なかったりで、他のバグが酷いためまだまだ実用範囲じゃない、今現在はあくまで遊び用


次はこいつの実装で手をつけてないDM関連やプロフ画面からの画面移動でも実装しますかね。

自作Twitterクライアント作成の記録(16)やっぱりストリーミングがうまく動かない

あれから何度も調べていたんですが。
ArrayAdapterにアイテムを追加してそれを反映させるためにはnotifyDataSetChanged()を呼んであげるといいらしいんだけど、
確かにアイテムは追加されるんだけど、反映させるのにスクロールしたり、メニューだしたり、つまり放置しておいて、どんどんListが流れていくという理想の動きにならずに悪戦苦闘中。
(Logではちゃんと即時にツイートが流れてきている様子)

一応自己解決・・・だけどこれが正しいのかわからない。
今度自分流の対処を書いておきますはい。

2014年1月1日水曜日

自作Twitterクライアント作成の記録(15)なぜこうなった・・・・

しばらく、更新を止めてましたが、まあ、ブログの方はずっと残しておきたいことを書いてるだけだから仕方ないね。

とりあえず少し前に詰まった、というか、なぜこうなったというところを少し

2013年12月2日月曜日

2013年12月1日日曜日

自作Twitterクライアント作成の記録 番外編 Twitter4Jのタイムライン取得で帰ってくるデータのメモ

注意
完全に自分がわかればいいレベルのものになります。
だけど少しずつ更新していくつもりなのでよろしく。
2014年08月10日更新(内容が変わっている模様)