41 lines
1.4 KiB
Kotlin
41 lines
1.4 KiB
Kotlin
package com.example.architecture
|
|
|
|
import android.app.Application
|
|
import com.example.architecture.core.data.di.coreDataModule
|
|
import com.example.architecture.feature.about.presentation.di.aboutPresentationModule
|
|
import com.example.architecture.feature.characters.data.di.charactersDataModule
|
|
import com.example.architecture.feature.characters.presentation.di.charactersPresentationModule
|
|
import org.koin.android.ext.koin.androidContext
|
|
import org.koin.android.ext.koin.androidLogger
|
|
import org.koin.core.context.startKoin
|
|
import timber.log.Timber
|
|
|
|
/**
|
|
* Single Koin entry point. Every feature's `*DataModule` / `*PresentationModule` is assembled here,
|
|
* never inside feature modules.
|
|
*/
|
|
class ArchitectureApp : Application() {
|
|
override fun onCreate() {
|
|
super.onCreate()
|
|
|
|
// Plant Timber only in debug; release builds get no logs (swap in a crash-reporting tree).
|
|
if (BuildConfig.DEBUG) {
|
|
Timber.plant(Timber.DebugTree())
|
|
}
|
|
|
|
startKoin {
|
|
androidLogger()
|
|
androidContext(this@ArchitectureApp)
|
|
modules(
|
|
// core
|
|
coreDataModule,
|
|
// characters feature
|
|
charactersDataModule,
|
|
charactersPresentationModule,
|
|
// about feature (MVVM contrast)
|
|
aboutPresentationModule,
|
|
)
|
|
}
|
|
}
|
|
}
|