パルカワ2

最近はFlutterをやっています

アノテーションプロセッサでfieldにNullableアノテーションがついてるのか知りたい

Nullableアノテーションは様々なライブラリで定義されている(android.support.annotationやjavax.annotation) それらをまとめてNullableとして扱いたい…こっちで定義とかしたくない……と思ったので、以下のようにした。 private boolean isNullable() { ret…

Bearのタグの切り方

まあまあ長めの文章を書くときや短くても考える必要がある文章を書くときはBearに書いて、イシューなどにコピペすることが多い。 タグをどうやって切るか悩んでたけど、最終的にアウトプットする場所によって分けている。 #hisaichi5518.hatenablog.jp/andro…

別のなにかになりたい

誰しも自分とは違う、別の「なにか」になりたい欲求はあると思う。 おじさんだけど美女になりたいと思う人はいるだろうし、パンダになってゴロゴロしていたいと思う人もいると思う。 僕は浅草を走るパンダバスになりたい。なので、なれるようにした。もどり…

requestLayout() improperly called というログが出まくる

requestLayout() を特に呼んでないのに出る。 addOnOffsetChangedListener内で見た目の変更をしているとダメっぽい。 addOnOffsetChangedListener内でHandlerを呼び出す形に変えたら出なくなった。 appBarLayout.addOnOffsetChangedListener((appBar, vertic…

android.support.v7.widget.Toolbarを継承すると見た目が崩れた

android.support.v7.widget.Toolbarを雑に継承すると見た目が崩れる。 ホワイ〜と思ってandroid.support.v7.widget.Toolbarのコードを読むとこんな感じになっていたので同じようにした。 public HogeToolbar(Context context, @Nullable AttributeSet attrs)…

Android Studioでもっとはやく使っとけばよかった的なやつ

Terminal Android Studioから移動してるの時間の無駄ではと思ったのでAndroid Studioのみで完結するようにしたかった。実際移動するためにSpotlight立ち上げて、iterとか打って移動してたりしていたので、それがショートカット一発で移動出来るのはでかい Fi…

最近単行本で読み始めた漫画

ROUTE END ROUTE END 1 (ジャンプコミックスDIGITAL)作者: 中川海二出版社/メーカー: 集英社発売日: 2017/06/02メディア: Kindle版この商品を含むブログ (1件) を見るROUTE END 2 (ジャンプコミックスDIGITAL)作者: 中川海二出版社/メーカー: 集英社発売日: …

Android StudioでTerminalからエディタにフォーカスを合わせたい

ターミナルを使う作業のときにはiTerm2にいちいち移動してたけど、Android Studio内で完結させたいと思って昨日からAndroid Studio内のTerminal使ってる。 エディタからTerminal を開いてから作業が終わればTerminalを開いたまま、エディタにフォーカスを当…

最近Slackに「ひさいちスレ」を立ててる

最近、物忘れが激しい。前の金曜にやっていたことを月曜日にすぐ思い出せない。なんなら昨日の夜にやってたことを出社してから思い出すのにちょっと時間がかかる。また最近は1人で高速化をやったりリファクタリングをやったりしていることが多く、僕が何をし…

ConstraintLayoutは制約がないとmarginが効かない?

<ConstraintLayout> <View /> </ConstraintLayout>このViewにmargin指定してたけどなぜか効かなくて悩んでたけど、制約を付けたら効いた。

YAPC::Okinawa 2018 ONNASAN行ってきた

大学生ぶりに沖縄に行ったんですがとても良かったです。運営のみなさんお疲れ様でした!!以下、沖縄旅行の様子です。明日羽田だと思ってたら成田でめちゃくちゃでかい声でエッ!!!!!!!!て言ってしまった— ひさいち (@hisaichi5518) 2018年3月1日適当…

最近単行本で読み始めた漫画

青野くんに触りたいから死にたい(1) (アフタヌーンコミックス)作者: 椎名うみ出版社/メーカー: 講談社発売日: 2017/06/23メディア: Kindle版この商品を含むブログを見る青野くんに触りたいから死にたい(2) (アフタヌーンコミックス)作者: 椎名うみ出版…

Picassoはnullを渡すとplaceholderが表示される

こんな感じでnullを渡すとerrorではなくplaceholderが表示される。 String url = null; Picasso.with(getContext()) .load(url) .placeholder(R.color.placeholer) .error(R.drawable.no_image) .into(imageView); 最近Glideへの乗り換えをやっているのでGli…

29歳になった

28歳は、チーフテクニカルリードとしてチームをどう機能させるか?などを色々考えたり、技術的挑戦をやっていくぞ!と言ったりみんなと色々やってきた。28歳になった時は、稟議をはじめて出したりしてたようだ。稟議はまだ慣れていないけど、とりあえず出来…

2018年にあえて、手紙を送り合うのはどうか

お気持ちを伝えあいたくない…??と思ったので、お気持ちbot作り始めたけど、そんな名前のbotあったな— ひさいち (@hisaichi5518) 2017年12月29日 年末に突如「お気持ち表明し合いたいな」と思ったので、それを促すお手紙botを作りました。ruboty-otegami み…

Android の DataBinding の構文内でContextにアクセスしたい

忘れそうなので書いておく。 ContextをXML内で利用したい @{context.getString(errorRes)} こういう感じでcontextを渡してあげるとよい。contextは、variableで定義する必要もないし、setContext()する必要もない。よしなにセットされる。 上の例の実際の呼…

EpoxyとDataBindingをやろうとしたらTypeCastExceptionが起きた

エラー: Epoxy Processor Exception: Caused by TypeCastException: null cannot be cast to non-null type javax.lang.model.element.TypeElement Stacktrace: com.airbnb.epoxy.DataBindingModelInfo.<init>(DataBindingModelInfo.kt:25) com.airbnb.epoxy.DataB</init>…

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…