launch ? launch는 코루틴 블록을 만드는 코루틴 빌더 중 하나 입니다. launch는 현재 스레드를 차단하지 않고 새로운 코루틴을 생성할 수 있습니다. 특정 결과값을 반환하지않고 Job객체를 반환 합니다. launch 사용해보기 fun main() { val job = CoroutineScope(Dispatchers.IO).launch() { delay(3000) println("launch완료") } } 실행해 보면 아무것도 출력되지 않는다. 그 이유는 IOThread는 MainThread가 종료되면 같이 종료되기 때문이다. 이를 해결하기 위해서는 IOThread 작업이 완료될 때까지 MainThread에서 기다려줘야 한다. suspend fun main() { val job = Corout..
LiveData 안드로이드 Jetpack 구성요소중 하나이다. Data의 변경을 관찰 할 수 있는 Data Holder 클래스 입니다. Observer LiveData의 Data관찰은 Observer가 한다. 안드로이드에서의 Observer는 데이터가 변경되는지 감시하고 있다가 데이터가 변경되면 UI 컨트롤러에게 알려준다. 소식을 들은 UI 컨트롤러는 변경된 데이터를 가지고 UI를 업데이트한다. Observer는 LiveData라는 데이터 홀더 클래스가 가지고 있는 데이터만 감시할 수 있다. LiveData의 장점 UI와 데이터 상태의 일치 보장 - LiveData는 데이터가 변경될 때마다 Observer 객체에게 알려줍니다. - 앱 데이터가 변경될 때마다 Observer가 대신 UI를 업데이트 하므로 ..
DataClass 데이터를 다루는 데에 최적화된 class 5가지의 메서드를 자동으로 생성해줍니다. 일반클래스로는 구현해서 사용해야할 메서드를 자동으로 생성해주니 아주 편리하다. DataClass 5가지 메서드 위에서 말했듯이 자동으로 생성해 준다. 구현할 필요가 없다. 1. equals() : 내용의 동일성 판단 2. hashcode() : 객체의 내용에서 고유한 코드를 생성 3. toString() : 포함된 속성을 보기쉽게 나타냄 4. copy() : 객체를 복사하여 똑같은 내용의 새 객체를 만듬 5. componentX() : 속성을 순서대로 반환 fun main() { println("*****일반 클래스*****\n") val a = General("홍길동",22) println(a == Ge..
제가 보려고 쓰는 글입니다. 설명이 부족할 수 있습니다. implementation("androidx.fragment:fragment-ktx:1.4.1") buildFeatures { dataBinding true } build.gradle 추가. 1. activity_main.xml Databinding 사용하기 위해 으로 묶어줌 2. MainViewModel class MainViewModel : ViewModel() { private var num = 0 fun plus() { num++ } fun getNum() : Int{ return num } } ViewModel 간단하게 생성 3. fragment_test.xml Databinding 사용하기 위해 으로 묶어줌 4. TestFragment ..