#Toothpick (a.k.a T.P. like a teepee)
What is Toothpick ?
Toothpick is a scope tree based Dependency Injection (DI) library for Java.
It is a full-featured, runtime based, but reflection free, implementation of JSR 330.
What does Toothpick offer ?
//a typical Toothpick scope tree during the execution of an Android app.
@ApplicationSingleton
/ | \
/ | \
/ | \
@PresenterSingleton | Service 2
/ |
/ Service 1
/
Activity 1
/ \
/ Fragment 2
/
Fragment 1
Toothpick is :
Hey, Android Devs, you can use TP to create MVP apps so easily !
Examples
Currently Toothpick has 2 sets of examples :
Setup
For Android :
#android setup using apt
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
dependencies {
compile 'com.github.stephanenicolas.toothpick:toothpick-runtime:1.0.0-RC10'
// and for android -> compile 'com.github.stephanenicolas.toothpick:smoothie:1.0.0-RC10'
apt 'com.github.stephanenicolas.toothpick:toothpick-compiler:1.0.0-RC10'
//highly recommended
testCompile 'com.github.stephanenicolas.toothpick:toothpick-testing:1.0.0-RC10'
testCompile 'mockito or easymock'
}
For java:
<dependencies>
<dependency>
<groupId>com.github.stephanenicolas.toothpick</groupId>
<artifactId>toothpick-compiler</artifactId>
<version>1.0.0-RC10</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.github.stephanenicolas.toothpick</groupId>
<artifactId>toothpick-runtime</artifactId>
<version>1.0.0-RC10</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.github.stephanenicolas.toothpick</groupId>
<artifactId>toothpick-testing</artifactId>
<version>1.0.0-RC10</version>
<scope>test</scope>
</dependency>
<dependency>
<easymock or mockito>
</dependency>
</dependencies>
Talks
Wanna know more ?
Visit Toothpick's wiki !