tgoop.com/kotlin_broadcast/1940
Last Update:
π ΠΡΡΠ΅Π» Koin Annotations 2.2 - ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΉ DI Ρ ΠΊΠΎΠ΄ΠΎΠ³Π΅Π½ΡΠ°ΡΠΈΠΉ Π½Π° Π±Π°Π·Π΅ Koin Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ Π³ΡΠ°ΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΊΠΎΠ΄Π°
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:@ActivityScope
, @ActivityRetainedScope
, @FragmentScope
, @ViewModelScope
. Π§ΡΠΎ-ΡΠΎ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ°Ρ
Π½Π΅Ρ Dagger Hilt@Configuration
, Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ @KoinApplication
Π½Π°ΠΉΠ΄Π΅Ρ ΠΈΡ
ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ Π²ΠΊΠ»ΡΡΠΈΡ Π² Π³ΡΠ°Ρ. Π Π°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ
ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
@Module
@Configuration
class DatabaseModule {
@Singleton fun database() = ...
}
@KoinApplication
object ProductionApp
fun main() {
// Π€ΡΠ½ΠΊΡΠΈΡ startKoin() ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ
ProductionApp.startKoin()
}
@Monitor
@Single
class UserService(private val repository: UserRepository)
π Π£Π»ΡΡΡΠΈΠ»ΠΈ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΊΠΎΠ΄Π°, ΡΠΌΠ΅Π½ΡΡΠΈΠ»ΠΈ ΡΠ°ΡΡ ΠΎΠ΄ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ΄Π΅Π»Π°Π»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΠΎΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ
Koin Annotations - ΡΡΠΎ Ρ ΠΎΡΠΎΡΠ°Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° ΡΠ΅ΠΌ, ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ ΡΠΉΡΠΈ Ρ Dagger ΠΈΠ»ΠΈ Hilt, Π»ΠΈΠ±ΠΎ Π½ΡΠΆΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° KMP, Π° ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ Π²Π΅ΡΡ ΠΊΠΎΠ΄ Π½Π΅ Ρ ΠΎΡΠ΅ΡΡΡ. Π‘ Π²Π΅ΡΡΠΈΠ΅ΠΉ 2.2 ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π»ΡΡΡΠ΅ ΠΈ ΠΏΡΠΎΡΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ. ΠΠΎ Π²ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡ ΠΊΠΎΠ΄ΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π½Π΅ ΡΠΉΡΠΈ, Π° Π·Π½Π°ΡΠΈΡ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
#kotlin #koin #kmp #java