パルカワ2

最近はFlutterをやっています

AndroidでサーバなしのA/Bテストを行う Hanaten を作った

AndroidでサーバなしのA/Bテストを行いたかったが、それらしいライブラリを見つける事が出来なかったので作った。iOSでいうmattt/SkyLabみたいなのです。

github.com

振る舞いを変えたい場合はこうする。

new Hanaten(context, "presenter test")
  .add(10, new Runnable() {
    @Override
    void run() {
      mPresenter.showRed();
    }
  })
  .add(20, new Runnable() {
    @Override
    void run() {
      mPresenter.showGreen();
    }
  })
  .add(30, new Runnable() {
    @Override
    void run() {
      mPresenter.showBlue();
    }
  })
  .start();

返ってくる値を変えたいとかはこうする。

String color = new Splitter<String>(context, "color test")
  .add(10, "Red")
  .add(20, "Green")
  .add(30, "Blue")
  .split();

github.com
ちゃんとjcenterとかに登録したほうがいいかなーと思いつつjitpack.io使ってる。

RecyclerViewにHeaderViewとFooterViewを付けられる HeaderFooterAdapter を作った

HeaderやFooterで各々ViewHolderを作る必要もなかったので、それすらないシンプルなAdapterです。
github.com

// HeaderFooterAdapterを継承する
class MovieAdapter extends HeaderFooterAdapter<ItemViewHolder> {
    private List<String> movies;
    private LayoutInflater layoutInflater;

    MovieAdapter(LayoutInflater layoutInflater) {
        this.layoutInflater = layoutInflater;
    }

    void setMovies(List<String> movies) {
        this.movies = movies;
        notifyDataSetChanged();
    }

    // ItemのViewHolderを作成して返す
    @Override
    protected ItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
        return new ItemViewHolder(
                this.layoutInflater.inflate(R.layout.row_movie, parent, false));
    }

    // ItemのViewHolderを利用する
    @Override
    protected void onBindItemViewHolder(ItemViewHolder holder, int position) {
        holder.setName(this.movies.get(position));
    }

    // Itemの数を返す
    @Override
    protected int getAdapterItemCount() {
        return movies.size();
    }
}

// ActivityなどでAdapterをセットする前にHeaderViewとFooterViewをセットする
MovieAdapter adapter = new MovieAdapter(layoutInflater);
adapter.setHeaderView(headerView);
adapter.setFooterView(footerView);
recyclerview.setAdapter(adapter);

github.com

入門 考える技術・書く技術 を読んだ

Github上で人に対してコメントや説明をする時、送信する前に自分の書いた日本語を見返す。見返すときに「相手は何が聞きたいのか?」と「聞きたいことの答えが伝わるか」って考えながら見返す。それが分かるように書かれてあればそのまま送信するし、伝わらないかもなと思ったら書き直す。そういうのはコードにも言えると思うけど、日本語でも重要だと思う。

というのが、だいぶ前に書いたブログの下書きに残ってたんだけど、この本にも似たような事が書かれてた。

入門 考える技術・書く技術

入門 考える技術・書く技術

PMJPのSlackで紹介されていたので読んだ。新卒とかが読むと良さそうな感じだった。

ウニ食べた

ウニバーという概念があると聞き、行くしかないと思ったので行ってきた。
ウニの食べ比べがあり、産地別に出てきた。「違いなんてわかるはずない」「そんなに舌が肥えていない」とか思ってたけど、案外わかってウニはすごい。

https://www.instagram.com/p/BDft7SFzNJi/

最後ににぎりが出来てたけど、ウニもうまかったけど肉が異常にうまかった。解説されたけど、うまさのあまり知性が破壊されてしまったようで忘れてしまった。
https://www.instagram.com/p/BDf4dUYTNPu/

京都行ってきた

1日目: 天下wiki武道会

だいぶ盛り上がって面白かった。みんなでわいわい議論したり出来る勉強会いい。
実家に帰るつもりだったけど、親が二人ともインフルエンザにかかっているらしく帰れなくなって泊まる場所がなくなった。

なので、同じく宿がない人達で銭湯と仮眠室が合体したところに行った。俺だけ掛け布団なくて寒くて最悪だった。あと屋上にある風呂が臭かった。


2日目: 花見・鴨川ビール

京都界隈の人間として誘われていたので、行くしかないという気持ちで花見した。京都水族館前の公園でやっていた。桜自体は少し咲いてた。そのあとは、鴨川に行って色々あって銭湯と仮眠室が合体したところに行った。変なおじさんがいっぱいいて恐怖したけど、朝まで生きて京都から出ることができた。


結論

京都は最高

Robolectricでは、SharedPreferencesをどうやってるのか見た。

見たのでメモです。