Android60 Android Compose TextField 천 단위 콤마로 표현하기 📌Util 함수 만들어주기// 천 단위 콤마 변환을 함수로 구현fun thousandSeparatorTransformation(): VisualTransformation { return VisualTransformation { text -> val originalText = text.text val formattedText = originalText.toLongOrNull()?.let { DecimalFormat("#,###").format(it) } ?: originalText val offsetMapping = object : OffsetMapping { override fun originalToTrans.. 2024. 10. 24. Android ANR / Canvas / 메모리 초과 해결방법 Canvas를 사용하다보면 ANR이슈가 종종 생기는데 이때 개선할 수 있는 방법이 있다.1. Bitmap 객체 재사용하기Bitmap은 메모리 소비가 큰 객체이므로, 반복적인 생성은 메모리 부족 문제를 일으킬 수 있다.var reusableBitmap: Bitmap? = nullfun getReusableBitmap(width: Int, height: Int): Bitmap { if (reusableBitmap == null || reusableBitmap!!.width != width || reusableBitmap!!.height != height) { reusableBitmap?.recycle() // 이전 비트맵을 해제 reusableBitmap = Bitmap.cr.. 2024. 8. 28. Android Coroutine example 코루틴 권장사항 1. 새 코루틴을 만들거나 withContext를 호출할때 Dispatchers를 하드코딩하지 마세요. -> 코드의 유연성, 테스트 용이성을 위함. 직접 하드코딩하게 되면 테스트나 리팩토링이 어려워진다. 하드코딩된 Dispatchersimport kotlinx.coroutines.*fun fetchData() { GlobalScope.launch(Dispatchers.IO) { // 일부 오래 동작하는 작업 val data = performNetworkRequest() withContext(Dispatchers.Main) { // UI 업데이트 updateUI(data) } }} 하드코딩을 .. 2024. 7. 4. Compose Box Basic Style 여러가지 Box Style@Preview(showBackground = true)@Composableprivate fun BoxSample() { Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(4.dp)) { Box( modifier = Modifier .clip(CircleShape) .background(Color.Red) .size(44.dp) ) Box( modifier = Modifier .size(44... 2024. 6. 3. RoomDatabase Hilt Error -> AppDatabase. AppDatabase_Impl does not exist at androidx.room.Room.getGeneratedImplementation(Room.kt:58) .. AppDatabase. AppDatabase_Impl does not exist at androidx.room.Room.getGeneratedImplementation(Room.kt:58) at androidx.room.RoomDatabase$Builder.build(RoomDatabase.kt:1351) RoomDatabase를 Hilt를 사용하면서 AppDatabase_Impl를 찾을 수 없었다. 구글 검색 결과 @어노테이션 문제인거 같았고 Retrofit2는 Hilt가 정상적으로 동작하는것으로봐서 build.gradle에 차이점 찾아보기로 했다. Retrofit2는 ksp로 변경했으나 Room 라이브러리는 ksp를 사용하지 않았다. . ksp로 변경 뒤 빌드해보니 아래 코드를 추가로 작성해줘야 했다.. 2024. 4. 14. RecyclerView 하단 divider 깜빡임 | RecyclerView bottom divider blinking Finally got it! Yet another stupid mistake, it's not complicated at all, I kept thinking, why I'm having this problem only on this activity, but not my previous one, and I suddenly realized that the layout in the two activities are different, turns out I set the RecyclerView's height to wrap_content, so I suppose what happened is that, the layout told the system to wrap the content in the Recycl.. 2024. 3. 26. 이전 1 2 3 4 ··· 10 다음