RxJavaのsubscribeOnとobserveOnの違いを理解したい

今更ながらRxJavaのsubscribeOnとobserveOnの違い、使い分けがわからなかったので理解するときに参照した記事と動かして試したこととのメモです。

こちらの記事を参考にしました。

http://reactivex.io/documentation/operators/subscribeon.html https://gfx.hatenablog.com/entry/2015/12/12/231203 https://stackoverflow.com/questions/46070235/switching-threads-multiple-times-in-rx-chain

observeOnはそれ以降の処理をどのスレッドで行うかを指定するので長い処理の中で何回も指定されることがある。一方subscribeOnは文字通りsubscribeされたときのスレッドを指定するものなので何回も指定するものではない。syntax上は何回でも指定できるが、実際は最初に指定されたスレッドで処理が行われる。

続きを読む

GsonでJsonSerializer/JsonDeserializerを使う

Gsonを使ってJavaのObjectとJsonの間をコンバートする際、カスタマイズしたい時があったのでどんなユースケースだったのかとどう書いたかのメモ。 もっと良いやり方がありそうな気がするが作業ログということで。使用しているGson ver: 2.8.1。

Deserialize

JsonからJavaのObjectにマッピングする時。自分は以下のようなユースケースでDeserializerを書いた。 同じ名前のkeyだが中身の型は違う、がObjectとしては同じObjectにコンバートしたい時。

続きを読む

ConstraintLayoutの中のTextViewが欠ける

ConstraintLayoutの中に複数行のTextViewを置いた時、ConstraintLayoutのレイアウトに合わせて折返しされず行末が表示されない問題。 以下の記事と同じ現象で参考にさせてもらいました。

https://stackoverflow.com/questions/46350501/android-constraintlayout-textview-go-off-the-screen https://qiita.com/henteko/items/f5cf5d550aca9a182ab8

解決策はapp:layout_constraintEnd_toEndOf="parent"を親のConstraintLayoutにつけることと、layout_width0dpにするとうまく表示された。

続きを読む

Annotation Processingをdebugする(Java Project編)

Annotation Processingを使ってコンバイル時に処理をする際にDebugする方法をまとめておきます。 AbstractProcessorを継承したクラスをDebugモードで実行します。 前提としてIntelliJを使用しています。

続きを読む

Picassoでresizeがうまくいかない

Picassoを使っていて何故か正方形画像のみ、resize/centerInsideがうまく動いてないケースにぶつかった。centerInsideしているのに画像の端が切れてしまいcenterCropのような表示になってしまう感じ。 しかも1回目の読み込みのみ起こるのでおそらくネットワークからの画像表示のみ再現する問題の模様。

続きを読む