A fast dependency injector for Android and Java
http://square.github.io/dagger/
日本語ドキュメント
http://hajimes.github.io/dagger/
AndroidでDIコンテナを使いたくて、Daggerにたどり着きました。
使い方に慣れるために、まずはjavaでサンプルを動作させましょう。
私はgradle派なので、build.gradleを書いて動作させました。
- git clone https://github.com/square/dagger.git
- cd dagger/examples/simple
- build.gradleを以下の内容で作成
- gradle run
build.gradle
apply plugin: 'java'
apply plugin: 'application'
repositories {
mavenCentral()
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}
dependencies {
compile 'com.squareup.dagger:dagger:1.+'
compile 'com.squareup.dagger:dagger-compiler:1.+'
}
mainClassName = 'coffee.CoffeeApp'
で、OKです。後は、適当にサンプルをいじってみて、@Inject, @Provides, @Moduleに慣れましょう。Androidで試すよりも、javaのが手っ取り早くて楽っすなー。
なお、ほぼシェル的にMakefileで実行したい場合は下記の通り。ライブラリのバージョンやパス等は適宜読み替えてください。
Makefile
CofeeApp.class:
javac -cp "libs/dagger-compiler-1.2.1.jar:libs/dagger-1.2.1.jar:libs/javax.inject-1.jar:libs/javawriter-2.5.0.jar" src/main/java/*.java
clean:
rm *.class *.java
run:
java -cp ".:src/main/java:libs/dagger-compiler-1.2.1.jar:libs/dagger-1.2.1.jar:libs/javax.inject-1.jar:libs/javawriter-2.5.0.jar" CoffeeApp