코틀린의 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) 비동기(동시에 작업이 일어나는 것 처럼 동작 함) 동기와 다르게 작업의 요청, 요청에 따른 과정, 결과를 분리하여, 시간이 걸리 과정(요청에 따른 과정 등)을 다른 부분에 맡기고 다음 작업의 루틴을 시작하여 마치 동시에 여러 작업이 이루어 지는..
리워크
'코틀린/Coroutine' 카테고리의 글 목록