読者です 読者をやめる 読者になる 読者になる

visible true

技術的なメモを書く

RxJavaでフィボナッチ数列を生成しようとしたけど面白くなかった

Observableにして無限リスト的に好きなだけ生成出来る!と思ったんだけど、 Fibonacci.java public class Fibonacci { public static Observable<Integer> take(int count) { if (count == 0) { return Observable.empty(); } if (count == 1) { return Observable.ju</integer>…

Java 8: No more loopsをRxJavaでやる(Androidの環境で)

Java 8: No more loops Java 8: No more loops Java8のStream APIを使ってforループを無くすという記事。面白そうだったのでRxJava化しました。AndroidだとJava8 Stream API使えないですからね (´・ω・`)。Java8世界ではRxJavaってどういう位置づけなんでしょ…

RxAndroidを使ってEditTextで初期の高さを指定しつつ入力に従って動的に高さを調整する

※追記 これでいけました!minLinesというのがあったとは。RxAndroidなんかいらんかったんや! @sys1yagi これって、 android:inputType="textMultiLine" android:layout_height="wrap_content" android:minLines="5" でできるような気がします、が、違います…

RecyclerViewはListViewの代替ではないよねという話

※2016/07/16 追記: これもう大分古いのでこれからAndroidやるなら最初からRecyclerViewからやったらいいんじゃないでしょーか Lollipop周りについてあんまり興味が湧かないと思いつつも触らないわけにもいかないしな、という感じでボチボチRecyclerViewやCar…

RxAndroidとRetrolambdaで大体Java8をAndroidに持ち込む

※これもう大分古いので AndroidでJava8環境 2016 - visible true も御覧ください。 はじめに RxAndroid(というかRxJava)とRetrolambdaでそろそろ大体Java8な環境でAndroidアプリケーションが開発出来るのではないかと考えて試してみた。 2014年4月頃のRetrol…

ObservableがNoSuchElementExceptionで死ぬ時はscan(Func2)やreduce(Func2)にinitialValueを渡す

問題 以下のコード(Retrolampda 1.8.0 + RxJava 1.0.0-rc.9で書いてます)では空のリストをObservable.from()に渡している。これを単純にmap()したりsubscribe()するだけなら特に問題はでない。しかし、reduce(Func2)やscan(Func2)などが途中に挟まるとエラー…

MockWebServerRuleを使ってOkHttpClientのリクエストをmockする

Mockito1.9.5+OkHttp2.1.0でリクエストをmockするを書いた後、mockwebserverを使った場合についても考えた方がいいかもなーと思って試してみた。結果的にはmockwebserver使った方がいいなーという感想。OkHttpClientを直接mockしたかったのは、リクエストURL…

Mockito1.9.5+OkHttp2.1.0でリクエストをmockする

OkHttpのリクエスト周りのmockingが結構面倒くさかったのでメモ。 やりたい事 ベタ書きすると以下の様な事がしたい。単純にレスポンスをmockして返却したいデータをセットしたい。 OkHttpClient okHttpClient = mock(OkHttpClient.class); String body = "ho…

daggerで引数のあるコンストラクタを持つModuleをincludesして使う

概要 例えば以下の様なModuleがあったとして(injectsとかは省略している)、 @Module(library = true) public class AppModule { Context context; public AppModule(Context context) { this.context = context; } @Provides public Context provideContext(…

support packageに追加されたtesting-support-libを使ってAndroidのテストをJUnit4で書く

概要 Espresso 2.0 が Android support library の一部としてリリースされた - ひだまりソケットは壊れない Espresso 2.0 が Android support library の一部としてリリースされた - ひだまりソケットは壊れない espressoの他にtesting-support-libというの…

gradle-tab-completion.bashをMacに導入する際に必要な修正と、初回実行時の留意点

Android開発を爆速にする10のコマンドラインスクリプト - クックパッド開発者ブログ Android開発を爆速にする10のコマンドラインスクリプト - クックパッド開発者ブログ われらが@tomorrowkeyが書いてくれた↑で紹介されている、Gradleのタスクをcompletionし…

ビルド時にjava.lang.OutOfMemoryError: GC overhead limit exceededで死ぬときはdexOptionsにjavaMaxHeapSizeをセットすると良い

タイトルそのまんま。gradleでビルドしていて以下のエラーに出会ったら、 java.lang.OutOfMemoryError: GC overhead limit exceeded build.gradleのdexOptionsにjavaMaxHeapSizeを指定すれば大体直る。 android { dexOptions { javaMaxHeapSize "2g" } } こ…

Android Studio 1.0でrobospock-pluginが軒並み動かないので直して使う(差分はPR済)。

Polidea/RoboSpock Polidea/RoboSpock · GitHub RoboSpockの導入方法について日本語があんまり見当たらないのでメモっとこうと思ったら以下の環境で動かなかったので色々やった結果結局Pull Request投げる事になった。 Android Studio 1.0.1 gradle 2.2.1-al…

MultiDexにしたアプリケーションでRobolectricがコケる

問題 以下の様にMultiDexに対応させたアプリケーションで、Robolectricのテストが動かない。 build.gradle defaultConfig { //... multiDexEnabled = true } AndroidManifest.xml <application android:name="android.support.multidex.MultiDexApplication"> </application> こんなエラーが出る。 java.lang.RuntimeException: java.lang.RuntimeExc…

Jack and Jillを試す

Jack and Jillとは Jack and JillはBuild Tools version 21.1.1以上から追加された新しいAndroid用のコンパイラ群だそうです。 Experimental New Android Tool Chain - Jack and Jill - Android Tools Project Site Experimental New Android Tool Chain - J…

AndroidObservable.bindActivityは自動でobserveOn(mainThread())してしまうのでその後にmap等をつなげるとUIスレッドで実行される

概要 RxAndroid 0.22.0ではAndroidObservableというActivityやFragmentの状態を考慮してコールバックしてくれるObservableを作れるUtilityがある(最新のRxAndroidではAppObservableという名前になってるぽい)。 subscribeOn(newThread())なObservable、つま…

com.android.build.gradle.internal.api.ApplicationVariantImpl_Decoratedで何か死ぬやつ

問題 Android Studio 1.0がでてgradle pluginも1.0.0になったんで適当に反映したら死にました。 Error:Could not find property 'processManifest' on com.android.build.gradle.internal.api.ApplicationVariantImpl_Decorated@3ebf5213. 原因 大体このエラ…

GroovyでArrayAdapter(Context, int, int)がコンパイルエラーになる

問題 あんまり出会わないケースな気がしますが、こんな感じでGroovyで@CompileStaticにした上で、ArrayAdapter(Context, int, int)のコンストラクタを呼んでいると、 @CompileStatic public class HogeActivity extends ActionBarActivity { @Override prote…