Skip to content

Commit

Permalink
Merge pull request #27 from TeamOwori/feat/#18-DI-라이브러리-Koin에서-Dagger…
Browse files Browse the repository at this point in the history
…-Hilt로-Migration

feat/#18-DI 라이브러리 Koin에서 Dagger Hilt로 Migration
  • Loading branch information
bamin0422 authored Sep 25, 2023
2 parents 7a86860 + 4952160 commit 23ecc59
Show file tree
Hide file tree
Showing 17 changed files with 66 additions and 53 deletions.
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]

0 comments on commit 23ecc59

Please sign in to comment.