LoginSignup
1
1

More than 3 years have passed since last update.

Koinを使ってActivity/Fragment間で共有するViewModelをDIする

Posted at
  • build.gradle
buildscript {
    ext.kotlin_version = '1.4.10'
    ext.koin_version = '2.1.6'
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.0.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "org.koin:koin-gradle-plugin:$koin_version"
    }
}
  • app/build.gradle
dependencies {
    implementation "org.koin:koin-android:$koin_version"
    implementation "org.koin:koin-androidx-scope:$koin_version"
    implementation "org.koin:koin-androidx-viewmodel:$koin_version"
}
  • MainActivity
class MainActivity : AppCompatActivity() {

    private val viewModel: MainViewModel by viewModel()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        supportFragmentManager.beginTransaction()
            .replace(R.id.content_layout, MainFragment())
            .commit()
    }
}
  • MainFragment
class MainFragment : Fragment() {

    private val viewModel by sharedViewModel<MainViewModel>()

    ...
}
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1