のぶLab.

流しのソフトウェアエンジニアの雑記帳. Android, Scala, Clojure, Ruby on Railsなど

AndroidでJavaslangを動かす

Javaslangとは

www.javaslang.io

Javaの関数型Libraryです。 Option, Future, EitherやCurrying, Compositionなど関数型プログラミングを実現するAPIをいくつか揃えています。

詳細は以下のページで

http://www.javaslang.io/javaslang-docs/

前提

JavaslangはJava8以上が必要なので、Android N(sdk version 24)以上の環境が必須です。

Androidで使ってみる

build.gradleに以下を追加するとJavaslangが使えるようになります。

...

android {
    ...
    defaultConfig {
        ...
        jackOptions {
            enabled true
        }
        ...
    }
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    dependencies {
        ...
        compile "io.javaslang:javaslang:2.0.1"
    }
}

例えばこんな感じで。

List<Integer> list = List.of(1, 2, 3, 4, 5);
TextView textView = (TextView) findViewById(R.id.text_view);
textView.setText(list.sum().toString());