Nah kali ini saya mau sharing ke temen-temen tentang Retrolambda, yang nantinya akan memudahkan kita dalam mempelajari RxJava dan RxAndroid pada pengembangan aplikasi android. Retrolambda adalah library yang diperlukan agar kita dapat menggunakan expression Java 8, method references dan lainnya dengan menggunakan Java 7 pada project android kita. Gampangnya sih yah kita dapat menggunakan fitur Java 8 dengan menggunakan Java 7. Plug in Gradle Retrolambda dapat mengintegrasikan Retrolambda pada bulid menggunakan gradle. Penggunaan Retrolambda ini karena standar pengembangan Android saat ini belum support menggunakan Java 8.
Tujuan utama penggunaan Retrolambda adalah penyingkatan kode, sehingga kode kita menjadi lebih pendek. Contohnya adalah seperti dibawah ini.
1 2 3 4 5 6 7 |
btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getApplicationContext(), "Hello Retrolambda", Toast.LENGTH_LONG).show(); } }); |
Dan jika menggunakan Retrolambda kodingan akan seperti berikut.
1 |
btn.setOnClickListener(e -> Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_LONG).show()); |
Nah seperti itu contohnya dan retrolambda ini sangat bermanfaat saat kita menggunakan library RxJava pada pengembangan aplikasi android kita. Sekarang kita bahas cara setup agar kita dapat menggunakan Retrolambda pada project android kita.
[icon name=icon-pencil] Kalian harus install JDK 8 dulu. [icon name=icon-pencil] Tambahakan kode ini pada project main build.gradle pada line ke-8.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0' classpath 'me.tatarka:gradle-retrolambda:3.2.5' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
apply plugin: 'com.android.application' apply plugin: 'me.tatarka.retrolambda' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.gookkis.retrolambdatutorial" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.3.0' } retrolambda { jvmArgs '-noverify' } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in /Users/herikiswanto/Documents/Android-SDK/sdk/tools/proguard/proguard-android.txt # You can edit the include path and order by changing the proguardFiles # directive in build.gradle. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # Add any project specific keep options here: # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} -dontwarn java.lang.invoke.* |
Itu ada diline 9 om classpath retro lambdanya
Oh iya oke terima kasih koreksi nya…