일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Codeforces
- 암호학
- 백준
- activity
- Hilt
- Gradle
- pandas
- Python
- Coroutines
- textfield
- ProGuard
- 프로그래머스
- relay
- 코드포스
- Rxjava
- 쿠링
- TEST
- android
- GitHub
- MiTweet
- androidStudio
- livedata
- 코루틴
- boj
- Kotlin
- Compose
- architecture
- MyVoca
- Coroutine
- AWS
- Today
- Total
목록Primary (163)
이동식 저장소
2년 전 글에서 sealed class와 enum class에 대해 간략하게 다룬 적이 있다. [Kotlin] sealed class vs. enum classKotlin을 처음 배울 때는 ``enum class``와 ``sealed class``를 혼동하곤 했다. enum을 구현할 떄 ``enum class`` 대신 ``sealed class``를 써도 되지 않나? 결론 ``sealed class``를 써도 되지만, 바람직한 사용법은 아니다thinking-face.tistory.com위 글에서는 enumerated value를 구현하기 위해 ``sealed class``를 사용할 필요가 없다는 결론을 내렸다. 사실 당연하다. ``enum class``가 멀쩡히 존재하기 때문이다. 그러나 ``enum ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/qlDQO/btsHZy8kl8K/7kx4Opkx8iazfZHuor5d2k/img.png)
Android Studio Koala 버전이 업데이트되었다. Google I/O에서 언급됐던 대로, Android Studio의 업데이트는 앞으로 platform/feature 두 번으로 구성된다. 즉 platform 업데이트, feature 업데이트가 Koala 버전으로 묶이는 것.이번 업데이트는 platform update라 그런지, IntelliJ 플랫폼 버전업을 제외하면 내용이 별로 없다. 그래도 한번 정리해 보자.Gemini API 템플릿 추가Gemini API를 활용하는 프로젝트 템플릿이 추가되었다. 템플릿 관련 내용은 여기에서 자세히 확인할 수 있다.2개 이상의 기기를 동시에 볼 수 있음Running Devices 탭에서 2개 이상의 기기를 동시에 볼 수 있다! (side-by-side)참..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/IZ3o9/btsHTmshm7Z/wkj3vA4cTIWTeOhUsDmPo0/img.png)
kapt란?Java annotation processor를 Kotlin에서 사용할 수 있게 해주는 도구이다. Dagger나 Data Binding 등을 Kotlin 프로젝트에서도 사용할 수 있다는 것. 안드로이드에서는 대표적으로 Hilt, Room 등의 라이브러리와 함께 사용한다. 내부적으로는 annotation 처리가 필요한 클래스마다 Java stub을 만드는 방식으로 구현되어 있다. 그런데 이 과정에서 Kotlin 코드를 Java로 변환하고, 변환된 코드에 Java annotation processor를 적용하기 때문에, 코드를 거의 두 번 컴파일하는 셈이다. 당연히 빌드 속도에는 좋지 않다. kapt의 단점을 해결하기 위해 KSP(Kotlin Symbol Processing)가 개발되었다. KSP..
Kotlin K2 컴파일러가 드디어 stable 출시되었다! 주요 변경점들을 하나씩 알아보자.Kotlin 2.0.0 변경점그 외의 변경점 중 재밌어 보이는 것들을 정리해 보았다. What's new in Kotlin 2.0.0 | Kotlin kotlinlang.orgSmart cast 확대Smart cast는 비교문 등에 의해 변수가 자동으로 형변환되는 것을 말한다. 예를 들어 if 조건문에서 어떤 변수가 null이 아니라는 것을 확인했다면, if문 안에서는 해당 변수가 non-null로 간주된다. Kotlin 2.0에서는 이것이 확대되어, 컴파일러가 비교문을 통해 변수의 타입을 자동으로 추출하는 등 고급 smart cast 기능을 제공한다. class Cat { fun purr() { ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/caOoa3/btsHGQAfxoC/r17uDspB2g9qXKsoycKO8k/img.png)
Compose는 기존 view 시스템과의 상호 운용을 위해 ``AndroidView`` composable을 제공한다. Compose 네이티브 컴포넌트가 없는 WebView 등을 사용할 때 활용할 수 있다. 내부적으로는 composition 트리 안에 view 노드를 직접 만드는 방식으로 구현되어 있다. 오버로딩 1@Composable@UiComposablefun AndroidView( factory: (Context) -> T, modifier: Modifier = Modifier, update: (T) -> Unit = NoOpUpdate)``factory``는 view를 만드는 람다이다. ``factory`` 블럭은 composition 단계에서 view를 만들기 위해 단 한 ..