본문 바로가기

개발/자세히 쳐다 보면...10

토이프로젝트 1-10 flow, scope 이용하기 이번에는 제대로 코루틴을 써보자고. 룸에서 지원하는 기능중에 데이터를 그냥 받는것도 있지만, flow나 livedata로 만들어주는 기능이 있어. 그걸 이용해보려고 해 먼저 flow가 뭔지 궁금하면... https://lonewhite.tistory.com/33 코루틴에서 Flow가 뭐야? 일단 정의 먼저 보면, "코틀린의 플로우는 순차적으로 값을 내보내고 정상적으로 또는 예외로 완료되는 비동기적인 데이터 스트림입니다." 정의만 봐도 대충 뭔소린지는 알겠지??? rx를 써 봤으 www.lonewhite.com 방법은 간단해 그냥 아래처럼... 넘겨주는걸 flow로만 바꾸면 끝! import kotlinx.coroutines.flow.Flow @Dao interface InvItemDao { // @Que.. 2023. 5. 3.
토이프로젝트 1-9 viewmodel(vm) 만들기 뷰 모델의 역할은 간단해, 뷰는 화면에 보이는 것들만 처리하고, 뷰 모델은 데이터 영역간에 연결?을 하는 역할이지 뷰에서는 불필요하게 데이터를 이렇게 저렇게 가져오는 부분이 있을 필요 없으니 그걸 다 뷰 모델에서 처리하게 하고, 뷰 모델에서 데이터를 읽어서 뷰에 필요한 부분만 가공한다던지, 뷰에서 넘어온 데이터를 DB에 맞게 변경해서 저장한다든지 하는거지. 네트워크로 데이터를 받아오는 경우에 뷰 모델에서 네트워크를 쓸지, 내부에 캐시된 DB를 쓸지 정하고 DB의 캐시 정보도 업데이트를 해주는거지. 그러면 뷰에서는 이게 어디서 온 데이터인지는 알 필요 없이 그냥 보여주기만 하면 되는거야. 그리고 뷰 모델이 너무 커지는 걸 막기 위해서 usecase라는 것도 쓰기는 하는데 일단 그건 다음번에 알아보고 오늘은.. 2023. 4. 23.
토이프로젝트 1-8 view binding 이건 뭐 어려울게 없어. 우리가 주구장창 findviewbyid로 가져와서 쓰던거를 알아서 해주는 기능이야 먼저 현재 코드를 보면 package com.lonewhite.finhelper.test import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.TextView import com.lonewhite.finhelper.FinApplication import com.lonewhite.finhelper.R import com.lonewhite.finhelper.data.model.InvItem import com.lonewhite.finhe.. 2023. 4. 12.
토이프로젝트 1-7 dagger 써보기 -2- 토이프로젝트 1-6 dagger 써보기 -1- 2023. 4. 11.
반응형