SQLDelight는 DB를 다루는 라이브러리면서 ROOM과는 반대로 작동한다. ROOM은 DB를 다루는 클래스를 만들면, 여기서 안전한 SQL Query를 만들어 준다면, SQLDelight는 SQLQuery를 작성하면, 이로부터 typesafe하고 안전하게 사용가능한 Kotlin API를 생성해준다. 뭐가 더 좋은지는 선택에 달려있는데, SQLDelight가 순수하게 Kotlin베이스라는 점에서 KMP(Kotlin Multi-Platform)개발에서 주로 사용되는 것으로 보인다. 안드로이드에서 사용하기 위해선 우선 플러그인이 필요하다. 버전 카탈로그를 사용하는 기준으로 libs.versions.toml 에…
[글쓴이:] batmask
Android Studio에서 vim 사용하기
vim과 visual editor가 서로 다른 선택지였을 때, 나는 vim의 필요성을 느끼지 못했다. visual editor가 편했으니까. 그런데, 최근에 visual studio를 쓰면서 ‘vim의 간단한 기능들을 쓰면 편할 텐데…’라는 생각이 들었고, 찾아보니 vim처럼 사용할 수 있는 플러그인이 존재했다. 이미지에 보이듯이 JetBrains에서 만든 IdeaVim이다. 이를 설치하면 vim처럼 편집이 가능하며, vim 설정에 가서 단축키를 IDE의 기능을 쓸지, Vim에서 정의된 기능을…
Kotlin 에 익숙해지기 : 낯선 문법들 정리 #4
codepro 때문에 포스팅을 나눠서 계속 짤라먹어야 하는게 짜증나네. delegation : https://kotlinlang.org/docs/delegation.htmlhttps://kotlinlang.org/docs/delegated-properties.html 위임(delegation) 디자인 패턴( https://en.wikipedia.org/wiki/Delegation_pattern )은 한 클래스의 멤버 구현을 직접 하지 않고, 다른 클래스의 멤버구현을 이용하는 것이다. 다시말하면, 다른 클래스에게 위임하는 것이다. 코틀린은 이를 언어 수준에서 직접적으로 지원한다. 바로 ‘by’키워드가 그것이다. 위 코드에서 Window 클래스는 ClosedShape 인터페이스의 구현을 bounds에게 위임하고 있다. 클래스 단위가 아니라…
Kotlin 에 익숙해지기 : 낯선 문법들 정리 #3
람다 표현식 : https://kotlinlang.org/docs/lambdas.html 코틀린에서 함수는 first-class 이다. 이 의미는 함수도 객체처럼 변수에 저장도하고, 인자로 넘기고, 리턴값으로 돌려줄 수도 있다는 얘기. 이와같이 다루기위해 함수 타입의 정의가 필요한데 다음과 같이 한다. 람다 표현식(Lambda expression)은 표현식이면서 하나의 함수로 syntax예제는 다음과 같다. 람다 표현식은 함수와 똑같이 중괄호로 묶인다. 파라미터를 나열하는 것으로 시작하여 화살표 ‘->’ 를 쓰고 표현식 바디부분을…
Kotlin 에 익숙해지기 : 낯선 문법들 정리 #2
Destructuring : https://kotlinlang.org/docs/destructuring-declarations.html 코틀린은 클래스의 속성값을 하나씩 받아오지 않고, 한번에 여러 변수에 받아오는 방법을 제공한다. 이를 destructuring이라고 한다. 예를들면 다음과 같이 사용한다. 위 코드는 person에 있는 값을 name과 age 변수에 받아오고 있다. 이게 가능한 이유는 위에 풀어쓴 내용처럼 component1(), component2()로 해석되기 때문이다. component1, component2 등의 함수는 계속 3, 4 등으로 이어질 수 있는데, 이를 componentN()이라고…