1. 안드로이드 리사이클러뷰와 그리드 레이아웃 매니저를 이용한 해상도별 item 그리기 프로젝트를 진행하며 마주친 문제인데, 리사이클러 뷰 에서 여러 종류의 아이템(헤더, 아이템카드, 푸터)을 뿌려주고 있는 상황이며, 가이드로 나온 디자인은 특정 해상도에서 아이템 뷰를 다르게 보여주기를 원하고 있었습니다. 아래는 디자인 가이드 예시 입니다. 리사이클러 내부에 들어가는 아이템이 한 가지 종류가 아니라 위 디자인 가이드를 보시면 알겠지만 최 상단에는 타이틀 헤더(Header)가 최 하단에는 푸터(Footer)가 붙어있는 상황입니다. 기본적으로 사용하고 있었던 LinearLayoutManager 를 걷어내고 GridLayoutManager 를 사용해야 함은 얼추 알고는 있었는데, 아이템 타입이 여러개 일 때는..
First-party tooling 🧐 Exploring Android KTX Android KTX는 Android 프레임워크 및 Jetpack을 위한 다양한 확장 세트입니다. 그는 Android KTX 확장 자체가 Jetpack의 일부이며 간단한 Gradle 종속성으로 프로젝트에 추가할 수 있습니다. Android KTX에서 제공하는 기능은 확장 기능 및 고차 기능과 같은 기능을 활용하여 Android API를 보다 Kotlin 관용적으로 만드는 것을 목표로 합니다. 종속성을 보다 가볍게 만들기 위해 Android KTX는 제공하는 기능에 따라 여러 개의 작은 종속성으로 나뉩니다. 그 중 일부는 다음과 같습니다. Core KTX Fragment KTX SQLite KTX ViewModel KTX Nav..
Better companion companion object 는 바깥 클래스(enclsosing class) 에서 메서드나 프로퍼티를 접근할 수 있게하는 효율적인 방법입니다. 약간 Java 의 Static 느낌이라고 할 수도 있습니다. 하지만, companion object 를 자바에서 참조할 떄는 살짝 복잡할 수 있습니다. 그럼 어떻게 효율적으로 사용할 수 있는지 알아봅시다. 어떻게 companion object 가 동작할까 코틀린 클래스에 컴패니언 객체가 선언되면 컴파일러는 컴파일 때 명명된 내부 클래스를 생성하게 됩니다. 아래 코드는 빈 컴패니언 객체를 사용했습니다. class Widget { companion object { } } 앞의 코드에 의해 Java 코드가 컴파일러에 의해 생성되면 아래와..