Skip to content

Instantly share code, notes, and snippets.

plugins {
id("com.android.library")
id("com.quickbirdstudios.bluesquare")
}
dependencies {
implementation(kotlin("stdlib-jdk8"))
testImplementation("junit:junit:4.12")
andriodTestImplementation("com.android.support.test:runner:1.0.2")
androidTestImplementation("com.android.support.test.espresso:espresso-core:3.0.2")
// BluesquarePlugin.kt
open class BluesquarePlugin : Plugin<Project> {
override fun apply(project: Project) {
project.configureAndroid()
}
}
// Android.kt
internal fun Project.configureAndroid() = this.extensions.getByType<AndroidBaseExtension>().run {
android {
compileSdkVersion(28)
// ...
}
plugins {
// ...
id("com.android.library")
id("com.quickbirdstudios.bluesquare")
}
implementation-class=com.quickbirdstudios.bluesqure.BluesquarePlugin
open class BluesquarePlugin : Plugin<Project> {
override fun apply(project: Project) {
}
}
plugins {
`kotlin-dsl`
}
repositories {
mavenCentral()
google()
jcenter()
}
let basketViewController = basketContainer.resolve(BasketViewController.self)
let basketContainer = Container()
.register(Bundle.self, instance: Bundle.main)
.register(Repository<Article>.self) { _ in DatabaseRepository() }
.register(BasketService.self) { resolver in
let repository = resolver.resolve(Repository<Article>.self)
return BasketService(repository: repository)
}
.register(BasketViewController.self) { resolver in
let basketViewController = BasketViewController()
basketViewController.basketService = resolver.resolve(BasketService.self)
// MARK: Resolver
func resolve<ServiceType>(_ type: ServiceType.Type) -> ServiceType {
guard let factory = factories.first(where: { $0.supports(type) }) else {
fatalError("No suitable factory found")
}
return factory.resolve(self)
}