본문 바로가기

전체 글

(215)
[Android] Recyclerview 클릭한 아이템 화면 중앙으로 이동 구현 기능 상세 내용아래 사진처럼 탭에서 클릭된 아이템이 가려져 있을 경우  화면 중앙으로 이동 tabLayout은 탭으로써 기본 성질들을 갖고 있다보니 다양한 요구사항을 충족 시키기에 제약이 많다고 생각해 Recyclerview로 구현 했습니다.  클릭한 탭을 화면 중앙으로 이동 시키기 위해 고려해야 하는 부분은 3가지 입니다. 디바이스 넓이 클릭한 탭의 넓이리싸이클러뷰에 적용한 패딩그리고 스크롤시  layoutManager.scrollToPositionWithOffset(position, offset) 메소드가 사용 됩니다.scrollToPositionWithOffset : 클릭한 포지션에서 offset 만큼 이동된 곳으로 scroll offset = (디바이스 넓이 / 2) - ((탭의 넓이 /2 ..
오블완 챌린지, 함께 해요! 매번 써야지 말만 하다가미루고 미룬 포스팅만 몇개인지.. 하지만 쓸 이유가 생겼습니다.바로 티스토리에서 진행하는 '오블완' 챌린지!  (상세 페이지 )블로그를 활성화 시키고자 진행하는걸로 보입니다!  7일부터 27일까지 3주간 매일 블로그에 글을 쓰면다양한 경품에 당첨될 수 있는 기회(?)를 준다네요! ㅎㅎ  사실 매일 양질의 글을 쓰는게 정말 힘들다고 생각하는데..경품도 추첨이라 조금 아쉽지만 동기부여가 된다는거에 의미를 두고!  열심히 참여해 보겠습니다. 그동안 밀린 포스팅이 많으신분들  함께 해요!   해당 이벤트를 공유하는 글을 쓰시는분께는 커피도 추첨해서 준다고 합니다! 상세 이벤트 내용은 페이지를 참고해주세요 !  참가하시는 다른분들 좋은 상품 당첨되길 바라겠습니다!
[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 별 기본 사용법과 설정할 수 있는 속성들을 너무 길어져서 다루..
색칠하기 개인정보 처리 방침 1. WONY (이하 "http://superwony.tistory.com/")는 이용자의 개인정보를 매우 중요하게 생각하며 각별히 주의를 기울여 처리하고 있습니다. 2. 정보 주체의 권리, 의무 및 그 행사방법 이용자는 개인정보 주체로서 다음과 같은 권리를 행사할 수 있습니다. ① 정보주체는 ('사이트URL'이하'사이트명) 에 대해 언제든지 다음 각 호의 개인정보 보호 관련 권리를 행사할 수 있습니다. 1) 개인정보 열람요구 2) 오류 등이 있을 경우 정정 요구 3) 삭제요구 4) 처리정지 요구 3. 처리하는 개인정보의 항목은 없습니다. 4. 개인정보의 파기은(는) 원칙적으로 개인정보 처리목적이 달성된 경우에는 지체없이 해당 개인정보를 파기합니다. 파기의 절차, 기한 및 방법은 다음과 같습니다. - 사..
[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 프로..