第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

Kotlin之Koin

標(biāo)簽:
Kotlin

Koin是一款轻量级的依赖注入框架,根据官方的描述,它无代理,无代码生成,无反射。

学过Dagger2的同学都深深体会到Dagger入门的艰辛。
但是Koin,你通过5分钟的学习就可以掌握它的基本用法。
学完Koin,你可以向Dagger 说bye bye了。

第一步:Gradle Setup

在你的app build.gradle中添加依赖:

// Add Jcenter to your repositories if neededrepositories {
    jcenter()    
}
dependencies {// Koin for Androidcompile "org.koin:koin-android:1.0.1"http:// Koin Android Scope featurecompile "org.koin:koin-android-scope:1.0.1"http:// Koin Android ViewModel featurecompile "org.koin:koin-android-viewmodel:1.0.1"}

第二步:Our components

写一些测试用的类,提供数据

interface HelloRepository {    fun giveHello(): String
}class HelloRepositoryImpl() : HelloRepository {    override fun giveHello() = "Hello Koin"}

第三步:自定义ViewModel

使用第二步定义类提供的数据

class MyViewModel(val repo : HelloRepository) : ViewModel() {    fun sayHello() = "${repo.giveHello()} from $this"}

第四步:定义Koin module

val appModule = module {    // single instance of HelloRepository
    single<HelloRepository> { HelloRepositoryImpl() }    // MyViewModel ViewModel
    viewModel { MyViewModel(get()) }
}

代码分析:

  • appModule中声明了MyViewModel,它的参数传入了get(), 它将自动搜索到对应的HelloRepository,创建实例。

  • single标明HelloRepository创建的是单例

第五步:启动 Koin

class MyApplication : Application(){    override fun onCreate() {        super.onCreate()        // Start Koin
        startKoin(this, listOf(appModule))
    }
}

第六步:注入依赖

class MyViewModelActivity : AppCompatActivity() {    
    // Lazy Inject ViewModel
    val myViewModel: MyViewModel by viewModel()    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_simple)        //...
    }
}



作者:wenson123
链接:https://www.jianshu.com/p/1df77e402069


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報(bào)

0/150
提交
取消