반응형 AndroidX DataStore 1.1.1부터 1.1.7까지의 주요 변경 사항 총정리 (버전별 비교) Android 앱 개발에서 SharedPreferences의 대체제로 사용되는 Jetpack DataStore는 지속적인 업데이트를 통해 안정성과 성능을 개선해왔습니다. 이번 글에서는 DataStore 1.1.1 → 1.1.7까지의 변경 사항을 버전별로 정리하고, 이전 버전과 비교해 어떤 점이 달라졌는지, 어떤 상황에서 업그레이드를 고려해야 하는지를 설명합니다.DataStore란?DataStore는 Jetpack에서 제공하는 비동기식 데이터 저장 솔루션입니다.SharedPreferences보다 안정적이며,Flow 기반으로 데이터 변경을 옵저빙할 수 있고,Preference DataStore와 Proto DataStore 두 가지 타입을 지원합니다.AndroidX DataStore 1.1.1 → 1.1.7.. 2025. 6. 26. EGL_emulation 이 로그 뭐에요 ? 이 로그는 왜 나오는걸까 ? 이 로그는 Android Emulator 또는 GPU 에뮬레이션 환경에서 나오는EGL (Embedded-System Graphics Library) 관련 디버그 로그입니다.구체적으로 EGL_emulation 태그로 찍히는 app_time_stats 로그는앱의 그래픽 렌더링 타이밍 정보를 표시하는 것으로,Android Emulator의 GPU 디버깅 모드에서 자동으로 출력됩니다.✅ 로그가 찍히는 이유Android Emulator에서 OpenGL ES renderer나 ANGLE을 사용하는 경우, EGL 드라이버가 내부적으로 프레임 렌더링 시간 통계를 주기적으로 로그로 출력합니다.로그 레벨은 DEBUG이고, EGL_emulation 모듈에서 자동으로 발생합니다.개발자 입장에서 제.. 2025. 6. 5. Jetpack Navigation Deeplink에서 @Serializable을 사용하는 이유 1. 개요Jetpack Navigation을 사용하여 Deeplink로 데이터를 전달할 때 @Serializable을 사용해야 하는 이유를 설명합니다. 많은 개발자들이 기존에 사용하던 @Parcelize를 활용하려 하지만, Navigation Compose 환경에서는 지원되지 않습니다.이 글에서는 @Serializable과 @Parcelize의 차이를 비교하고, Navigation Compose에서 Deeplink를 사용할 때 올바른 데이터 직렬화 방법을 소개합니다.2. @Serializable vs @Parcelize✅ @Serializable이 필요한 이유Navigation Compose는 Bundle이 아닌 JSON 기반 직렬화 사용Jetpack Navigation Compose는 데이터를 Bund.. 2025. 4. 2. Jetpack Compose 키보드 올라올 때 뷰 올리기 (IME Padding 적용 방법) 1. 개요안드로이드 Jetpack Compose에서 키보드(IME)가 올라올 때 특정 뷰를 자동으로 올려 UI가 가려지지 않도록 하는 방법을 소개합니다. Compose의 WindowInsets 또는 Accompanist 라이브러리를 활용하여 키보드가 화면을 가리지 않도록 처리할 수 있습니다.2. 기본적인 해결 방법 (WindowInsets 활용)Jetpack Compose에서는 WindowInsets.ime을 사용하여 키보드 높이를 가져오고, 이를 padding()으로 적용하여 UI를 자동으로 이동시킬 수 있습니다.📌 코드 예제@Composablefun KeyboardAwareScreen() { val insets = WindowInsets.ime val imeHeight by remembe.. 2025. 2. 25. 🚀 displayMetrics 없이 변환하면 어떻게 될까? 📌 displayMetrics 없이 변환하면 생기는 문제점안드로이드에서 context.resources.displayMetrics를 사용하지 않으면 픽셀(px) 값을 그대로 사용하게 됩니다.이 경우, 고해상도 디바이스에서는 UI 요소가 작아 보이고, 저해상도 디바이스에서는 지나치게 커 보이는 문제가 발생할 수 있습니다.✅ 핵심 요점:안드로이드는 디스플레이 밀도(Density)에 맞춰 UI를 자동 조정하지만, displayMetrics를 사용하지 않으면 이 기능을 활용할 수 없음px 값을 dp로 변환할 때 밀도 정보를 고려하지 않으면 기기마다 UI 크기가 다르게 보임📌 displayMetrics를 사용해야 하는 이유안드로이드 UI는 밀도 독립적 단위(dp, dip) 를 사용하여 화면 크기에 관계없이 일.. 2025. 2. 21. 📌 AndroidView란? Jetpack Compose에서 기존 Android View 사용하기! 🔥 AndroidView란 무엇인가요?AndroidView는 Jetpack Compose에서 기존의 Android 뷰(UI 컴포넌트)를 사용할 수 있도록 해주는 기능입니다. 예를 들어, WebView, MapView, VideoView 등 기존의 XML 기반 View를 Jetpack Compose 환경에서 활용할 수 있습니다.✅ AndroidView 주요 기능기존 Android View를 Compose 내부에서 활용 가능 🏗️View의 속성 및 이벤트를 조작할 수 있음 🔄기존 View 기반 라이브러리와의 호환성을 높여줌 ✅🎯 AndroidView 기본 사용법import android.content.Contextimport android.widget.TextViewimport androidx.com.. 2025. 2. 19. 이전 1 2 3 다음 반응형