본문 바로가기

전체 글11

[Android] XML 없이 텍스트, 버튼 배경 둥글게 만들기(XML 그만 만들자) 🧐 배경 안드로이드를 처음 접했을 때부터 텍스트, 버튼을 둥글게 만들기 위해서 수많은 XML 파일을 생성해왔다. 꽤 많은 프로젝트를 해왔지만, 코너값을 넣기 위해서 기계적으로 XML Shape를 쓰고있었다. 회사 신사업 출시를 앞두고 프로젝트 정리를 하고 있었는데, 정말 보기 싫은 정도의 shape XML들이 있었다. 사업 아이템에 많은 상태 값(status)과 다양한 뷰가 있었기에 다른 프로젝트보다 파일이 훨씬 더 많았다. 심지어 손을 많이 거쳐 간 장기 프로젝트이고, 입사하기 전까지 컨벤션이 없었기에 충격 그 자체다.🤬 개발자라면 이런 상황을 보면 바로 고치고 싶지 않겠는가🥸 친한 안드로이드 개발자들에게 수소문했지만 모두 XML Shape를 쓰고 있었다.😇 선망하는 기업 프로젝트도 이렇다고 하니 놀랍.. 2022. 4. 17.
[Android] WorkManager를 이용한 백그라운드 작업 🧐 WorkManager? 안드로이드가 버전업을 거듭하며 어느 순간부터 백그라운드 작업이 수월하지 않게되었다. 초기에는 Service를 이용해서 작업하거나 Broadcast Receiver를 통하여 프로세스를 깨우는 것 또한 쉽게 가능했다. 하지만 안드로이드 M(API 23)부터 백그라운드 작업을 위한 제약 사항들이 추가되며, 개발자들은 여러 API를 통하여 추가 코드 작성이 필요해졌다. 즉, 불가능한 것은 아니지만 까다로워졌다는 것이다. 백그라운드 작업은 여러가지 방법들로 가능하다. AlarmManager, JobScheduler, JobDispatcher(Firebase), 그리고 지금 알아볼 WorkManager. 여기서 여러가지 방법들이 존재하는 이유는 용도(목적)에 따라서 개발자들이 적절한 AP.. 2021. 7. 25.
[Android] SharedPreferences보다 안전하게 DataStore를 이용하여 데이터 저장하기 🧐 들어가며 안드로이드에서 단순한 데이터셋을 로컬에 저장하기 위해서 흔히 SharedPreferences를 사용한다. 안드로이드에 기본적으로 내장되어 있는(=Since api level 1) 것으로 필자도 자주 사용했다. 하지만 Primitive data만 저장 가능했으며, 커스텀 데이터 타입 저장을 위해 GSON을 통해 Json String으로 변환하여 저장하는 코드들이 생겨났다. 그리고 미숙한 처리에 종종 런타임 에러, ANR을 발견할 수 있었다. 이제는 Jetpack DataStore를 통해 더 안전하게 데이터를 저장할 수 있다. 알아보도록 하자. 👎 SharedPreferences 단점 SharedPreferences를 적절하게 사용하지 못했을 때 여러 단점들을 찾을 수 있다. 실제 XML 파일 .. 2021. 7. 16.
[Android] Jetpack Paging 3 라이브러리 사용하기 🧐 Paging Library 페이징 라이브러리는 로컬 데이터베이스 또는 네트워크(Remote)의 데이터를 페이지 단위로 UI에 쉽게 표현할 수 있도록 도와주는 라이브러리다. 라이브러리를 사용하지 않고 기존에 페이징을 구현하기 위해서는 RecyclerView와 같은 리스트 UI가 상단 또는 하단에 도달했는지 판단하는 코드를 작성하고, 다음 페이지를 로드(or Refresh)하는 코드를 또 작성해야만 했다. 페이징이 필요한 모든 화면에 동일한 코드를 작성해야만 했고 네트워크 오류, 스크롤 감지 이상(?)과 같은 예외 처리 코드도 상당했다. 위 문제점들을 포함한 여러 문제를 해결하기 위하여 Jetpack Paging Library가 출시되었다. 그리고 올해(2021년) 5월 Paging 3 라이브러리가 St.. 2021. 6. 26.