일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Python
- 백준
- Coroutines
- livedata
- pandas
- 암호학
- 프로그래머스
- relay
- ProGuard
- android
- Hilt
- MiTweet
- 코루틴
- Rxjava
- GitHub
- textfield
- Coroutine
- AWS
- Codeforces
- MyVoca
- Gradle
- architecture
- TEST
- androidStudio
- boj
- Kotlin
- Compose
- 코드포스
- 쿠링
- activity
- Today
- Total
목록Primary (163)
이동식 저장소
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의 너비와 같다...
해파리! 이번에도 매력적인 신기능이 많다. 하나씩 살펴보자.Android Studio에 Gemini 내장Google의 언어모델 Gemini가 Android Studio에 내장됐다! 이제 사이드바에서 Gemini와 대화할 수 있다.나는 모니터를 1대만 쓰고 있어서 Gemini나 GPT에게 뭔가를 물어보려면 창을 전환해야 했었는데, 이제 사이드바에서 Gemini에 접근할 수 있다. 직접 사용해 보면서 얼마나 편리한지 판단해볼 생각이다.Android Device Streaming 지원Android Studio에서 Firebase 원격 기기에 접근할 수 있다! 로컬 에뮬레이터 대신 균일성이 보장되는 원격 에뮬레이터에서 앱을 테스트할 수 있다. 터치, 스크롤 등 일반적인 에뮬레이터에서 할 수 있는 모든 작업을 할..
Compose에는 여러 타입의 Material ``TextField``가 선언되어 있다.하지만 머티리얼 디자인과는 다른 커스텀 ``TextField``가 필요하다면? ``BasicTextField``를 커스터마이즈하면 된다.BasicTextField``BasicTextField``는 모든 머티리얼 ``TextField``의 backbone 컴포넌트이다. 실제로 ``OutlinedTextField`` 등의 코드를 보면, 내부적으로 ``BasicTextField``를 호출하고 있다.@Composablefun OutlinedTextField( // ...) { // ... BasicTextField( // ... decorationBox = @Composable { innerTextF..