다수의 코드에서 Enum 역할을 하는 곳에 Sealed class를 사용하는걸 보게 됐고, 한 번 정리하고 넘어갈 필요성을 느꼈다. 간단하게 얘기하자면, Sealed class는 enum class처럼 동일하게 사용가능하면서 보다 유연하고 확장성을 가진다. Enum class 먼저 간단히 Enum class를 살펴보자. enum은 같은 카테고리의 상수들을 나열한 것이다. Kotlin 공식사이트의 예제를 가져오면 다음과 같이 사용한다. 기존 언어들에서도 사용하는 가장 간단한 형태이다….
[글쓴이:] batmask
Kotlin: inline 정리
Inline 코틀린에서 higher-order function에 사용되는 lambda 표현식은 새로운 함수객체를 생성하게 된다. 일상적으로 사용되는 lambda 표현식이 매우 간단한 형태임을 생각하면, 매번 사용시 객체를 생성하고 메모리를 할당하는게 상당한 오버헤드임을 알 수 있다. 이러한 오버헤드를 없애기 위해, 함수객체를 생성하지 않고 함수안의 코드를 직접 넣어주도록 하는 키워드가 ‘inline’이다. 간단한 코드를 가지고 확인해보자. lambda 함수를 인자로 갖는 간단한 higher-order function을…
Android: “No type arguments expected for …”
Android 개발중에 “No type arguments expected for …” 란 에러메세지를 만난다면 아마도 다른 패키지를 import하고 있을 것이다. 예를들어 나같은 경우, RecyclerView에 ListAdapter를 사용하는데 위 에러가 떴고, 조금 헤맨후에 다음이 잘못 됐음을 알았다. RecyclerView의 경우, gerneric 인자 개수가 다르게 사용된다. 올바른 import는 다음과 같다. 이런 간단한 기록에 블로그 포스팅을 해야하나 살짝 고민했는데, 삽질의 기록은 여기 남기는게…
DB relationship with Room
앞서 DB relationship 에 대해 SQLite로 알아보았다. one to one, one to many, many to many relationship에 대해선 이전글을 참고하고, 동일한 내용을 Room에서 구현해보자. Room 적용시 꼭 직접 테스트 하길 바란다. 처음 사용해보면서 SQL을 사용하는 것보다 오히려 혼란스러운 점도 많았다. 예를들어, api level 24 인 android 7.0 에뮬레이터에선 테이블 생성이 안된건지 그런 테이블이 없다며 오류를…
DB relationship with SQLite
Room에대해 정리하다가, DB의 실사용시 만나게 되는 one to one, one to many, many to many relationship을 어떻게 다루는지 별도로 정리하려고 이 글을 쓴다. SQL문과 Room을 비교해보면 이해가 쉽고 빠를거 같아서 그렇게 정리하려다가 android developer 블로그에 이미 정리된걸 발견했다. 아마도 여기서 크게 벗어나지 않을 것인데, 내용상 SQLite에서 사용하는 것만 먼저 정리해 올린다. Room을 이용하는건 별도 포스팅으로…