tomoima525's blog

Androidとか技術とかその他気になったことを書いているブログ。世界の秘密はカレーの中にある!サンフランシスコから発信中。

TwitCal 3.0 をリリースしました

f:id:tomoima525:20151123181532p:plain:w300
過去の自分のツイートをカレンダー形式でふりかえることができるツイッタークライアント TwitCal の 3.0をリリースしました。 前回のリリースから実に4ヶ月が経過してしまったのですが、バグ修正以外にもいくつか新しい機能を追加したので、ぜひ使ってみてください!

TwitCal 自分のツイートをカレンダーでふりかえろう
TwitCal 自分のツイートをカレンダーでふりかえろう
開発元:tomoima@kumonos
無料
posted with アプリーチ

新機能

過去ツイートお知らせ機能

f:id:tomoima525:20151123190315p:plain:w300
1日1回、数カ月前のツイート内容を通知してくれる機能です。 「あー、数カ月前はこんなこと考えていたんだ」とか、ちょっとした振り返りに使える機能 です。
通知できるツイートは1ヶ月、3ヶ月、6ヶ月の3種類選択可能で、通知時間も任意に設定できます。
f:id:tomoima525:20151123181253p:plain:w300

ツイートシェア、別クライアントへの移動

過去のツイートから別クライアントを辿ってツイートのやり取りを振り返ったり、リツイートしたユーザーの情報を追っかけたい という要望をいただいたので、追加しました。ツイートのリンク自体のシェア、別クライアントへの移動等が可能になっています。

f:id:tomoima525:20151123190253p:plain:w300

内部的な設計の話

サヨナラAsyncTaskLoader、こんにちはThreadExecutor

これまでツイートデータのロードにAsynkTaskLoaderを利用していたのですが、このたびThreadExecutor( + Eventbus)に移行しました。 理由としては、

  • バックグラウンドから起動し、再ロードした時にクラッシュする不具合が発生していて、AsynkTaskLoaderが起因だった(Activity上のデータをチェックしてからロードするため、場合によってNPEが発生していた)り、挙動が不安定だった
  • Activity上にロード処理が入るので、美しくない

というところです。 ThreadExecutorにすることによって、ロードのロジックがActivityから分離できたことと、インタフェースがすっきりしたのでNPEの不具合をなくせたメリットは非常に大きいです。

実装としては以下のようなExecutorServiceを実装したBaseLoaderを作成し、それを継承したTweetLoaderを作りました。

public abstract class BaseLoader<T> {
    private final ExecutorService mExecutor = Executors.newSingleThreadExecutor();

    public void start(final T params){
        mExecutor.execute(new Runnable() {
            @Override
            public void run() {
                call(params);
            }
        });
    }
    abstract protected void call(T params);
}

call内でデータ取得がOKだとEventBusでActivity側に結果を返し、Viewを更新するようになっています。

Realm バージョンアップ

0.76 -> 0.82にしました。特に困ったことはなくスムーズに移行できたと思います。また、自分のrealm.close()の設定方法があまくて、別スレッドでrealmをcloseしたことによる不具合などが発生していましたが、そういった修正も実施しました。

( ※なお、上のツイートはTwitCalを使って検索、リンクを添付しました :)

あれっ

こうして振り返ると全然アップデートしてないぞ(焦) なにはともあれ、自分の過去のツイートを見るのって結構面白かったりするので、使ってみてフィードバックもらえると幸いです。

TwitCal 自分のツイートをカレンダーでふりかえろう
TwitCal 自分のツイートをカレンダーでふりかえろう
開発元:tomoima@kumonos
無料
posted with アプリーチ