Skip to content

Instantly share code, notes, and snippets.

@arnaudgiuliani
Created February 27, 2018 16:04
Show Gist options
  • Star 15 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save arnaudgiuliani/446e0d8ee79f4bda38b3057b01098f2e to your computer and use it in GitHub Desktop.
Save arnaudgiuliani/446e0d8ee79f4bda38b3057b01098f2e to your computer and use it in GitHub Desktop.
Koin for Android Java app
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Call helper to start Koin
JavaAppKoinKt.start(this);
}
}
public class MainActivity extends AppCompatActivity {
MainActivityHolder holder = new MainActivityHolder();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//...
// Use my components here
holder.getJComp().sayHello();
holder.getKComp().sayHello();
}
});
}
}
// A module with Kotlin and Java components
val module = applicationContext {
bean { KotlinComponent() }
bean { JavaComponent() }
}
// Start
fun start(myApplication: Application) {
// Start Koin with given Application instance
startKoin(listOf(module)) with (myApplication)
}
// Dependency holder
class MainActivityHolder : KoinComponent {
val kComp: KotlinComponent by inject()
val jComp: JavaComponent by inject()
}
public class JavaComponent {
public void sayHello() {
System.out.println("Hello Koin from Java");
}
}
class KotlinComponent {
fun sayHello() = println("Hello Koin from Kotlin")
}
@jflavio11
Copy link

Thanks! You saved my day!

@Zimins
Copy link

Zimins commented Nov 22, 2018

👍

@andriipanasiuk
Copy link

Thanks a lot!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment