パルカワ2

PerlとRubyとイチャラブ

RecyclerViewで複雑な画面を作るためのライブラリ Epoxy

この記事は、 Android Advent Calendar 2017 - Qiita 11日目の記事です。 RecyclerViewで複雑な画面を作りたい!そんな欲求を持っている人が多いと思います。僕もそうです。でも、1個や2個のViewTypeならまだしもたくさんのViewTypeがある場合、getItemViewT…

デスクライト買った

コード書いてる時とか集中してるときは暗い方が集中出来るので、部屋では灯りをつけずに暗くしてる。けど、そのまま夜になったりすると真っ暗の中にモニタの明かりが自分を照らしていて、ツイッターとか見てニヤニヤしてると漫画とかに出てくる引きこもり感…

おはぎレビュー #2

我々の世界では、人間が作ったおはぎをうんこでないかレビューすることを「おはぎレビュー」と言う。おはぎを作っていたつもりがうんこを作ってたなんて事は人間であればよくある。それは大した問題ではなく問題なのは、うんこをおはぎとして客に出し、客が…

FILCO ウッドパームレスト買った

FILCO ウッドパームレスト Sサイズ 分離型(2分割) 幅(296mm) 天然堅木製 オスモカラー仕上げ 日本製 ブラウン FWPR/S出版社/メーカー: ダイヤテックメディア: エレクトロニクスこの商品を含むブログを見る前使ってたゴムみたいなやつがボロボロになったので…

ユリゴコロを見た

yurigokoro-movie.jpユリゴコロまだやってるでしょと思ったら全くそんなことはなく結構遠出しないと駄目だった— ひさいち (@hisaichi5518) 2017年10月28日 丸の内TOEIまで行ったユリゴコロはじまる— ひさいち (@hisaichi5518) 2017年10月28日 吉高由里子とに…

minneをAndroid Studio 3.0に対応させた

hisaichi5518.hatenablog.jp↑の続きです。 Android Studio Release Notes | Android Studio Android Developers Blog: Android Studio 3.0 com.android.tools.build:gradle:3.0.0 を使う まあ、そうですよね assertThat(images).isNotNull が使えなくなった…

ActivityOptionsCompat.makeSceneTransitionAnimation(...) を使う

Activity間で共通の画像があって、それをシューンと移動させるのがマテリアルしてんじゃん!という感じなのでやってみた。 試したのは、エミュレータでAndroid 7.0です。全部のコードはここにある。github.comこのような感じに動くシンプルなやつ public cla…

テストでAnnotation Processorを利用する

testAnnotationProcessor "..." と書くと実行されてクラスは作られてテストも想定通り動くが、Android Studio上ではクラスが参照できずにエラーになる。 https://issuetracker.google.com/issues/37121918関連したgistに回答があった。 gist.github.com andr…

Annotation Processor のテスト

Annotation Processor のテスト書きたいなと思って書いてた。[java] モダンな Annocation Processor の開発手順まとめ - tokuhirom's blog package com.github.hisaichi5518.konohana.processor; import com.google.common.truth.Truth; import com.google.t…

Annotation processorを利用したAndroidライブラリをつくる

作る度に毎度似たようなことをしていてめんどくさい。しかも忘れていたりするのでテンプレート化したいんですが、Android Studioを更新するときにはテンプレートを消さないといけないとかあるらしくてそれはそれでだるいので、とりあえず将来の自分のために…

ライブラリをつくったときの雑メモ

annotation processor 毎度忘れる。 ElementはVariableElementやTypeElementなどにcast出来たりするよ ClassName.get(int.class)できない。 TypeName.INTなどがある TypeNameを色々と渡すような実装にしたけど、auto/commonとかTypesUtils, ElementUtilsがあ…

新たなライブラリを導入するときに考える事

社内向けに書いたけど転載。 はじめに 開発をしていると判断していくことが数多くあります。世界中で公開されているライブラリの中から1つを選び、導入を決めるのもその1つです。 判断とはとても難しいもので、ほぼ確実に間違いは起きます。例えば、「実行速…

Robolectric 3.3.2から3.4.2へのバージョンアップでやったこと

hisaichi5518.hatenablog.jpAndroid Studio 3.0系ではAAPT2がデフォルトでONになっているので、Robolectric 3.3.2ではリソースまわりでエラーが出て動かないようだ。 AAPT2. We are continuing to stabilize AAPT2 which enables incremental resource proce…

アプリをAndroid Studio 3.0 beta 4に対応したのでやったこと

まだマージする気はないけど、対応しておくかと思ったのでやってみた。 結構色々と変わっているようだけど、ビルド出来るところまではすぐ出来た。しかしRobolectricまわりでテストが死んでる…(まだ調べてない)追記:Robolectricがエラーになるのを調べた…

アクセシビリティで視差効果を減らす

