본문 바로가기

android12

Kotlin DI 라이브러리 Koin DI는 구성요소간의 의존 관계가 소스코드 내부가 아닌 외부 설정 파일등을 통해 정의되게하는 디자인 패턴중 하나입니다. project 수준의 gradle에 아래 내용을 추가합니다 . koin_version = '2.0.0-rc-2' repositories { jcenter() } 그리고 앱수준의 gradle에 아래와 같은 dependency를 추가합니다 implementation "org.koin:koin-android:$koin_version" /** 아래는 옵션으로 필요한 부분이 있으면 추가해줍니다 **/ - Core features // Koin for Kotlin implementation "org.koin:koin-core:$koin_version" // Koin extended & experim.. 2020. 5. 26.
Android LiveData 알아보기 (feat.ViewModel,Room) LiveData는 관찰가능한(Observable) 데이터 홀더 클래스이다. 일반적인 관찰가능함과는 다르게, LivaData는 Activity, Fragment, Service 같은 앱 컴포넌트의 생명주기를 인식하고, 그대로 따르도록 구현되어 있다. 이는 LiveData가 현재 활성화된 생명주기에 있는 앱 컴포넌트의 옵저버(Observer)만 업데이트하도록 보장한다. LiveData 란 LifeCycle을 알고 있는 DataType 이라고 생각하면 될 것 같다. 낄낄빠빠로 필요할때 변경하고 필요하지 않을때 변경하지 않는다. LiveData는 Observer 패턴이다 즉 변경이 일어났을때 콜백으로 받아 처리할 수 있다 이렇게 데이터의 변경이 될때마다 콜백을 실행하는데 LifeCycle을 알기때문에 필요하지 .. 2020. 5. 25.
Kotlin Collections Mutable VS Immutable Mutable val mutableList: MutableList = mutableListOf(1,2,3,4,5) mutableList.add(6) for(i in 0 until mutableList.size){ println(mutableList.get(i)) //1, 2, 3, 4, 5, 6 } Immutable val immutableList: List = listOf(1,2,3,4,5) immutableList.add(6) // Error immutableList.plus(6) // Ok for(i in 0 until immutableList.size){ println(immutableList.get(i)) //1, 2, 3, 4, 5 } Kotlin은 함수형.. 2020. 4. 19.
Kotlin StandardLib let with apply run also takelf, takenless use prepeat Standard data class Person(var name: String = "junhyeok", var age: Int = 18) val person = Person() let data class Person(var name: String = "junhyeok", var age: Int = 18) val person = Person() inline fun T.let(block: (T) -> R) : R = block(this) -------------------------------------- val name = person.let { it.name } println(name) // junhyeok .. 2020. 4. 17.