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
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