코틀린의 Companion object 사용?Volatile? (2022.7.21)
·
코틀린/Coroutine
1. Companion Object Object 라는 키워드를 통해서 안드로이드에서 사용하는 단 하나의 객체를 선언한다. 이렇게 선언한 객체는 싱글톤으로 유지할 수 있다. 그런데 Class안의 객체는 Class를 생성해야 접근이 가능함 그러므로 동반객체인 Companion object사용시에 이는 Class와 같이 정의하는 싱글톤 객체로 구체적 Class인스턴스와 별개로 접근할 수 있는 객체가 생성되게됨!! 그냥 잘 아는 Object와 같다고 생각하면 된다. https://medium.com/@lunay0ung/kotlin-object-declaration-%EA%B7%B8%EB%A6%AC%EA%B3%A0-companion-object-feat-static-d5c97c21168 Kotlin: Object..
Android Coroutine (4)
·
코틀린/Coroutine
Dispatchers / Threads 코루틴을 실행할 스레드를 설정 할 수 있다고 했었음. Dispatcher에는 뭐가 있니? Main 안드로이드 메인 쓰레드! 유아이 작업이 이루어 질때 사용해야함, 라이브데이터를 업데이트 할 때 Default 백그라운드 공통 풀을 사용해서 설정한다. CPU리소스를 소비하는 작업에 적절! 뭐 목록 정렬이라던가 JSON파싱같은 것에 어울린다고 함 Io Disk 또는 네트워크 입출력 을 메인쓰레드 밖에서 할때 사용, 뭐 룸데이터 베이스(Disk)같은 것 관리 등 코루틴에서는 코루틴끼리 정보를 주고받을 수 있을까? 이게 채널이 한다 위의 그림만 보아도 뭘 하는지 알 수 있다. 채널의 종류 Unlimited Buffered Rendezvous Conflated 미완성인데.. ..
Android Coroutine (3) 콜백과 비교해보기
·
코틀린/Coroutine
갑자기 나는 대부분 비동기 처리를 할 클로져를 가지고 했던 기억이 나서 그럼 둘 사이에 차이가 있을까? 라는 생각이 들었다..Clojure를 통해서 처리를 할 경우 같은 쓰레드를 계속 사용하는데 그럼 좀 별로 아닌가??? 그래서 짜보았다.. (2)편에서 구현한 같은 기능을 Clojure를 통해서 구현했다.. fun getPersonByClosure(id:String){ println("VM : viewModel request start [${Thread.currentThread().name}]") repo.getPersonByClosure(id){ println("VM : viewModel request data arrived [${Thread.currentThread().name}]") setInfo(..
Android Coroutine 하나부터 열까지 (2) firebase
·
코틀린/Coroutine
잘 모르겠고, 바로 적용부터 해보자 이번에 해볼것은 1 1) 식별자를 통해서 그 사람의 정보와, 사진을 파이어베이스에서 받아오고 2). 그걸 viewmodel에 적용후 3) 프래그먼트에 쏴주기 2 1) 식별자 통해서 그 사람의 정보 얻고 2) 정보를 얻은 후에 정보내의 데이터를 이용하여 사진을 파이어베이스에서 받기 3) 4) view까지 연결 우선 첫번째 과제부터 시작해보자! 우선 레포에서 파이어베이스와 연결하여 uid로만 데이터를 가져오는 코드를 짠다. @Singleton class TestRepo @Inject constructor() { val firebase = FirebaseFirestore.getInstance() val firestorage = FirebaseStorage.getInstanc..
Android Coroutine 기본
·
코틀린/Coroutine
혼자 공부해보면서 정리한거라 많이 틀릴 수 있다는 것을 미리 알려드립니다!! 1. 동기/ 비동기 코루틴을 알아보기 전에 왜 코루틴이 필요한가에 대한 설명이 필요할 것 같다. 1) 동기(순차적으로 작업을 함) 작업의 요청이 있을 경우 그 결과가 연결되어 일어나는 것으로, (예시) 네트워크 I/O와 같은 입출력 작업은 요청 이후 출력까지 해당 기기의 부하가 적어 다른 작업을 할 수 있음에도 네트워크의 결과가 나올때 까지 기다려야는 비효율적인 동작을 할 수 있다. 2) 비동기(동시에 작업이 일어나는 것 처럼 동작 함) 동기와 다르게 작업의 요청, 요청에 따른 과정, 결과를 분리하여, 시간이 걸리 과정(요청에 따른 과정 등)을 다른 부분에 맡기고 다음 작업의 루틴을 시작하여 마치 동시에 여러 작업이 이루어 지는..
리워크
'코틀린' 카테고리의 글 목록