Tuesday, December 15, 2015

Android ButterKnife

Apa yang kalian rasakan jika melakukan development android ? interface untuk onclick/ontouch listener dan inflation view (findviewbyId) di mana - mana. Jika kalian merasa capek melakukan pengerjaan berulang - ulang untuk melakukan hal tersebut. Maka solusinya adalah menggunakan ButterKnife. ButterKnife akan meng-inject kode pada saat compile time dengan cara memberikan anotasi pada variabel/method.

Tambahkan dependency
MAVEN:
<dependency>
  <groupId>com.jakewharton</groupId>
  <artifactId>butterknife</artifactId>
  <version>7.0.1</version>
</dependency>
GRADLE:
compile 'com.jakewharton:butterknife:7.0.1'

Conventional:
Button button = (Button)findViewById(R.id.button);
TextView textView = (TextView)findViewById(R.id.textView);
RadioButton radioButton  = (RadioButton)findViewById(R.id.radioButton);
CheckBox checkBox= (CheckBox)findViewById(R.id.checkbox);
EditText editText = (EditText)findViewById(R.id.editText);

Butterknife Android:
@Bind(R.id.button)
Button button;
@Bind(R.id.textView)
TextView textView;
@Bind(R.id.radioButton)
RadioButton radioButton;
@Bind(R.id.checkBox)
CheckBox checkBox;
@Bind(R.id.editText)
EditText editText;
// Register pada onCreateView pada activity. Contoh:
Butterknife.bind(this);

Hasillnya lebih singkat dan terstruktur. Berikut pada onClickListener:

Conventional:
Button button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
//do something
             } });

Butterknife Android:
@OnClick(R.id.sign_in_button)
public void attemptLogin() {
         // do something       
}

Selain itu juga bisa digunakan untuk melakukan bind resources seperti dibawah:
class ExampleActivity extends Activity {
@BindString(R.string.title) String title; @BindDrawable(R.drawable.graphic) Drawable graphic; @BindColor(R.color.red) int red; // int or ColorStateList field @BindDimen(R.dimen.spacer) Float spacer; // int (for pixel size) or float (for exact value) field   // ...
}

Kesimpulannya ButterKnife membuat code jadi lebih terstruktur dan clean. Dan banyak top aplikasi android yang menggunakan library ini. Dan beri kredit untuk Jakewarthon sang initiate project ini!.

Sumber:
http://jakewharton.github.io/butterknife/
http://www.thekeyconsultant.com/2013/09/5-reasons-you-should-use-butterknife.html

No comments:

Post a Comment