안드로이드 (166) 썸네일형 리스트형 [Android] DUNS 번호 인증 관련 문제 대응기 DUNS 번호 란?Dun & Brandstree ( D&B ) 에서 개발한 전 세계적으로 인정 받고 있는 시스템 번호로 기업에 할당된 고유한 식별 번호 입니다.개인 계정인데 판매하는 유료 아이템이 없는 경우는 필요 없습니다. 구글로부터 기한 선택 요청 23년 9월경 구글로부터 계정 확인 기한을 선택하라는 알림을 받았습니다.DUNS 번호 및 사업자 등록 번호등을 업데이트 하기 위한 기한이였습니다.저는 혼자 개발 하다보니 진행해야 하는 업무들이 많아서 최대한 후순위로 미뤄서 먼저 진행한 사례들이 많이 생기고 난 후에 진행하고자 했습니다. DUNS 번호 조회 먼저 등록되어 있을 수 있으니 조회를 합니다. ( 개인 계정이거나 iOS 앱이 없는 경우는 없을 확률이 높습니다. ) 링크에 접속하여 기존에 발급되어.. [Compose] SideEffect SideEffect란Composable 범위 밖에서 발생하는 state 변경을 말하며, 이것을 예측 가능한 방식으로 제어하기 위해 Compose에서 제공하는 SideEffect Api를 사용합니다.Compose의 상태는 UI 갱신의 기준으로 사용되며 상태 관리를 잘못해서 무분별하게 UI 갱신이 이뤄질 경우 앱의 성능이 떨어질 수 있기 때문 입니다. 기본적으로 Composable은 바깥쪽에서 안쪽, 단방향으로 state를 전달한다.또 다수의 Composable을 겹쳐서 사용하는데 각 Composable 마다 Lifecycle이 별도로 가지고 있다 하지만 안쪽에서 바깥쪽 state를 변경해야 하거나, Coposable이 아닌 곳의 state를 변경해야 하는 경우가 생기는데 이를 SideEffect라 칭하며.. [Android] Recyclerview 클릭한 아이템 화면 중앙으로 이동 구현 기능 상세 내용아래 사진처럼 탭에서 클릭된 아이템이 가려져 있을 경우 화면 중앙으로 이동 tabLayout은 탭으로써 기본 성질들을 갖고 있다보니 다양한 요구사항을 충족 시키기에 제약이 많다고 생각해 Recyclerview로 구현 했습니다. 클릭한 탭을 화면 중앙으로 이동 시키기 위해 고려해야 하는 부분은 3가지 입니다. 디바이스 넓이 클릭한 탭의 넓이리싸이클러뷰에 적용한 패딩그리고 스크롤시 layoutManager.scrollToPositionWithOffset(position, offset) 메소드가 사용 됩니다.scrollToPositionWithOffset : 클릭한 포지션에서 offset 만큼 이동된 곳으로 scroll offset = (디바이스 넓이 / 2) - ((탭의 넓이 /2 .. [Android] PhotoPicker 로 이미지 업로드 Gradle 업데이트로 인해 업데이트가 중단된 이미지 선택 라이브러리를 제거하면서 구글에서 제공하는 Photo Picker를 선택했습니다.서드파티에 의존하는 경우 구현 자체는 편하지만 커스텀 하기 복잡하고빠르게 바뀌는 구글 정책에 맞게 업데이트 되지 않으면 언젠간 제거 해야해 당장 해야할 업무에 지장이 있을수 있습니다. Photo Picker 앱에서 디바이스 내부 저장소 접근에 대한 우려섞인 목소리에 Android 13에 소개된 미디어 선택 도구입니다. 단일 선택 private var photoSelectResult = registerForActivityResult(ActivityResultContracts.PickVisualMedia()){ uri -> if(uri != null).. [Compose] UI 정리 - xml 호환 ? 프로젝트에 Compose를 도입하면서 Xml 위젯별 호환되는 UI를 여러번 찾다보니저처럼 뒤늦게 시작하시는 분들을 위해 도움이 됐으면 하는 마음에 포스팅 합니다. TextView -> TextLinearLayout -> Row ( 가로 ), Column ( 세로 )ConstraintLayout -> ConstraintLayoutImageView -> ImageView구분선 ( View ) -> DividerSpace -> Spacer RelativeLayout -> Box Recyclerview - > LazyRow ( 가로 스크롤 ) , LazyColumn ( 세로 스크롤 ) 웬만한 화면은 위 UI들을 사용하면 구현 가능 했습니다. 각 UI 별 기본 사용법과 설정할 수 있는 속성들을 너무 길어져서 다루.. [Android] Compose 도입 ( 마이그레이션 ) Kotlin DSL로 작성되었습니다. build.gradle ( app level ) android{ .... buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.4.3" } } 컴포즈 버전을 선택하실땐 공식문서를 확인하셔서 사용중인 코틀린 버전과 호환되는 버전을 선택하시고 너무 오래된 버전을 사용중이시라면 이번 기회에 올리는 것을 추천드립니다. Dependencies const val composeVersion = "1.4.3" const val composeUi = "androidx.compose.ui:ui" const val composeGraphics = "androidx.compose.ui:ui.. [Android] Slider를 활용한 가격 설정 적용기 근무중인 커머스 서비스에 가격 필터를 개선하게 됐습니다. 기존에는 가격대별 버튼 + Edittext 로 가격을 설정 했었고 개선되는 버전엔 Slider + Edittext 로 가격을 설정하도록 변경 됐습니다 정말 개선 되었는가 ? 평소 설계서를 공유 받는 자리에서 제 경험을 토대로 유저 입장에서 솔직하게 피드백 하는데 슬라이더를 사용해 가격 조정 하도록 개발해본적도 없고 실제 서비스에서도 접해본적 없다보니 별다른 피드백을 할 수 없었고 그대로 개발에 착수하게 됐습니다. 어떤 슬라이더를 선택할 것인가? 2가지 전제조건이 있었습니다. 상품 리스트 조건마다 최저 금액과 최대 금액이 다름 최저, 최대 금액에 따라 금액을 조절할 수 있는 간격이 다름 위 전제조건이 까다롭지 않다고 생각하여 기본 RangeSlide.. [Android] Kotlin DSL 적용기 Kotlin DSL 이란 DSL이란 Domain Specific Language로 특정 도메인에 최적화된 언어를 말합니다. 안드로이드에서 'Kotlin DSL' 을 적용했단 의미는 Groovy로 구성되어 있는 gradle 파일을 Kotlin으로 변경하는걸 뜻합니다. Kotlin DSL vs Groovy DSL 장단점을 충분히 고려하고 사용해본 후 팀이나 프로젝트에 맞는걸 사용하는걸 추천합니다. 장점 - 컴파일시 에러를 확인 - 자동 완성 - 타입 안정성 - 코틀린 기능 활용 ( 함수형 프로그래밍 ) 단점 - 초기 빌드가 느림 - 학습 곡선 마이그레이션 저는 진행중인 토이프로젝트에 적용한걸 공유하지만 프로젝트에 맞게 다양한 예시들을 검색해보시며 맞는걸들을 찾아 조합해 적용하는걸 추천드립니다. root 프로.. 이전 1 2 3 4 ··· 21 다음