Kotlin

Language/kotlin

[Kotlin] Enum의 새로운 values Function 등장, entries

Enum은 클래스 내에 상수들을 열거해 관리하는 문법으로, 각 상수들은 객체처럼 property와 function을 가질 수 있는 특징이 있습니다. Stable replacement of the enum class values functionEnum 클래스의 열거된 상수들을 연속적으로 접근하고 싶을 때 values 함수를 자주 사용했었는데요. 그러다 최근 Kotlin 1.9.0 버전으로 업그레이드를 하니 values 대신 entries 속성을 사용하길 권장합니다. Enum의 entries는 kotlin 1.8.20에서 Beta 기능으로 처음 등장했고 kotlin 1.9.0 버전에서 정식으로 Stable 되었습니다. entries 속성도 values와 동일하게 열거된 상수들을 연속적으로 접근할 수 있습니다..

Language/kotlin

[Kotlin] 데이터 표현을 위한 Data Object

Kotlin 1.9.0 버전으로 올리면 Selad Class 자식으로 object 대신 data object를 사용하라고 권장합니다. 기존 object와 차이점은 무엇일까요? 어떤 장점이 있는 걸까요? 밑줄까지 치면서 권장하면서 말이에요 Stable data objects for symmetry with data classes https://kotlinlang.org/docs/whatsnew19.html#support-for-secondary-constructors-with-bodies-in-inline-value- classes What's new in Kotlin 1.9.0 | Kotlin kotlinlang.org data object는 1.9.0 버전부터 정식 출시(Stable)된 데이터 홀더 객..

Android/Compose

[Android] Compose Text 양끝으로 정렬하는 여러 방법

안녕하세요 점냥입니다:) Compose의 Text 함수는 텍스트 UI를 구현하는 함수입니다. Compose는 여러 속성을 지정하기 위해 Modifier 객체를 제공해주고 있는데 android:gravity로 지정했던 텍스트 내부 정렬 기능이 없더라고요. 공식문서에도 관련 내용이 없어서 찾아보며 공부한 내용을 정리했습니다. 구현하고자 하는 레이아웃 이번 포스팅에서 구현할 레이아웃은 사진처럼 Text가 양 끝에 정렬된 레이아웃입니다. 기본적으로 제공해주는 Compose 레이아웃 중 순서대로 가로로 정렬되는 Row 레이아웃을 사용하겠습니다. Compose용으로 ConstraintLayout 라이브러리를 제공해주지만 아직 알파버전이기 때문에 제외했습니다. Row 레이아웃 정렬하는 방법 Row 레이아웃의 속성 중..

Android/Error

[Android] Kotlin runBlockingTest 오류

안녕하세요 점냥입니다:) Kotlin으로 Android 프로젝트를 진행하면서 발생한 문제가 있고 해결 방법에 대해 말씀드리려고 합니다. 문제 상황 당시 Coroutine + Room 작동이 올바른지 테스트를 하려고 했고, Dao에 정의된 모든 함수들은 suspend로 정의되어 있기 때문에 코루틴 스코프가 필요했습니다. @Test @Throws(Exception::class) fun writeHistoryAndReadInList() = runBlockingTest { val history = History(searchWord = "test") historyDao.insertHistory(history) val findHistory = historyDao.findHistoryByWord("test") ass..

Android/Common

[Android] Drawable color 속성을 코드로 변경하기

이제까지 색상별로 Drawable를 생성했었는 데 너무 비효율적이더라구요 코드상으로 color를 변경할 수 있습니다. 코드로 Drawable 속성 변경하기 val drawable : Drawable = imageview.drawable val color = ContextCompat.getColor(mContext,R.color.colorToSet) if (drawable is ShapeDrawable) { drawable.paint.color = color } else if (drawable is GradientDrawable) { drawable.setColor(color) }

Language/kotlin

[Kotlin] Singleton

java와는 다르게 kotlin에서 singleton은 아주 간편하게 구현할 수 있다. java의 Singleton Object 기본 사용 object A var a : A = A kotlin의 object 키워드는 Singleton을 보장해준다. 한 줄이여서 너무 간편하다.. 하지만 object는 생성자를 지원하지 않기 때문에 만약 Singleton을 생성할 때 매개변수가 필요하다면 사용할 수 없다. companion object로 구현 class A { companion object { @Volatile private var instance: Singleton? = null @JvmStatic fun getInstance(context : Context): A = instance ?: synchron..

Language/kotlin

[Kotlin] Kotlin을 왜 배워야 할까요?

안녕하세요. 점냥입니다 :) 여러분들은 Kotlin 언어를 알고 있나요? 열심히 Android 공부를 하고 있는 여러분이라면 이미 알고 있겠죠 ㅎㅎㅎ Kotlin은 Google I/O 17년도에서 Android 공식 언어로 지정되었습니다!! 아직 Kotlin을 사용하지 않는 다면 서두르세요. 어느새 Android Develop 사이트 전반적인 코드 샘플들과 공식 유투브에서 Kotlin 언어를 기본으로 사용중인 것을 확인할 수 있습니다. 이 포스팅을 읽고 나서 Kotlin 언어에 대한 흥미가 생기셨으면 좋겠습니다. Kotlin 배경 Kotlin 언어가 나오기 전 Android 플랫폼에서는 C++ 언어도 쓰이긴 했지만, 대다수의 개발자들은 Java 언어를 사용해서 개발했습니다. Java 언어는 JVM에서 동..

점냥
'Kotlin' 태그의 글 목록