ViewModel에서 더이상 EventFlow를 사용하지 마세요
ViewModel의 1회성 이벤트 전파에 쓰던 EventFlow를 Channel로 바꾸는 방법을 정리했습니다. 구독자 부재와 재수집 상황을 고려해 receiveAsFlow()와 Channel.BUFFERED 사용 이유도 설명했습니다.
#Android#ViewModel#Kotlin
6500


ViewModel의 1회성 이벤트 전파에 쓰던 EventFlow를 Channel로 바꾸는 방법을 정리했습니다. 구독자 부재와 재수집 상황을 고려해 receiveAsFlow()와 Channel.BUFFERED 사용 이유도 설명했습니다.

헤이딜러 제품팀이 팝업과 모달의 닫기 가능 기준을 UX 관점에서 정리했습니다. 응답 필수 여부에 따라 Strong/Weak를 구분하고 X버튼 노출 기준도 제시했습니다.

스켈레톤 로딩의 개념과 스피너와의 차이를 정리하고, 어떤 화면에 쓰면 좋은지 헤이딜러의 기준을 공유했습니다. 로딩이 짧게 느껴져야 하고 레이아웃 변화가 적은 화면에 적합하다고 설명했습니다.

헤이딜러 UX 스터디는 닫기와 뒤로가기를 화면 깊이가 아니라 맥락으로 구분하는 기준을 정리했습니다. 모달은 닫기, 이전 페이지 흐름은 뒤로가기를 쓰는 방식으로 일관성을 맞췄습니다.

Jetpack Compose에서 텍스트 길이에 따라 아이콘 위치를 유연하게 정렬하는 방법을 소개했습니다. TextLayoutResult와 커스텀 Alignment로 하드코딩 없이 대응했습니다.

안드로이드 WebView의 파일 입력을 onShowFileChooser()로 직접 구현하는 방법을 설명했습니다. 파일 선택 결과 전달과 URI 권한 처리, 복수 파일 선택 대응까지 다뤘습니다.