일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ProGuard
- 코루틴
- Coroutine
- livedata
- relay
- Hilt
- Rxjava
- MiTweet
- textfield
- Coroutines
- 코드포스
- androidStudio
- GitHub
- Kotlin
- Python
- AWS
- TEST
- Compose
- activity
- 쿠링
- 암호학
- Codeforces
- architecture
- 백준
- boj
- Gradle
- pandas
- 프로그래머스
- android
- MyVoca
- Today
- Total
목록Primary/Kotlin (39)
이동식 저장소
Kotlin Coroutines에서 Dispatcher는 코루틴이 실행되는 스레드를 결정한다. 특정한 스레드를 지정할 수도 있고, thread pool에 넘겨줄 수도 있고, 아예 정하지 않을 수도 있다. ``launch``, ``async``, ``withContext`` 등의 모든 코루틴 빌드 함수는 ``CoroutineContext`` 타입의 매개변수를 받는다. 따라서 필요하다면 dispatcher를 매개변수로 넘겨줄 수 있다. launch(Dispatchers.Default) { // do something } 이 글에서는 Kotlin에서 사용할 수 있는 dispatcher에 대해 자세히 알아보겠다. Dispatchers.Main 메인 스레드, 즉 UI 스레드를 의미하는 dispatcher이다. J..
간단한 직사각형 클래스를 정의해 보자. 직사각형은 너비, 높이, 넓이 속성을 갖는다. data class Rectangle( val width: Int, val height: Int, val area: Int, ) 끝~ ...일 리가 없지. 사실 이 구현은 매우 잘못된 구현이다. ``area``가 ``width``와 ``height``의 곱으로 주어진다는 보장이 없기 때문이다. 약간 개선해 보면, 생성자에서 ``width``와 ``height``를 입력받아 ``area``를 내부적으로 계산하게 정의할 수 있다. data class Rectangle( val width: Int, val height: Int, ) { val size: Int = width * height } ``width``와 ``heig..
3달 전에 이런 글을 쓴 적이 있다. [Kotlin] 코루틴의 실행 순서와 테스트 코드 비동기 코드는 본질적으로 어렵다. 제대로 공부하지 않은 비동기 코드는 더 어렵다. 지난 몇 일간 코루틴 ``ViewModel`` 코드를 테스트하다 아주 열불이 나서..;; 이참에 제대로 다시 공부해 보자. ``s thinking-face.tistory.com 위의 글에서 언급된 ``ViewModel`` 테스트는 여전히 해결되지 않았다. 실행할 때마다 결과가 달라지는 테스트라니.. 심지어 원격 빌드에서도 실패하는 바람에 빌드가 멈춘 적도 있다. 하지만 7월의 마지막 주말, 바로 오늘, 끈질기게 나를 물고 늘어지던 버그를 바로 오늘 해결했다. 이 글에서는 문제 상황과 문제를 풀기 위한 나의 눈물겨운 싸움을 기록하려 한다...
GitHub - Kotlin/kotlinx.collections.immutable: Immutable persistent collections for Kotlin Immutable persistent collections for Kotlin. Contribute to Kotlin/kotlinx.collections.immutable development by creating an account on GitHub. github.com ``List``에는 리스트를 수정할 수 있는 메서드가 없지만, 어떤 리스트의 타입이 ``List``라고 해서 리스트의 내용이 변경되지 않는다고 말할 수는 없다. ``MutableList``를 ``List``로 반환했을 지도 모르기 때문이다. Compose 컴파일러가 ``Lis..
Kotlin을 처음 배울 때는 ``enum class``와 ``sealed class``를 혼동하곤 했다. enum을 구현할 떄 ``enum class`` 대신 ``sealed class``를 써도 되지 않나? 결론 ``sealed class``를 써도 되지만, 바람직한 사용법은 아니다. 왜? ``enum class``가 왜 적합한지는 설명 안 해도 되겠지? 이제 ``sealed class``의 바람직한 사용 예시를 설명하려 한다. ``sealed class``는 클래스가 정의된 블럭 안에서만 상속될 수 있으며, 외부에서의 상속을 허용하지 않는다. sealed class Animal { // Animal은 이 안에서만 상속될 수 있다. class Cat: Animal class Dog: Animal } ..