전체 글

안드로이드/이론

[ 안드로이드 ] 액티비티 배경 투명하게 설정 (+ 투명 배경 유지 안되는 이슈 해결)

테마 설정 아래와 같이 values/themes.xml (or styles.xml) 내에 style을 선언합니다. 주의점 위와 같이 액티비티 배경을 투명하게 설정해도 투명해지지 않는 이슈를 발견 정확하게는 액티비티가 투명해졌다가 전환 애니메이션이 끝나면 다시 불투명하게 돌아오게되는 현상 앱의 데이터를 지우니 다시 투명하게 유지가 되었고, 액티비티를 몇 번 반복하여 호출하다보니 다시 재현 됨 컬러나 설정 등이 캐싱되고 있는 것 같아 아래와 같이 선언해주니 해결 됨 @null

안드로이드/이론

[ 안드로이드 ] Multi ViewType RecyclerView ViewHolder 순서 고정하기

MultiView Type RecyclerView를 구현할 때, 각 아이템을 분리하여 관리하게 되면 응답 받는 순서에 따라 순서가 뒤 섞이게 됩니다. 응답 받는 순서와 상관 없이 ViewHolder의 순서를 고정 시키는 방법에 대해서 작성 해보았습니다. ViewType Enum 클래스 선언enum class DiscoverMultiViewType(val value: Int) { MARATHON(1000), RECOMMEND(1001); } ViewType 리스트 갱신데이터 로드가 완료된 ViewType만 리스트에 추가합니다. 데이터 로드에 실패 했거나, 아직 로드 되지 않은 ViewType의 경우 RecyclerView에 표시 되지 않도록 하기 위함입니다. 그리고, 해당 메소드가 ViewHolder의 순..

안드로이드/이론

[ 안드로이드 ] 앱 내에 개발자 모드 추가하기 2

[ 안드로이드 ] 앱 내에 개발자 모드 추가하기 개발자 모드가 필요한 이유 개발자 모드를 통해서 서버 모드(상용, QA, Test)를 앱 내에서 변경할 수도 있고, 에러 발생 시 로그를 기록해줄 수도 있습니다. 또한 토큰 정보나 디바이스 정보 등과 dongx2.tistory.com Intro 이전 글에서 개발자 모드를 추가하는 방법에 대해서 간단히 작성해보았습니다. 아직 개발자 모드를 추가하지 않았다면 이전 글을 먼저 보고 와주시면 도움이 될 것 같습니다. 이번 게시글에선 개발자 모드 내에 각종 정보들을 포함하는 방법에 대해 작성해보고자 합니다. 해당 글을 참고하여 각자의 프로젝트에 맞게 응용 해보시면 좋을 것 같습니다. 이 글은 헤이딜러의 Ted Park님의 게시글을 보고 작성하게 되었습니다. 해당 내..

안드로이드/이론

[ 안드로이드 ] 개발자의 실수를 줄여주는 어노테이션

@WorkerThread 해당 메서드가 백그라운드 스레드(작업 스레드)에서 실행되어야 함을 나타냄 이는 CPU를 많이 사용하는 작업이나 네트워크 요청 등 UI 스레드에서 실행되면 안 되는 작업에 사용 됨 @WorkerThread fun performHeavyCalculation() { // 긴 계산이나 백그라운드 작업 수행 val result = 0 // ... 계산 로직 ... } @MainThread / @UiThread @UiThread 개발자가 실수로 백그라운드 스레드에서 UI 작업을 시도하는 것을 방지하는 데 도움이 됨 @UiThread로 표시된 메소드는 UI 스레드에서 호출되어야 함 @MainThread @UiThread와 유사하지만, 특별한 상황에선 메인 스레드와 UI 스레드가 다를 수 있으..

안드로이드/이론

[ 안드로이드 ] 앱 내에 개발자 모드 추가하기

개발자 모드가 필요한 이유 개발자 모드를 통해서 서버 모드(상용, QA, Test)를 앱 내에서 변경할 수도 있고, 에러 발생 시 로그를 기록해줄 수도 있습니다. 또한 토큰 정보나 디바이스 정보 등과 같이 개발 및 테스트에 필요한 정보들을 바로 확인할 수 있게 됩니다. 프로젝트 특성에 따라 테스트를 위한 여러 기능들을 추가할 수도 있습니다. 이처럼 개발자 모드를 이용하면 다른 파트와의 협업 및 오류 추적, 테스트 등이 용이해집니다. 개발자 모드에 필요한 항목 사용자 정보 계정 정보 Access Token Refresh Token FCM Token AD_ID 디바이스 정보 안드로이드 버전 모델 명 기기 이름 기기 uuid 앱 버전 화면 비율 해상도 가로 너비 리소스 버킷 (ex: xxxhdpi) 서버 Ur..

안드로이드/이론

[ 안드로이드 ] style.xml을 이용하여 공통 속성 정의하기

안드로이드 앱을 만들 때, TextView, EditText와 같은 필드는 일관된 디자인으로 보여주는 경우가 많다. 공통으로 사용하는 다른 뷰들도 마찬가지로 매번 속성을 지정하기엔 귀찮기도하고 실수의 여지가 있어 style 태그를 활용하는게 좋다. Style 정의 적용 예시

안드로이드/이론

[ 안드로이드 ] View에 블러처리 하기 - BlurView 라이브러리

앱 개발을 하다보면 디자인 상으로 블러 처리를 해주어야 할 때가 많은데, 이미지에 블러 처리를 해주는게 아닌 View 자체에 블러 처리가 되는 것을 원했다. 위와 같은 화면을 만들기 위해 해당 라이브러리를 이용했는데, 꽤 괜찮았었고 사용시 주의점 등을 기록하기 위해 해당 글을 작성했다. GitHub - Dimezis/BlurView: Dynamic iOS-like blur of underlying Views for Android Dynamic iOS-like blur of underlying Views for Android - GitHub - Dimezis/BlurView: Dynamic iOS-like blur of underlying Views for Android github.com 라이브러리 적용..

안드로이드/이론

[ 안드로이드 ] Fragment에서 onBackPressed(뒤로가기 이벤트) 처리하기

Fragment 위에 또 다른 화면을 띄워야 했다. 새로 띄울 화면은 배경이 반투명으로, 기존의 화면이 비쳐 보여야했기 때문에 새로운 Fragment를 띄우는 것이 아닌 View로 덮어 씌우는 방식을 선택 했다. 이런 식으로 구현하니 뒤로가기 처리가 문제가 되었는데, onBackPressedDispatcher를 이용해서 간단히 해결할 수 있었다. onBackPressedCallback 정의 private val onBackPressedCallback = object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { // 특정 뷰가 보일 떈 직접처리 if(bind.clSelectAssessment.isVisible){ hideSele..

dongx._.2
DongZip