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

문제 상황온보딩 화면에서 기능 소개 탭을 스크롤할 때 프레임 드랍이 발생하는 문제가 있다.이 글에서는 Macrobenchmark를 활용하여 프레임 성능을 측정하고, 성능 문제를 해결하는 연습을 해 보겠다.Macrobenchmark앱의 성능을 측정하는 행위를 벤치마킹이라고 한다. 정기적으로 벤치마크를 수행하면 앱의 성능 문제를 분석할 수 있고, 업데이트로 인해 앱의 성능이 하락했는지 확인할 수 있다. Android에서는 Macrobenchmark와 Microbenchmark 두 가지의 벤치마킹 라이브러리를 제공한다. Macrobenchmark는 앱 시작 시간이나 UI 상호작용, 애니메이션 등 큼직한 사용자 경험을 측정한다. 실제로 앱을 사용하는 것처럼 앱을 조작하며 측정할 수 있다. Microbenc..
안드로이드 앱에서는 UI = activity라고 봐도 될 정도로 activity의 비중이 크다. 그래서 activity가 실제 기기에서 어떻게 동작하는지 잘 테스트해야 한다.전화가 왔을 때처럼 다른 앱이 activity를 interrupt할 때시스템이 activity를 destroy하고 다시 만들 때사용자가 activity를 PIP나 멀티 윈도우에서 사용할 때등의 다양한 경우에서 activity가 생명주기 이벤트에 잘 대응하는지 확인해야 한다.Activity state 설정Activity를 테스트할 때에는 activity의 state를 설정하는 것이 중요하다. 테스트의 given-when-then 패턴에서 "given" 부분은 AndroidX Test 라이브러리의 ``ActivityScenario`` 인..
사용자 이벤트나 시스템 이벤트에 의해 ``Activity``의 state가 바뀔 수 있다. 이번 글에서는 state가 바뀌는 대표적인 상황을 알아보고, state 변화에 대응하는 방법을 공부해 보자.Configuration changeConfiguration change를 일으키는 이벤트는 매우 많다. 대표적으로 화면 방향을 바꾸는 경우가 있고, 그 외에 언어나 입력 장치를 바꾸는 경우가 있다. Configuration change가 발생하면 activity는 destroy된 후 다시 만들어진다. Destroy 과정에서는 다음 콜백이 실행된다.``onPause()````onStop()````onDestroy()``새 activity 인스턴스가 만들어질 때에는 다음 콜백이 실행된다.``onCreate()`..
Failed to upload application(s): failed to upload app bundle, error: googleapi: Error 403: You cannot upload a test-only APK or Android App Bundle., forbidden여러 원인이 있을 수 있지만, 나는 ``compileSdkPreview`` 버전을 현재 프리뷰 상태인 ``VanillaIceCream``(Android 15 프리뷰)로 설정해서 오류가 발생했다. Google Play는 프리뷰 버전으로 compile한 앱을 거부한다. ``compileSdkPreview = "VanillaIceCream`` 대신 ``compileSdk = 34``를 사용하고, ``VanillaIceCream`` ..

Compose API 중 ``derivedStateOf``라는 API가 있다. 이름만 보면 state로부터 다른 state를 만드는 함수인 것처럼 보인다. 왜냐면 공식 문서에도 그렇게 적혀있기 때문이다.derivedStateOf: convert one or multiple state objects into another state실제 의미그러나 실제로는 output을 줄이는 최적화 API에 가깝다. Android developers 아티클의 예시를 통해 이해해 보자. 다음과 같은 로그인 UI가 있다. 서비스 정책적으로 username은 알파벳으로만 이루어질 수 있다고 하자. ``username``을 입력할 때 ``submitEnabled``의 변화는 다음과 같다.여기까진 문제가 없다. 그런데 ``user..