
Android
![[Android Weekly] In-app update](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcbwpEg%2FbtrHsEh1WGy%2FAAAAAAAAAAAAAAAAAAAAAD-xpR8VegdOmmkt6PZsQpflZ_6dElp4LJCHtfKreq9n%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3Dgz4sl%252B1Ufl0N%252BS3vvXWbpYcbRVo%253D)
[Android Weekly] In-app update
사용자는 그들의 기기에 당신의 소프트웨어를 업데이트 함으로써 새로운 기능을 테스트하거나, 속도를 향상시키거나, 오류를 수정받을 수 있습니다. 일부 사용자는 무제한 연결을 사용할 때 백그라운드 업데이트를 사용하도록 선택할 수 있지만, 다른 사용자들에게는 알림이 필요할 수 있습니다. 활성화된 사용자에게는 Google Play Core 라이브러리의 인앱 업데이트 기능을 사용하여 앱을 업그레이드 하라는 메세지가 표시됩니다. 안드로이드 5.0 (API 21) 이상을 사용하는 기기는 인앱 업데이트 기능이 호환됩니다. 앱에 업데이트를 표시하기 위한 두 가지 방법이 있습니다. Flexible 사용자가 앱을 업데이트 하려는 경우, 팝업 윈도우가 표시됩니다. 수락과 거절은 모두 선택사항입니다. 동의할 경우, 업데이트는 백..
![[Android Weekly #515] sealed classes와 코루틴을 사용한 레트로핏 응답 모델링](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbsR4Az%2FbtrBnMkLNTE%2FAAAAAAAAAAAAAAAAAAAAAK3HpXQftPYB0MBNg-OxFLIM-uvBUK8C7LUCGVKJtBGu%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DG51AjDH0xfA2%252F1wFD7HLcDhmH8g%253D)
[Android Weekly #515] sealed classes와 코루틴을 사용한 레트로핏 응답 모델링
데이터 통신률이 증가함에 따라, 어플리케이션 아키텍쳐의 복잡도도 증가합니다. 어플리케이션이 API 응답을 처리하는 방법이 전체적인 아키텍쳐 디자인과 코드 복잡도를 결정합니다. 이 글에서는 코드의 복잡도를 줄이고 어플리케이션 아키텍쳐의 일관성을 위해 Corotuines과 Sealed classes를 이용하여 Retrofit 응답을 모델링하는 방법에 대해 다룹니다. 본 글에 앞서, 프로젝트가 Coroutines와 Retrofit 의존성을 포함해야 합니다. Retrofit API Calls With Coroutines 먼저 레트로핏 API 호출의 예시를 보겠습니다. fetchPosters 함수는 네트워크에 포스터 리스트를 요청하며, PosterRemoteDataSource는 fetchPosters 함수의 결과..
![[Android / Gist] 현재 위치 정보 가져오기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FCDz6W%2FbtrBIfIeFUW%2FAAAAAAAAAAAAAAAAAAAAAOlmxSanQjMQTIDpCNiWQEwcI9uw5d8dqmqoe9_sY_wb%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3D3lzWwlCLCEl7Ufyt0VvvSD%252BHggg%253D)
[Android / Gist] 현재 위치 정보 가져오기
ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION 권한 필요 requestCurrentLocationUpperAndroidR에서 provider가 LocationManager.NETWORK_PROVIDER인 경우 에뮬레이터 상 동작하지 않는 것으로 보임 (실제 기기는 테스트 안됨😥)
![[Android] Android 13 개발자 프리뷰 - 기능 및 API 개요](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcGtkVx%2FbtruVXshhd3%2FAAAAAAAAAAAAAAAAAAAAADuQ-eL2VoIqDcz5ImYaL8TrGyzMWlHGRthNFLtOHIQ6%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DFU%252Ff4DGXSY%252F5nuYW8ERCQ0CaIhM%253D)
[Android] Android 13 개발자 프리뷰 - 기능 및 API 개요
User experience Themed app icons Android 런처의 앱 아이콘이 사용자가 선택한 배경화면 및 기타 테마의 색상을 상속받도록 색조가 조정되는 기능 이 기능을 지원하기 위해서는 단색 앱 아이콘 제공 매니페스트의 설정 사용자가 기기에서 테마 아이콘 전환 버튼을 사용 설정한 경우 사용자가 선택한 배경화면 및 테마의 색상을 사용하여 색조 색상을 결정한 후 단색 앱 아이콘에 적용된다. Specifications 단색 앱 아이콘은 다음 조건을 충족해야한다. VectorDrawable↗ 이여야 한다. 로고는 90 x 90 dp의 컨테이너 내부에 36 x 36 dp 영역에 맞추는 것을 권장한다. 로고가 더욱 커야 한다면, 최대 60 x 60 dp 까지 가능하다. 평면 로고를 권장한다. 로고가..
![[Android] Android 13 개발자 프리뷰 - 동작 변경 사항](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcSDvBq%2FbtruQk90Rmk%2FAAAAAAAAAAAAAAAAAAAAAPxwqrA0bVFE1v4ol_D1lDbTh_pjTlcA5x32rojxTl_F%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DxXnrBeNfrQ593ekF3HvjNItfyQw%253D)
[Android] Android 13 개발자 프리뷰 - 동작 변경 사항
개인정보 보호 근처 Wi-Fi 기기의 새 런타임 권한 안드로이드 13 이전에는 Hotspot, Wi-Fi Direct 연결, Wi-Fi RTT 등과 관련된 Use case를 위해 ACCESS_FINE_LOCATION↗ 권한을 부여해야 했다. 사용자 관점에서 보았을 때, Wi-Fi 기능과 위치 정보 권한에 대한 연결점을 찾아보기가 어렵다. 따라서 Android 13에서는 Wi-Fi를 통해 근처 액세스 포인트에 대한 기기의 연결을 관리하는 앱을 위해 NEARBY_DEVICES 권한 그룹의 새 런타임 권한 NEARBY_WIFI_DEVICES↗를 도입했다. 앱이 Wi-Fi API에서 물리적 위치 정보를 필요로 하지 않는다면 Android 13 이상을 타겟팅하고 Wi-Fi API를 이용할 때 ACCESS_FINE..
![[Android] RecyclerView에 DiffUtil 사용하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbmawtV%2FbtrEKVL6szd%2FAAAAAAAAAAAAAAAAAAAAAF5ZwTnh-2HHvEX4DO4LIWPgz4AwAHtKG9F1_TltAN3t%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DUAxy0iVbzID41%252FWAsYTXwR7ieFk%253D)
[Android] RecyclerView에 DiffUtil 사용하기
더 나은 방법이나 틀린 내용이 있을 시에 댓글 남겨주시면 감사하겠습니다. 2022-01-28 작성되었습니다. [Android] RecyclerView 기본 사용법 🔍 DiffUtil이란? 안드로이드 공식 문서에서는 두 리스트의 차이를 계산하고 첫번째 리스트를 두번째 리스트로 변환하기 위한 업데이트 동작을 출력하는 유틸리티 클래스로 정의한다. (Eugene W.Myers's difference algorithm) RecyclerView Adapter의 업데이트를 계산하는데 사용되며 notifyDataSetChanged(), notifyItemChanged() 등의 불필요한 사용을 지양할 수 있도록 도와준다. ✅ 주요 클래스 - DiffUtil.Callback 두 리스트의 차이를 계산할 때 DiffUtil에..