본문 바로가기

전체 글37

[Kotlin Android] Scope Function 이번 포스팅은 Kotlin의 Scope Function에 대한 개념을 간단하게 알아보고, Android에서 Scope Function을 사용하는 패턴에 대해 알아보겠습니다. 개념 이름을 사용하지 않고도 객체에 액세스할 수 있는 임시 스코프 생성 함수. 코드를 더 간결하고 가독성있게 만들기 위해 존재. inline function으로 런타임 오버헤드를 줄일 수 있음. 종류 Function Object reference Return value Is extension function let it Lambda result Yes run this Lambda result Yes run - Lambda result No: called without the context object with this Lambda r.. 2024. 3. 26.
[Kotlin] 지연 초기화(lateinit vs lazy) Kotlin에서는 지연 초기화 방법이 두 가지가 있습니다. 언제 써야할지 헷갈리는 두 가지의 차이점에 대해 정리해봤습니다. 필요성 지연 초기화는 NullSafe를 중시하는 코틀린에서 중요한 개념입니다. 변수를 Nullable로 설정하여 Null 값을 저장할 수 있지만, Nullable을 자주 사용하는 것은 권고하지 않습니다(그리고 변수를 사용할 때마다 Nullable 타입을 작성해주어야해서 코드가 더러워집니다.). 그래서 최대한 Nullable 타입을 만들지 않고 변수를 사용해야 하는 타이밍에 초기화하기 위해 지연 초기화 방법이 고안되었습니다. lateinit > Computation 시기 별도의 context나 초기화 작업이 있을 때 -> 이게 없으면 UninitializedPropertyAccessE.. 2024. 3. 20.
[Kotlin Android] View 객체 가져오기(3) - DataBinding(구현) 이번 포스팅은 이전 포스팅에 이어서 실제로 DataBinding을 사용하는 방법에 대해서 다루어보려고 합니다. 개념에 대해 보고 싶으신 분은 이전 포스팅을 참고해주세요. build.gradle android { buildFeature { dataBinding true } } Layout Data Binding을 사용할 때는 전체 레이아웃과 태그를 태그로 감싸주어야 합니다. 여기서 태그는 레이아웃 변수를 설정하는 태그입니다. Data Binding은 레이아웃에서 사용하는 변수를 별도로 설정할 수 있습니다. ... Class file > 액티비티 class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBindin.. 2024. 3. 12.
[Kotlin Android] View 객체 가져오기(3) - DataBinding 지난 ViewBinding 포스팅에 이어서 DataBinding에 대해 다루어 볼까 합니다. 특히 DataBinding은 MVVM 패턴을 구현하는 데에 많이 사용했으나 Maintanence Mode로 관리되고 있는 라이브러리가 되었고, 이로 인해 DataBinding 사용을 지양해야 하는 이유를 포스팅 해보려고 합니다. ViewBinding vs DataBinding 기본적으로 DataBinding은 ViewBinding의 역할을 할 수 있다. 속도의 차이 (ViewBinding이 더 빠르다.) DataBinding은 태그를 사용하여 만든 레이아웃을 처리하고, TAG를 삽입한다. ViewBinding은 단방향 바인딩을 지원한다. -> DataBinding은 양방향 바인딩을 지원한다. 결론 DataBind.. 2024. 3. 12.