開いてるアプリケーションが多いので、Mission Control 使うようにしてみようと思ったけど、切り替え時にグイングイン動くのがつらいなと思ったのでなるべく減らすようにする。システム設定 > アクセシビリティ > ディスプレイ > 視差効果を減らす

AndroidエミュレータでのAuto Backup for Appsを検証する

Settings > Backup & Reset でバックアップを有効にする バックアップ用にGoogleアカウントにログインしている必要がある adb shell bmgr run データを保存するような動作をする adb shell bmgr backupnow App infoからデータをクリアする adb shell bmgr re…

Retrofit2+RxJava2 で リクエストするときに subscribeOn を指定する必要がないようにする

こういう風にRetrofit2を利用してた。 new Retrofit.Builder() .client(clientBuilder.build()) .baseUrl(...) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); APIを叩くコー…

お産合宿11に出た

お産合宿にいってきた。 「お産合宿」はデザイナーやエンジニアなどの「クリエイター」という枠にとらわれず、普段は別々の仕事をしているさまざまな職種のスタッフが、所属する部署や職種を飛び越えてチームを作り、自分たちが「もっとおもしろくできる」と…

プロジェクトを動かすために必要なAndroid Studioのプラグインを設定する

Preferences -> Build, Execution, Deployment -> Required Pluginsで設定出来た。+を教えて出てきたダイアログがこんなんで、Pluginのところがスクロール出来る。今の今まで、スクロールが出来ることに気づいてなかった………なんてこった…設定するとこんな感…

複数のデータソースに同時にアクセスしていい感じにアレしてソレする

localSource と remoteSource同時にアクセス。早く返ってきたほうを使う 速度関係なくremoteSourceから値が返ってきたらlocalに値を保存したい localSourceでエラーが出てもログを吐いて、remoteSourceの値を待ちたい 値を使う使わないに関係なく、エラーは…

複数のデータソースから値を取り出すのをRxJavaのconcatで実現する場合のエラー処理

blog.danlew.net複数のデータソースから値を取り出すのをRxのconcatで実現するという記事を見て、なるほど!!と思った。ただ、エラーになった場合どうなるのかわからなかったので確認した。以下のようなコードの場合は、localSourceのErrorがonErrorにきてrem…

io.reactivex.Single.create() でonSuccessしたあとにonErrorを実行するように書いたらどうなるのか

RxJava2の話です。 自分でSingle.create した時についうっかりonSuccessしたあとにonErrorを実行するようなコードを書いた場合どうなるのだろうか?と思ったのでやってみました。 Single<String> single = Single.create(emitter -> { emitter.onSuccess("test"); em</string>…

履歴から自分のツイートを検索してヒットしたツイートを消す

自分のツイートの全履歴は、twitterからダウンロード出来る。 ag 黒歴史 | perl -p -e 's/tweets.csv:\d+:\"(\d+)\",\".*/$1/g;' | xargs ruby delete.rbrequire "twitter" client = Twitter::REST::Client.new do |config| config.consumer_key = "..." con…

WebP化してAndroidアプリのサイズをダイエット

Create WebP Images | Android Studio結構効果あった。 ただ、minSdk が 18ではなかったので、大半の画像はpngのままだった。 18にできたら、よりアプリのサイズをダイエット出来そうだ。

RxLifecycleとPresenter

Presenterにどう渡すべきか?と思ってたけど、lifecycleオブジェクトを渡せばいいだけだった。 // Activity new HogePresenter(this, lifecycle()) // Presenter class HogePresenter { public HogePresenter(HogeViewCallback viewCallback, Observable<ActivityEvent> lif</activityevent>…

RxLifeCycle試してる

Single.just(10) .doOnDispose(() -> Log.i("TEST", "dispose")) compose(bindUntilEvent(ActivityEvent.CREATE)) .observeOn(AndroidSchedulers.mainThread()) .subscribe( i -> Log.i("TEST", String.valueOf(i)), throwable -> Log.i("TEST", throwable.t…

Keynoteでフォント置き換え

できるのしらなかった…今までポチポチ変えてた。 マスタースライド編集 > フォーマット > フォント > フォントの置き換え

YAPC::Fukuoka 2017 HAKATA 行ってきた

ホテル1日分しか取らなくて、別のホテル改めて取ったりとかしたけど、良かった。ヒューッ pic.twitter.com/BsMaZgJjHL— ひさいち (@hisaichi5518) 2017年6月30日 部屋には入れたんですけどこんなの置いてあって心配になってきた pic.twitter.com/S4JY7EsEJ0—…

Firebase Remote Configを利用して一定数のユーザーに新たな機能を公開するAndroidライブラリつくった

というようなAndroidライブラリが欲しかったので作りました。github.com

Swiftのコンパイル時間を記録するリポジトリを作った

Swiftの勉強がてらSwiftのコンパイル時間を図って記録するというのをやってたんですが、合ってるのかもよくわからないので公開しました。(ベンチマークって難しいよね……)github.com