Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat/#18-DI 라이브러리 Koin에서 Dagger Hilt로 Migration #27

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ plugins {
alias(libs.plugins.kapt)
alias(libs.plugins.google.services)
alias(libs.plugins.firebase.crashlytics)
alias(libs.plugins.dagger.hilt)
}

android {
Expand Down Expand Up @@ -79,8 +80,6 @@ dependencies {
implementation(libs.lifecycle.runtime.ktx)
implementation(libs.lifecycle.viewmodel.savedstate)
kapt(libs.lifecycle.compiler)
implementation(libs.koin.core)
implementation(libs.koin.android)
implementation(libs.glide)
implementation(libs.glide.compiler)
implementation(libs.lottie)
Expand All @@ -90,4 +89,10 @@ dependencies {
implementation(libs.firebase.analytics)
implementation(libs.firebase.auth)
implementation(libs.play.service.auth)
implementation(libs.dagger.hilt)
kapt(libs.dagger.hilt.compiler)
}

kapt {
correctErrorTypes = true
}
4 changes: 2 additions & 2 deletions google-services.json → app/google-services.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:191948284640:android:d0e8d4fd97b74529e3e685",
"mobilesdk_app_id": "1:191948284640:android:be4f5d3774729ec3e3e685",
"android_client_info": {
"package_name": "com.android.owori"
"package_name": "com.owori.android"
}
},
"oauth_client": [
Expand Down
8 changes: 2 additions & 6 deletions app/src/main/java/com/owori/android/OworiApplication.kt
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
package com.owori.android

import android.app.Application
import org.koin.android.ext.koin.androidContext
import org.koin.core.context.startKoin
import dagger.hilt.android.HiltAndroidApp

@HiltAndroidApp
class OworiApplication: Application() {
override fun onCreate() {
super.onCreate()
startKoin {
androidContext(this@OworiApplication)
modules(appModules)
}
}
}
19 changes: 0 additions & 19 deletions app/src/main/java/com/owori/android/OworiModule.kt

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
package com.owori.android.auth.ui.view

import androidx.activity.viewModels
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.fragment.findNavController
import com.owori.android.common.ui.view.BaseActivity
import com.owori.android.R
import com.owori.android.databinding.ActivityAuthBinding
import com.owori.android.auth.ui.viewmodel.AuthViewModel
import org.koin.android.ext.android.inject
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
class AuthActivity : BaseActivity<ActivityAuthBinding, AuthViewModel>(R.layout.activity_auth) {
override val viewModel: AuthViewModel by inject()

override val viewModel : AuthViewModel by viewModels()
override fun initView() {
initNavGraph()
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
package com.owori.android.auth.ui.view

import androidx.activity.addCallback
import androidx.fragment.app.viewModels
import com.owori.android.auth.ui.viewmodel.LoginViewModel
import com.owori.android.common.ui.view.BaseFragment
import com.owori.android.R
import com.owori.android.databinding.FragmentLoginBinding
import com.owori.android.common.navigateTo
import org.koin.android.ext.android.inject
import dagger.hilt.android.AndroidEntryPoint


@AndroidEntryPoint
class LoginFragment : BaseFragment<FragmentLoginBinding, LoginViewModel>(R.layout.fragment_login) {
override val viewModel: LoginViewModel by inject()
override val viewModel: LoginViewModel by viewModels()
override fun setBindingVariables() {
with(binding) {
vm = viewModel
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
package com.owori.android.auth.ui.view

import androidx.activity.addCallback
import androidx.fragment.app.viewModels
import androidx.viewpager2.widget.ViewPager2
import com.owori.android.common.ui.view.BaseFragment
import com.owori.android.R
import com.owori.android.databinding.FragmentOnboardingBinding
import com.owori.android.auth.ui.adapter.OnBoardingViewPagerAdapter
import com.owori.android.auth.ui.viewmodel.OnBoardingViewModel
import com.owori.android.common.navigateTo
import org.koin.android.ext.android.inject
import dagger.hilt.android.AndroidEntryPoint

class OnBoardingFragment :
BaseFragment<FragmentOnboardingBinding, OnBoardingViewModel>(R.layout.fragment_onboarding) {
override val viewModel: OnBoardingViewModel by inject()

@AndroidEntryPoint
class OnBoardingFragment : BaseFragment<FragmentOnboardingBinding, OnBoardingViewModel>(R.layout.fragment_onboarding) {
override val viewModel: OnBoardingViewModel by viewModels()
override fun setBindingVariables() {
with(binding) {
vm = viewModel
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package com.owori.android.auth.ui.view

import androidx.fragment.app.viewModels
import com.owori.android.R
import com.owori.android.databinding.FragmentPolicyBinding
import com.owori.android.auth.ui.viewmodel.PolicyViewModel
import com.owori.android.common.ui.view.BaseFragment
import org.koin.android.ext.android.inject
import dagger.hilt.android.AndroidEntryPoint

class PolicyFragment :
BaseFragment<FragmentPolicyBinding, PolicyViewModel>(R.layout.fragment_policy) {
override val viewModel: PolicyViewModel by inject()
@AndroidEntryPoint
class PolicyFragment : BaseFragment<FragmentPolicyBinding, PolicyViewModel>(R.layout.fragment_policy) {
override val viewModel: PolicyViewModel by viewModels()
override fun setBindingVariables() {}

override fun initView() {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,18 @@ package com.owori.android.auth.ui.view

import android.os.Handler
import android.os.Looper
import androidx.fragment.app.viewModels
import com.owori.android.common.ui.view.BaseFragment
import com.owori.android.R
import com.owori.android.databinding.FragmentSplashBinding
import com.owori.android.auth.ui.viewmodel.SplashViewModel
import com.owori.android.common.navigateTo
import org.koin.android.ext.android.inject
import dagger.hilt.android.AndroidEntryPoint

class SplashFragment :
BaseFragment<FragmentSplashBinding, SplashViewModel>(R.layout.fragment_splash) {
override val viewModel: SplashViewModel by inject()

@AndroidEntryPoint
class SplashFragment : BaseFragment<FragmentSplashBinding, SplashViewModel>(R.layout.fragment_splash) {
override val viewModel: SplashViewModel by viewModels()
override fun setBindingVariables() {}

override fun initView() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package com.owori.android.auth.ui.viewmodel

import com.owori.android.common.ui.viewmodel.BaseViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
import javax.inject.Inject

class AuthViewModel : BaseViewModel() {}
@HiltViewModel
class AuthViewModel @Inject constructor() : BaseViewModel() {}
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,11 @@ package com.owori.android.auth.ui.viewmodel
import androidx.lifecycle.LiveData
import com.owori.android.common.SingleLiveEvent
import com.owori.android.common.ui.viewmodel.BaseViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
import javax.inject.Inject

class LoginViewModel : BaseViewModel() {
@HiltViewModel
class LoginViewModel @Inject constructor() : BaseViewModel() {
private val _callKakaoLogin: SingleLiveEvent<Unit> = SingleLiveEvent()
val callKakaoLogin: LiveData<Unit> = _callKakaoLogin
private val _callGoogleLogin: SingleLiveEvent<Unit> = SingleLiveEvent()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,11 @@ import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import com.owori.android.common.SingleLiveEvent
import com.owori.android.common.ui.viewmodel.BaseViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
import javax.inject.Inject

class OnBoardingViewModel : BaseViewModel() {
@HiltViewModel
class OnBoardingViewModel @Inject constructor() : BaseViewModel() {
private val _currentItemIndex: MutableLiveData<Int> = MutableLiveData(0)
val currentItemIndex: LiveData<Int> = _currentItemIndex
private val _finishOnBoarding: SingleLiveEvent<Unit> = SingleLiveEvent();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package com.owori.android.auth.ui.viewmodel

import com.owori.android.common.ui.viewmodel.BaseViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
import javax.inject.Inject

class PolicyViewModel : BaseViewModel() {}
@HiltViewModel
class PolicyViewModel @Inject constructor() : BaseViewModel() {}
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package com.owori.android.auth.ui.viewmodel

import com.owori.android.common.ui.viewmodel.BaseViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
import javax.inject.Inject

class SplashViewModel : BaseViewModel() {}
@HiltViewModel
class SplashViewModel @Inject constructor() : BaseViewModel() {}
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ import androidx.lifecycle.LiveData
import androidx.lifecycle.ViewModel
import androidx.navigation.Navigation
import com.owori.android.common.SingleLiveEvent
import org.koin.core.component.KoinComponent
import dagger.hilt.android.lifecycle.HiltViewModel
import javax.inject.Inject

open class BaseViewModel : ViewModel(), KoinComponent {
open class BaseViewModel : ViewModel() {
protected val _navigation = SingleLiveEvent<Navigation>()
val navigation: LiveData<Navigation> = _navigation

Expand Down
1 change: 1 addition & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ plugins {
alias(libs.plugins.kapt) apply false
alias(libs.plugins.google.services) apply false
alias(libs.plugins.firebase.crashlytics) apply false
alias(libs.plugins.dagger.hilt) apply false
}
true // Needed to make the Suppress annotation work for the plugins block
5 changes: 5 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ firebase-bom = "32.3.1"
firebase-crashlytics = "2.9.9"
google-services = "4.3.15"
play-service-auth = "20.7.0"
dagger-hilt = "2.44"
hilt-compiler = "2.44"

[libraries]
core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "core-ktx" }
Expand Down Expand Up @@ -68,6 +70,8 @@ firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashly
firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics-ktx"}
firebase-auth = { group = "com.google.firebase", name = "firebase-auth-ktx" }
play-service-auth = { group = "com.google.android.gms", name = "play-services-auth", version.ref = "play-service-auth" }
dagger-hilt = { group = "com.google.dagger", name = "hilt-android", version.ref = "dagger-hilt" }
dagger-hilt-compiler = { group = "com.google.dagger", name = "hilt-compiler", version.ref = "hilt-compiler" }

[plugins]
androidApplication = { id = "com.android.application", version.ref = "agp" }
Expand All @@ -76,6 +80,7 @@ kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", versi
kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" }
google-services = { id = "com.google.gms.google-services", version.ref = "google-services" }
firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebase-crashlytics" }
dagger-hilt = { id = "com.google.dagger.hilt.android", version.ref = "dagger-hilt" }

[bundles]