본문 바로가기

안드로이드/팁

(52)
[Android] DUNS 번호 인증 관련 문제 대응기 DUNS 번호 란?Dun & Brandstree ( D&B ) 에서 개발한 전 세계적으로 인정 받고 있는 시스템 번호로 기업에 할당된 고유한 식별 번호 입니다.개인 계정인데 판매하는 유료 아이템이 없는 경우는 필요 없습니다.  구글로부터 기한 선택 요청 23년 9월경 구글로부터 계정 확인 기한을 선택하라는 알림을 받았습니다.DUNS 번호 및 사업자 등록 번호등을 업데이트 하기 위한 기한이였습니다.저는 혼자 개발 하다보니 진행해야 하는 업무들이 많아서 최대한 후순위로 미뤄서 먼저 진행한 사례들이 많이 생기고 난 후에 진행하고자 했습니다.  DUNS 번호 조회 먼저 등록되어 있을 수 있으니 조회를 합니다. ( 개인 계정이거나 iOS 앱이 없는 경우는 없을 확률이 높습니다. ) 링크에 접속하여 기존에 발급되어..
[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)..
[Android] Kotlin DSL 적용기 Kotlin DSL 이란 DSL이란 Domain Specific Language로 특정 도메인에 최적화된 언어를 말합니다. 안드로이드에서 'Kotlin DSL' 을 적용했단 의미는 Groovy로 구성되어 있는 gradle 파일을 Kotlin으로 변경하는걸 뜻합니다. Kotlin DSL vs Groovy DSL 장단점을 충분히 고려하고 사용해본 후 팀이나 프로젝트에 맞는걸 사용하는걸 추천합니다. 장점 - 컴파일시 에러를 확인 - 자동 완성 - 타입 안정성 - 코틀린 기능 활용 ( 함수형 프로그래밍 ) 단점 - 초기 빌드가 느림 - 학습 곡선 마이그레이션 저는 진행중인 토이프로젝트에 적용한걸 공유하지만 프로젝트에 맞게 다양한 예시들을 검색해보시며 맞는걸들을 찾아 조합해 적용하는걸 추천드립니다. root 프로..
[Android] ScrollView in Recyclerview ( 이중 스크롤 구현 ) 이중 스크롤 구현 방법은 크게 2가지로 두개 이상의 스크롤 되는 뷰를 하나의 스크롤로 자연스럽게 보여지게 하는 방법과 스크롤 뷰 안에서 독립적으로 스크롤이 가능하도록 하는 방법이 있습니다. 첫번째 경우 ScrollView가 부모 뷰고 Recyclerview가 있는 구조가 대표적인 예로 NestedScrollView로 간단하게 처리할 수 있고 사용자가 보기엔 하나의 스크롤 되는 화면으로 인식됩니다. ( 해당 포스팅에선 다루지 않습니다. ) 두번째 경우는 결제 페이지 같이 일반적으로 긴 화면에서 구매 약관등의 추가적인 긴 내용을 보여줄때 사용했었습니다. 뎁스로 나뉘어서 노출해도 되지만 법률 관련 권고 사항(추측)을 준수해야 할 경우, UX보단 정보 전달이 우선이기 때문입니다. 상위 뷰 터치 제한 하위 스크롤..
[Android] 구글 로그인 연동 '구글 로그인 연동' 자주 하지 않지만 프로젝트 시작하면 많이 찾게되는 키워드.. 그래서 헷갈릴때가 많아 다시 한번 정리 합니다! 구글 로그인은 크게 2가지로 구분 됩니다. 파베를 이용한 연동 vs Google Cloud Api를 연동 서버가 없는 경우 파베를 이용하면 회원 관리도 직접할 수 있는 어드민 기능을 제공하고 연동 방식도 조금 더 간단합니다. Google Cloud Api 연동은 서버가 따로 있을 경우 이용하는 방식으로 클라이언트에서 구글 idToken을 발급받아 서버로 전송하면, 서버에선 전달 받은 idToken으로 유저의 정보를 얻고 그걸 토대로 각 서비스의 AccessToken을 발급해줍니다. = AccessToken : 서비스 ( 앱 ) 이용시 필요한 유저 인증 정보 해당 포스팅은 Cl..
[Android] 폴더블 대응기 폴더블폰을 사용해 보면서 운영중인 앱이 잘 동작하는지 아래 2가지를 중점적으로 확인했습니다. 1. 접거나 펼쳤을때 보던 화면이 동일하게 보여지는지 2. 펼쳤을때 화면을 효율적으로 활용하는 방법 ( ex 카톡 : 채팅 리스트와 상세를 한 화면에 ) 커버 화면에서 앱 계속 사용 먼저 펼쳤을땐 괜찮은데 접었을땐 앱이 유지되지 않고 잠금화면이 노출 되는 현상이 있었습니다. 먼저 접었을때 보던 앱 화면이 유지되려면 디바이스 설정을 확인해야 합니다. '설정 > 디스플레이 > 커버 화면에서 앱 계속 사용 ' '크기 조절이 지원되지 않음' 으로 표시되어 있는 경우 AndroidManifest.xml에 resizeableActivity 옵션을 아래처럼 변경해야 합니다. 디바이스 설정을 변경하지 않고 폴더블 설정을 완료하..
[Android] Flipper로 네트워크 디버깅 Stetho를 보내며 내부 디비나 네트워크 디버깅 할때 잘 사용하고 있었는데 어느 순간부터 chrome 브라우저에선 사용이 어려워, Edge 브라우저로 사용하고 있었는데 이마저도 기기 인식을 못할때가 많아 힘들었는데 이젠 이마저도 인식이 되지 않네요... Flipper Facebook에서 만든 Flipper를 많이 사용하고들 계시더라구요 Stetho가 웹 친화적이였다면 Flipper는 보다 앱에 친화적인 툴 같아서 도입하게 됐습니다! 설치 공식 사이트에서 각 플랫폼에 맞는걸 설치하면 됩니다. 맥의 경우 설치가 안될때 '시스템 환경설정 > 보안 및 개인 정보 보호' 에 가셔서 'Flipper' 열기를 누르시면 됩니다. 설치 됐을때 플랫폼을 선택하는데 iOS는 필요 없어서 OFF 했습니다. Android S..