Joan Colmenero
bind<MyService>() with singleton { instance<Retrofit>().create(MyService::class.java) }
bind<LogniService>() with singleton { instance<Retrofit>().create(LoginService::class.java) } bind<AuthenticationService>() with singleton { instance<Retrofit>().create(AuthenticationService::class.java) } bind<DetailService>() with singleton { instance<Retrofit>().create(DetailService::class.java) } ---
streetsofboston
Retrofit
KClass<T>
interface RetrofitService // Just an empty marker-interface .... interface LoginService : RetrofitService { ... } ... interface AuthenticationService: RetrofitService { ... } ... etc ...
... bind<RetrofitService>().subTypes() with { type -> singleton { instance<Retrofit>().create(type.jvmType as Class<RetrofitService>) } } ...
... private val loginService: LoginService by kodein.instance() ...
A modern programming language that makes developers happier.