본문 바로가기
개발노트/Kotlin

파이널 프로젝트 2주차 4일

by 시계속세상은아직돌아가는중 2023. 10. 19.

1. 코루틴을 이용한 리턴

 

1) 뷰모델에서


   suspend fun getAllTemplateSize(): Int = withContext(Dispatchers.IO) {

        val list = firebaseRepo.getAllTemplate(firebaseRepo.getUser())

        list.size

    }

 

신기하게도 =withContext(Dispatchers.IO) 는 마지막 줄이 return을 해준다.

 

=withContext()를 사용

 

 

2) 액티비티에서

 

    CoroutineScope(Dispatchers.Main).launch {
                                if (isFirstLogin()) {
                                    toMainActivity()
                                } else {
                                    toTemplateActivity()
                                }
                            }

 

 

   private suspend fun isFirstLogin(): Boolean {
        val data = viewModel.getAllTemplateSize()

        return data > 0
    }

 

2. firebase 삭제

 

템플릿 삭제 시 어떻게 firebase를 조정해주면 될까 고민이 되었다.

생각해보니 firebase는 경로상의 데이터가 없으면 해당 트리가 스스로 삭제된다

 

그렇다면 템플릿 삭제 시 해당 템플릿 경로상의 모든 데이터를 삭제하면 되는 것이다!

 

참고 사이트

 

https://developer.android.com/kotlin/coroutines-adv?hl=ko

 

Kotlin 코루틴으로 앱 성능 향상  |  Android 개발자  |  Android Developers

Kotlin 코루틴으로 앱 성능 향상 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Kotlin 코루틴을 사용하면 네트워크 호출이나 디스크 작업과 같은 장기 실행 작

developer.android.com