본문 바로가기
반응형

Android42

[compose] TextField로 숫자 입력 시 VisualTransformation 사용하여 쉼표(,) 붙여주기 사용자로부터 숫자를 입력 받아야 하는 경우가 있습니다. 이때 가독성을 위해 세자리 단위마다 쉼표 (,) 를 찍어주는 것이 좋습니다. 예를 들어 숫자 1백만은 1000000이지만 1,000,000 으로 표기하는 것이 가독성에 좋습니다. 일반적으로 TextField의 onValuChange 함수를 통해 이를 대응하는 경우가 있는데, 아마도 원하는 결과가 쉽게 나오지 않을 것입니다. 특히 커서 움직임과 관련해서요. 커서를 이리저리 움직이고, 숫자를 입력/삭제해보면 의도치 않은 동작을 확인할 수 있습니다. Compose TextField에서는 사용자가 실제로 입력한 텍스트와 별개로 화면에 보여질 텍스트를 변환해주는 메커니즘을 제공하고 있습니다. 바로 VisualTransformation 인데요. VisualTr.. 2023. 4. 16.
RecyclerView의 특정 아이템 위치로 이동하기 RecyclerView를 사용하면서 어떤 사용자 action 등에 의해 특정 아이템 위치로 스크롤할 필요가 있습니다. 이때 손 쉽게 사용할 수 있는 방법이 있는데, 아래와 같이 기본적으로 제공되는 scrollToPosition 함수를 사용하는 것입니다. // #1. RecyclerView.scrollToPosition(position: Int) // #2 RecyclerView.smoothScrollToPosition(position: Int) 이걸로 상황이 말끔히 해결된다면 그걸로 끝입니다. 하지만 때로는 위 함수로 부족한 경우가 있습니다. 예를 들어, 위 2개 함수를 통해 스크롤을 하게 되면 해당 아이템이 보이는 위치까지만 스크롤합니다. 다시 말해 내가 찾고자 하는 아이템을 최상단에 보여주도록 스크롤.. 2020. 11. 8.
Bitbucket Pipeline으로 Android APK 빌드하기 본 포스팅에서는 Bitbucket 환경에서 Pipeline 기능을 사용하여 Android APK를 빌드하고 이를 Bitbucket Downloads 영역에 업로드하는 것을 다루고자 합니다. 젠킨스 CI 환경을 구축하는 방법도 있겠지만, 이미 Bitbucket을 사용하고 있다면 Bitbucket에서 제공하는 Pipeline 기능을 이용해보는 것도 좋겠다고 생각하여 찾아보게 되었습니다. App password 생성 우선 App password를 생성해야 합니다. 왼쪽 하단 본인 프로필 아이콘 클릭 > Bitbucket settings > App passwords 라벨 명을 적고 Repository에 대해 Read/Write 권한을 주고 생성합니다. Create 버튼을 클릭하면 password가 생성되는데, .. 2020. 11. 8.
[Android Dev Summit ’19] What’s New in Room – 정리 다소 늦은 감이 있지만, Android Dev Summit 내용을 정리하고자 합니다. 주로 Room 2.2 개선 사항을 다루고 있습니다. Flow support Flow가 추가되면서 코루틴을 보다 완벽하게 지원할 수 있게 됨 아래와 같이 Dao 함수에 Flow를 반환하도록 정의할 수 있다. @Dao interface DogDao { @Query("SELECT * FROM dogs") fun getDogs(): Flow } Flow를 아직 파악하지 못한 상태인데… 언뜻 보기에는 Rx의 장점을 코루틴에서 취한 형태가 아닐까 짐작해봅니다. Rx의 장점 중 하나는 다양한 연산자(map, filter)를 통해 데이터 스트림을 조작할 수 있다는 점인데 이를 Flow를 통해 유사하게 처리가 가능한 것 같습니다. 또한.. 2020. 11. 8.
반응형