일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- architecture
- TEST
- pandas
- GitHub
- ProGuard
- Hilt
- Codeforces
- Compose
- 암호학
- androidStudio
- Kotlin
- 쿠링
- MiTweet
- textfield
- boj
- livedata
- AWS
- Rxjava
- 코드포스
- 백준
- android
- MyVoca
- 코루틴
- Gradle
- relay
- Coroutines
- Coroutine
- Python
- 프로그래머스
- activity
- Today
- Total
목록Compose (31)
이동식 저장소
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 ..

지난 5월 16일, 쿠링 2.0이 배포되었다. 내가 속한 안드로이드 팀을 비롯하여 서버, iOS, 디자인, PM 등 팀원 모두가 함께 이뤄낸 값진 성과라고 할 수 있다.10개월 가까이 2.0을 작업하면서 세 번의 계절을 보냈고, 나는 어느새 졸업... 이 글에서는 내가 속한 안드로이드 팀을 중심으로, 쿠링 2.0 작업을 되돌아보고자 한다.2.0쿠링 2.0의 핵심은 디자인 업데이트이다. 그러나 당시 안드로이드 코드는 전혀 모듈화되지 않았고, :app 모듈 안에서 참조 관계가 너무 복잡해지고 있었기 때문에 안드로이드 팀은 모듈화 작업을 함께 수행하기로 결정했다.모듈화모듈화 작업은 아래 글에서 자세히 돌아보았다. MAU 세 자릿수 서비스 모듈화한 썰 푼다이전 글에서는 쿠링을 DAU 세 자릿수 서비스..
Compose UI의 성능을 최적화하기 위한 몇 가지 best practice를 알아보자.복잡한 계산은 remember하기Composable은 대단히 자주 실행될 수 있다. 극단적으로는 애니메이션의 매 프레임마다 실행될 수 있다. 따라서 composable 내부에서는 되도록 복잡한 계산을 하지 않는 것이 좋다. 부득이하게 복잡한 계산을 해야 한다면, remember를 활용하여 계산 결과를 오랫동안 기억해야 한다. remember를 사용하면 같은 값에 대해 계산을 두 번 이상 수행하지 않는다. 예를 들어, 다음과 같이 LazyColumn 내부에서 리스트를 정렬하면 안 된다.@Composablefun ContactList( contacts: List, comparator: ..

기존에는 composable의 모든 매개변수가 @Stable이어야만 skippable이었다. 그러나 이제는 unstable한 매개변수를 갖는 composable도 skippable이 될 수 있다. Compose의 성능을 대폭 개선시킬 strong skip에 대해 알아보자.Strong skip 규칙이제 모든 restartable composable은 skippable이 될 수 있다. 구체적으로는, 각 매개변수를 다음과 같이 비교한다.Unstable 매개변수는 object equality 연산자인 ===로 비교한 결과가 true일 때 (새로 추가된 규칙)Stable 매개변수는 Object.equals()로 비교한 결과가 true일 때 (기존과 같음)모든 매개변수의 비교 ..

Compose에서 블러 효과를 그리는 방법은 여러 가지 있지만, 이 글에서는 Modifier.drawBehind를 사용하는 방법을 소개한다. Modifier.drawBehind { ... }를 사용하면 Composable의 뒤에 무언가를 그릴 수 있다. 람다 내부에서는 DrawScope를 통해 Compose Canvas에 접근할 수 있다.디자인 확인쿠링에서는 CTA 버튼 위에 블러를 보여주는 경우가 있다. 주로 리스트의 내용을 자연스럽게 보여줄 때 적용한다.구현Composable 위에 하얀색과 투명으로 이루어진 사각형을 그리면 된다. 사각형의 높이는 임의로 줄 수 있으나, 여기서는 Composable 높이의 30%로 지정했다. 사각형의 너비는 물론 Composable의 너비와 같다...