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, ) } } }