はじめに
Butter Knife 8系(Ver.8.5.1)について色々調べたので、そのまとめです。
Butter Knifeとは
Butter Knifeは、Android用の View Injection ライブラリ。
Viewとフィールド・メソッドとをアノテーションを用いて結び付けることができる。
GitHubはこちらへ。
前提
- SDK ver.9以上必要(Ver.8.5.0 時点)
- Jackコンパイラもサポートしている(Ver.8.3.0 以降)
Data BindingはJackコンパイラをサポートしていなかったので。。。
導入
READMEから抜粋。
dependencies {
compile 'com.jakewharton:butterknife:8.5.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
}
annotationProcessor
はGradleプラグインのVer.2.2以上が必要。できなければ、aptのライブラリを追加する。
Android プロジェクトで APT を使うためのGradle設定
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1'
}
}
apply plugin: 'com.android.library'
apply plugin: 'com.jakewharton.butterknife'
上記のプラグインを使う方法だと、ViewをバインドするときのIDが R
から R2
に変わるので注意。
使い方
公式サイトにすべて書いてある。
あとで追記しよう。。。
便利プラグイン
ButterKnife の View Injection を一発自動生成するプラグインがある。
リリースノートを見る限り、最新のVer.1.5.0はButterKnife Ver.8.0.1をサポートしているので、使えることは使える。
ただ、XMLに記述された android:id がキャメルケースの変数名に自動生成されるので、既存コードをButter Knifeに移行するときには適さなさそう。
新規で使うには便利。
Butter Knife Zelezny
Butter Knife Zeleznyプラグイン導入方法はこちら。
Ver.移行
古いVer.からアップグレードするときに必要なこと。
Ver.6未満 → 7
以下のサイトでいけそう。
Ver.7 → 8
以下のサイトにだいたい書いてあるが、build.gradleの部分だけは追記。
* Butter Knifeを8系にアップグレードする
* Android プロジェクトで APT を使うためのGradle設定
デメリット
Butter Knifeのデメリットが書いてある記事があったので、残しておく。
さよならButterKnife. 僕はAPTの無いキミが好きだったよ