본문 바로가기

전체 글

(161)
[Android] Shimmer UI 구현하기 개발을 진행하면서 UI가 그려지기 위한 API의 응답을 기다리는 시간에 Loading Indicator를 통해 UI를 그려본 적이 있을 것이다. 단순히 로딩을 돌려서 그 시간을 기다리게 만들 수 있을 뿐 아니라, Shimmer를 사용하여 조금 더 자연스럽고 세련된(?) 로딩 화면을 만들 수 있다. 필자도 지금까지는 대부분 API 응답을 기다릴 때 Loading 애니메이션을 넣어주고 로딩이 끝나면 UI가 한 번에 그려지는 형태로 개발을 진행했었는데, 이번에 Shimmer를 사용하여 UI를 미리 그려주고 API Response가 오면 화면을 갱신하는 형태로 개발을 진행하게 되었다. 따라서, 간단하게 Shimmer를 구현하는 방법과 사용할 때 주의할 점에 몇 가지에 대해 작성해두고자 한다.우선,Shimmer가..
[Android] 개발자 계정 인증하기 약 반년전, 처음으로 개발자 계정을 생성하고 앱을 배포하는 과정을 글로 작성했었다.그리고, 8월달 쯤 개발자 계정을 인증하라는 경고가 받았고 9월 말이 다 되어서야 정상적으로 개발자 계정을 인증할 수 있었다.기존에는 9월까지 인증을 했어야 했으나, 맨 처음에 제출했던 서류가 부적합하다고 판단이 나왔고 그에 따른 인증 기간 연장을 통해 10월 중순까지로 미뤘었다. 이제서야 개발자 계정 인증이 되었으므로 그 과정도 간단하게 서술해보고자 한다.필자처럼 최근에 개발자 계정을 만들었다면, 이런 경고를 확인했을 것이다. 이게 갑자기 무슨소린가? 싶겠지만,곰곰히 생각해보면 개발자 계정을 만들 당시, 언제까지 인증을 하겠다. 라는 기간을 선택했던것 같은 기억이 스쳐지나갈 것이다.개발자 개정을 만들 때 제대로 된 사용자..
[android] BottomNavigation의 구현 및 방법에 따른 차이 개발을 하다 보면 Scaffold의 bottomBar를 사용하여 BottomNavigationBar를 많이 구현하곤 한다.필자도 업무를 진행하면서 BottomNavigationBar가 필요하면 compose에서 제공해 주는 BottomNavigation 컴포넌트를 이용하여 구현을 하였는데, 최근에 해당 컴포넌트를 사용하지 않고 구현해야 하는 상황이 발생하였다. 별도로 구현을 하면서 제공해 주는 Component를 사용하지 않을 때와 사용했을 때의 구현 방법과 차이점에 대해 간단하게 알아보도록 하자.우선,BottomNavigation Component를 사용할 때의 구현 방법이다.val navController = rememberNavController()Scaffold( modifier = Modi..
[android] Lottie Animation을 적용해보자. 실무를 진행하다 보면, 로딩 화면이나 배너 화면에서 다양한 애니메이션을 경험할 수 있다.이 애니메이션들은 gif 파일을 사용하여 보여주는 경우도 있겠지만, Lottie를 사용하여 애니메이션을 보여주는 경우도 있다. 이번 글에서는 간단하게 gif와 Lottie에 대한 차이와, 사용하는 방법에 대해서 작성해보고자 한다.우선,Gif와 Lottie의 차이부터 확인해 보고 넘어가자. gif는 가능한 작은 용량의 파일로 애니메이션을 표현하기 위한 파일 형식으로, 소리 없이 재생되는 영상 파일이라고 생각하면 편하다.쉽게 인터넷에서 찾을 수 있는 움직이는 짤과 같은 것들은 gif 확장자로 저장된 파일이라고 볼 수 있다.영상 파일이라고 생각하면 편하다. 라고 언급한 이유는 다양한 것들이 있는데, 가장 간단하고 쉽게 이해..
[Android] Android Koala 적용과 Gradle 8.5.2 버전 대응하기 최근 업무를 진행하면서, 라이브러리의 버전 문제 때문에 kotlin 버전을 올려야 했다.kotlin 버전을 올리는 김에 프로젝트 환경을 전체적으로 업데이트시키자고 마음을 먹었고, 올해 초에 나와 많이 안정화된 android koala와 더불어 gradle을 올리고자 하였다. 해당 버전을 올리면서 많은 부분 수정된 것은 없지만, 그래도 버전을 올리면서 변경된 부분들에 대해 작성하고자 한다.우선, 필자는 android Giraffe를 사용하고 있었는데 해당 버전은 22년 3월에 나온 버전이었다.따라서 최신 버전으로 업데이트 하기 위해 android studio 공식 홈페이지에 방문해서 다운로드 하도록 한다. 다운로드를 한 후, mac 기준 설치 시 중복된 파일들을 물어보는 부분에 "모두 대치"를 클릭하여 최..
[Android] Android 14 (SDK 34) 버전의 Media Permission 설정하기 구글에서 이런 경고를 띄워주고 있다. 생각해 보니 필자는 저번에 버전을 올렸다가, 오류가 발생하고 업데이트가 너무 느려 버전을 다시 내려놓고 깜빡하고 있었다.그래서 그냥 배포하면 되겠거니 싶었는데, Media Permission 부분에 대해서 제대로 된 처리를 하지 않았었다는 것을 알 수 있었다. 이전 글에서는 다른 고려해야 할 것들에 대해 글을 작성했으므로,2024.04.04 - [Android/Android Version] - [Android] Android 14 (SDK 34) 버전을 targetSDK로 사용할 때 주의할 점 몇 가지 이번 글에서는 Permission에 대하여 대응한 부분에 대해 처리한 방법을 간단하게 설명하고자 한다.우선, 어떤 부분이 바뀌었는지 구글 공식 문서를 확인해 보자.ht..
[Compose] Compose 환경에서 Drag and Drop 기능 구현해보기 - LazyColumn에서의 드래깅 무려 2년 전에 기존 XML을 사용하여 UI를 그릴 때, Drag and Drop 기능을 통해 아이템들의 순서를 변경하는 기능을 구현한 적이 있다.2022.11.12 - [Android/Utility] - [Android] RecyclerView Drag and Drop 필자는 XML을 사용했을 때는 비교적 쉽게(?) 해당 기능을 구현했었다고 기억하고 있는데, Compose 환경에서는 해당 기능을 제공하거나 구현하기 더 간단하지 않을까?라는 생각을 했다. 그래서 실무에서 해당 기능을 구현해 보려고 도전해 봤는데, 존재하는 라이브러리는 코틀린 버전 문제로 사용 못하거나 스크롤 이벤트들이 정상적으로 동작하지 않거나 했고, 믿었던 GPT 마저도 정상적으로 기능을 구현해주지 못해 직접 구현해 보게 되었다. 완벽..
[Firebase] Firebase의 RemoteConfig 데이터를 사용할 때 주의할 점. 필자가 실무에서 Firebase의 RemoteConfig 데이터를 가져와서 사용하는 경우는 대부분 앱의 version을 체크하기 위해서였고, 지금 업무에서도 version 체크하는 용도로 RemoteConfig를 사용하고 있다.그리고 그 RemoteConfig에서 데이터를 가져와 사용하는 부분에서 문제가 발생하여, 필자가 입사하기 전 개발자가 짜둔 코드를 확인해 보았다.코드를 확인하다 보니 생각보다 정확히 알고 있지 않다면 문제가 발생할 수 있겠거니 싶은 부분에서 문제가 생겼었고, 강제 업데이트가 자주 발생했다면 진즉에 문제가 발생했었겠지만 그렇지 않았기 때문에 지금까지 방치되고 있던 문제가 아니었나 싶었다. 그리고 이번 글에서는 간단하게나마 해당 이슈가 발생한 코드와 이유, 해결하는 방법에 대해서 작성..