리사이클러뷰 스크롤 시, ComposeView가 초기화 된다면 ViewCompositionStrategy를 변경합니다. - 원인 기본적으로 Compose는 DisposeOnDetachedFromWindowOrReleasedFromPool 전략을 사용합니다. 리사이클러뷰에서 Detach 되면서 - 해결방법 DisposeOnViewTreeLifecycleDestroyed 전략 설정 setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed) 참고 https://developer.android.com/jetpack/compose/interop/interop-apis?hl=ko#composition-strategy

TL;DR Background를 설정하여 버튼을 쉽게 커스텀할 수 있다. 이 경우에 버튼의 최소 크기 설정으로 인하여 Padding이 잘 설정되지 않는다. 원하는 만큼의 Padding을 정확히 설정해주기 위해서는 android:minWidth android:minHeight 두 개 필드의 값을 0dp로 설정하여 기본 사이즈 값을 제거해야 한다. 본론 안드로이드 앱에서 버튼은 당연하게 사용되는 아주 중요한 컴포넌트다 안드로이드 버튼을 그냥 사용하는 일은 거의 없고 대부분 커스텀 된 디자인을 적용하여 사용할 것이다. 안드로이드 버튼을 커스텀하는 가장 대표적인 방식으로 Background Drawable XML 파일을 만들어 디자인을 설정하고 버튼의 Background로 설정하여 커스텀하는 방법이 있다. Ba..

유닛 테스트(unit test)는 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차다. 즉, 모든 함수와 메서드에 대한 테스트 케이스(Test case)를 작성하는 절차를 말한다. 이를 통해서 언제라도 코드 변경으로 인해 문제가 발생할 경우, 단시간 내에 이를 파악하고 바로 잡을 수 있도록 해준다. 유닛 테스트의 목적은 프로그램의 각 부분을 고립 시켜서 각각의 부분이 정확하게 동작하는지 확인하는 것이다. 즉, 프로그램을 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지 검사하고 이를 통해 문제 발생 시 정확하게 어느 부분이 잘못되었는지를 재빨리 확인할 수 있게 해 준다. 따라서 프로그램의 안정성이 높아진다. Wikipedia - Unit Test Why Unit ..
이상하다! 분명 개발할 때 앱에 딥링크를 설정하였고, 잘 열리는 것을 확인하였는데 웹 브라우저에 딥링크 URL을 입력하여 앱을 실행하려니까 실행이 안된다! 뭔가 잘못한 것이 있는 것인가... 이미 배포는 되었는데... 등골이 오싹해진다 급한대로 adb를 사용하여 딥링크를 테스트해보자... ./adb shell am start -d myApp://main 딥링크가 잘 동작한다! 음..! 브라우저에서는 왜 동작하지않는 것일까...! 결론부터 얘기하자면, 웹 브라우저에 딥링크를 바로 입력하여 앱을 실행 시킬 수 없으며, HTML 태그를 사용하여 실행시켜야한다. Web Browser에서 DeepLink로 앱 실행하기 1. 링크 설정 앱에 설정한 딥 링크는 아래와 같은 포맷으로 되어있을 것이다. :// ex) m..

최근 클라이언트팀의 안드로이드 제품에 대한 CI / CD 파이프라인을 구성하면서 우리가 만든 제품에 대한 Unit Test Code Coverage를 알 수 있도록 하자는 요구사항이 있었고, 그것을 실현시키기 위한 조사에 들어갔다. 회사의 안드로이드 프로젝트는 단일 레포지토리, 멀티 모듈 구조를 가지고 있으며, Java와 Kotlin 언어를 모두 사용하고, Gradle 빌드 툴을 사용하고 있다. 구글에 Android Project Code Coverage 측정 방법을 검색하기 시작했고, Gradle 프로젝트에 JaCoCo를 사용하면 측정할 수 있다는 정보를 얻어 회사의 안드로이드 프로젝트에 적용을 시도하였다. 여기서부터 고난과 역경의 시간이 시작되었다. 구글 검색을 통해 얻은 Gradle 프로젝트에 Ja..

위 그림과 같이 앱이나 웹사이트에 로그인할 때, '구글로 로그인' 혹은 '페이스북으로 로그인'이라는 버튼을 자주 아니 매번 목격했을 것이다. 위와 같은 기능을 통해 사용자는 복잡하고 귀찮은 계정 생성 과정을 거치지 않고 구글, 페이스북 같은 서드파티 계정을 통해 간단하게 새로운 앱이나 서비스를 사용할 수 있게 되었다. '서드파티 계정을 사용한 로그인'의 장점은 아래와 같다. 사용자 입장 1. 단일 계정으로 여러 가지 서비스 사용 가능 2. 계정, 비밀번호 파편화 없이 하나의 계정 정보만 기억하면 됨 3. 제 3서비스 간편가입 가능 앱, 웹사이트 개발자 입장 1. 복잡한 인증과정 구현 불필요 2. 그로 인한 서비스 비용 절감 3. 사용자 편의성 증대 사용자 편의성을 증대시켜줄 뿐만 아니라 서비스 비용까지 ..
- Total
- Today
- Yesterday
- 유닛테스트
- 구글
- Unit
- 유닛 테스트
- android unit test
- android custom button
- androud hilt
- 알고리즘 풀이
- ViewCompositionStrategy
- 안드로이드 유닛 테스트
- 코딩테스트
- 안드로이드 종속성 주입
- 안드로이드 커스텀 버튼
- 안드로이드 테스트
- 테스트
- Leetcode
- Android
- 알고리즘
- android compose
- AOS
- 안드로이드 컴포즈
- android test
- compose ui
- unit test
- 안드로이드 단위 테스트
- 커스텀 버튼
- button padding
- 컴포즈 초기화
- 안드로이드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |