
Android Jetpack Compose 한 번 써봤습니다
두줄요약
Jetpack Compose를 송금 기능에 점진 적용하며 TextField 포맷팅과 LazyColumn 무한 스크롤을 구현했습니다. 선언형 UI의 편의성은 높았지만 기존 위젯과의 UX 차이는 커스텀이 필요했습니다.
구조와 흐름
- XML 레이아웃과 View 조작 방식에서 Kotlin 기반 선언형 UI인 Jetpack Compose로 일부 신규 기능 전환
- 기존 View 시스템과의 호환성을 바탕으로 신상캐시 송금 서비스를 시작점으로 점진적 적용
- 기본 Composable부터 LazyColumn·ConstraintLayout까지 활용한 화면 구성
해결 방법
- TextField 포커스 상태를 별도 변수와
onFocusChanged로 관리해 화면 터치 시 키보드 해제 처리 - 금액 입력값은 콤마 없는 숫자 상태로 보관하고
VisualTransformation과OffsetMapping으로 천 단위 콤마·커서 위치 변환 LazyListState,derivedStateOf,snapshotFlow기반의 하단 도달 감지와 상태별 무한 스크롤 UI 구성
장단점
- Kotlin 중심 개발, 보일러플레이트 및 XML 리소스 감소, ViewModel 상태 연동 용이성
- 기본 padding·elevation 재조정과 TextField 커스터마이징 필요
- 선언형 UI 사고방식 적응 이후 높아진 구현 편의성
주의할 점
- 정식 출시 전 Composable의 형태·동작 변경 가능성
- SwipeRefresh 등 기존 위젯과 다른 UI·UX를 기존 사용자 경험에 맞게 조정할 필요

