Android(98)
-
Android UI 관리하기 | 하드코딩 된 string을 모두 resource 파일로 옮기기
🌟 들어가기 전요즘 같은 국제적인 시대에 앱에서 다국어 처리는 매우 중요하다.strings.xml 리소스 파일을 통해 다들 다국어를 지원하고 있을 것이다. 하지만 개발을 하다보면 “나중에 해야지~” 하고 우선 큰 따옴표로 하드코딩 텍스트를 박아놓고 까먹은 경우가 있지 않을까?아니면 내가 신규로 맡은 앱에서 이전 개발자가 귀찮다는 이유로 리소스 관리를 하지 않은 경우도 있지 않을까? 그렇다면 나는 어떻게 하드코딩 된 string을 한번에 찾아낼 수 있을까? 🔍 세부 내용첫번째 방법. 전체 검색을 활용하자우리에겐 Ctrl+Shift+F 라는 전체 검색 기능이 존재한다. 하지만 단순 검색이 아니다.검색을 할 때도 정규표현식을 이용하여 검색하면 더 쉽게 검색할 수 있다.“.*” 라는 정규 표현식을 사용하면 ..
2025.02.04 -
Android에서 OkHttp 통신 시 Memory를 최적화 하기 위한 체크 포인트
🌟 들어가기 전최근 회사에서 관리하는 앱이 OOM 이슈가 자꾸 일어난다.RxJava 배압 이슈인가 하고 확인해봤더니 그 원인은 아니었다. Firebase의 Crashlytics를 뜯어본 결과 OutOfMemoryError는 okhttp 통신 시 발생하였고,이 부분에서 메모리 누출이 의심되었다. 그렇다면 OkHttp 통신할 때 Memory를 최적화하기 위한 체크 포인트는 무엇이 있을까? 🔍 세부 내용1. ConnectionPool 사용 추가연결 관리를 최적화하기 위해 명시적으로 ConnectionPool을 추가하면, OkHttp에서 연결을 재사용하여 새로운 연결을 생성하거나 닫는 작업을 줄여준다.// ConnectionPool 설정 추가ConnectionPool connectionPool = new C..
2025.01.21 -
Android에서 푸시 알림이 오지 않는 경우 체크할 사항
🌟 들어가기 전회사 프로젝트에서 이슈가 발생했다.무음 모드에서 푸시 알림이 안온다는 것 ㅠㅠ무음모드라고 푸시 알림을 통제할 수 있는게 아닌데? 회장님 지인 폰에서 발생한 이슈라서 직접 확인도 불가하지만 삐뽀삐뽀- 긴급 상황이었다.그래서 그 외에 푸시 알림이 누락되는 경우가 어떤게 있는지 체크해보았다. 🔍 세부 내용1. 방해금지모드 여부방해금지 모드인 경우에는 푸시 알림 표시가 제한될 수 있습니다.2. Android Doze 모드Android 6.0부터는 기기가 사용되지 않는 동안 앱 활동과 네트워크 작업을 제어하는 Doze(절전) 모드가 생겼습니다. 2-1) Doze 모드가 작동하는 조건화면이 꺼져 있음.기기가 충전 중이지 않음.사용자가 기기를 움직이지 않음(센서 데이터를 통해 감지).네트워크와 작업..
2025.01.21 -
Android Studio Compose에서 Color 미리보기 (게터 아이콘)
🌟 들어가기 전안드로이드 프로젝트를 구현하면서 Color 값 세팅은 필수적이다.그런데 게터 아이콘(왼쪽 여백)으로 Color 값을 미리보기 할 수 없다면일일히 값을 검색해서 세팅해야 하는 수고로움이 추가된다. Android Studio에서 Compose의 Color 값을 미리보기 할 수 있는 방법이 있을까? 🔍 세부 내용Compose Color Preview Plugin미리보기를 할 수 있는 방법은 IntelliJ에서 프리뷰 플러그인을 다운 받는 것이다. 1. File > Settings > Plugins 진입 2. Compose Color Preview 검색 후 설치 3. 게터 이미지로 Color Preview 확인기존에는 이렇게 왼쪽에 아무 것도 볼 수 없었다면,플러그인을 설치한 이후에는 게터 아..
2025.01.17 -
Android 앱 성능 최적화: 메모리 누수 해결하기
🌟 들어가기 전안드로이드 개발을 하면서 어쩌면 기본적이지만 가장 신경을 못쓰는 부분이 메모리이다.작은 앱 같은 경우는 메모리가 크게 쌓일 일이 없어 신경을 쓰지 않아도 크래시가 발생하지 않지만,채팅 앱과 같이 앱의 사이즈가 크고 데이터가 많은 경우에는 메모리 관리에 주의해야 한다. 내가 관리하는 앱에서도 계속 OutOfMemoryError 이슈가 발생하고 있고,오류를 수정하면서 메모리 관리의 중요성을 알게 되었다. 그 중 OOM 이슈가 가장 크게 발생하는 원인, 메모리 누수를 해결해보자. 🔍 세부 내용메모리 누수란?메모리 누수(memory leak)는 더 이상 사용되지 않는 객체가 GC(Garbage Collector)에 의해 해제되지 않고 메모리를 계속 차지하고 있는 상태이다.이는 앱 성능 저하와..
2025.01.15 -
RxJava 배압(Backpressure) 이슈와 Flowable
🌟 들어가기 전안드로이드 개발자라면 누구나 익숙한 라이브러리인 RxJava.RxJava는 비동기 데이터 처리와 반응형 프로그래밍을 위한 Java 라이브러리다.(참고 링크 👉 https://anovice-dp.tistory.com/179) 데이터를 통신하는 과정에서 앱이 멈추지 않고 자연스럽게 흘러가며, UI가 변경되도록 도와준다.이렇게 유용한 RxJava를 사용할 때 주의할 점 있다. 바로 배압 이슈.Backpressure라고도 한다.🔍 세부 내용1. 배압이란?데이터를 생산하는 속도와 데이터를 소비하는 속도가 불균형할 때 발생하는 문제이다.생산자가 데이터를 너무 빨리 발행하고, 구독자가 이를 처리하지 못하면 데이터가 계속 누적되어 OOM 이슈가 발생한다.2. Flowable로 관리하기Flowable..
2025.01.13