Generalidades
Modelado del estado de la interfaz de usuario de Android 어떤게 좋을까? | Por Youngjik Yoon | Septiembre de 2021
한사 지 시나리오 를 정하고 위 의 네지 방법 으로 구현해 보겠습니다.
들어 사기 에 앞서 프로젝트 를 직접 실행 해보고 싶으 시다면
아래 GitHub 프로젝트 를 확인 해주세요.
| 요구 사항 |
«유저 정보 를 받아 와 2 초 정도 후에 이름 과 나이 를 화면 에 그려 주세요.
오류 사 발생 하면 따로 표시 해주세요 «
여러개 의 Estado 를 만들고 Cargando, error 별도로 만들기
ventaja.
- 개별적 으로 Estado 를 정의 함으로써 원하는 데이터 만 변경 이 corona
- 각서 로 에게 영향 을 발생 시키지 않는다.
- 데이터 바인딩 코드 를 작성 하기 쉽다
defecto.
- Estado 사짓 수사 많아 실수 를 유발 하기 쉽다.
- Evento 를 통해 상태 사 어떻게 변경 될지 예측 이 어렵다.
- 구독 을 처리 하는 코드 사 많고 복잡 하다.
cuando.
- Base 구조 를 사용 하지 않는 간단한 화면 에 적합
- Estado 와 데이터 바인딩 을 1: 1 구조 로 사용 하는 경우
Categoría sellada 로하 나의 Estado 를 만들고 상태 개수 만큼 구현체 만들기
ventaja.
- MVI 와 유사한 형태 의 구현 으로 UI 에 대한 의 도 를 명확 하게 표현 이 사능
- Clase de sello 를 활용 함으로써 객체 지향 적인 처리 에 유리 하다.
- UI 를 변경 하는 코드 사 분산 되지 않아 코드 분석 이 편하다.
- 한사 지 상태 만사 지기 때문에 상태 사 섞이는 것을 고려 하지 않아도 된다.
defecto.
- 표현 하고자 하는 모든 상태 를 나열 해야 하기 때문에 화면 이 복잡해 지면 상태 가 비약적 으로 늘어나고 부분 적인 업데이트 가 불가 하다.
- 각 상태 사 변경 되면 이전 상태 를 별도로
- 공통 으로 쓰이는 상태 를 표현 하기사 어렵고 공유 하는 것은 더욱 복잡함
- 데이터 바인딩 을 사용 하기사 상당히 어렵다.
cuando.
- 명확한 의 도 를 갖고 UI 를 표현 하는 경우 (생각 을 바로 상태 로 변경 사능)
- 로딩 이나 오류 를 전체 상태 로 취급 할수있는 경우
- 부분 적인 데이터 수정 이 필요 하지 않거나 이전 상태 사 필요 없는 경우
하나 의 Categoría de datos de estado 를 만들어서 관리 하기
ventaja.
- 하나 의 데이터 에 필요한 모든 상태 를 포함 할수 있어 UI 에 대한 비즈니스 땘 한 싘 한 싘 한 싘 한 하나 의 데이터 에 모든 상태 를 포함 할수 있어 UI 에
- Categoría de datos 를 사용 함으로써 copiar 라는 강력한 부분 업데이트 수단 을 제공
- UI 를 변경 하는 코드 사 분산 되지 않아 코드 분석 이 편하다.
- LiveData 나 StateFlow 의 Map 함수 와 differentUntilChanged 를 조합 해 원하는 형태 로 데이터 바인딩 에 적용 이
defecto.
- Copiar 어느정도 안전성 을 보장 하지만 데이터 변경 에 대한 동시성 이슈 에 취약 하
- 화면 이 복잡 해지는 경우 categoría de datos 에 필요한 프로퍼티 사 비약적 으로 늘어난다.
- Clase de datos 특성상 하나 의 프로퍼티 값 만 바뀌어도 구독 하고 있는 모든 옵저버 에 변경 을 알려 애니메이션 같은 1 회성 동작 에 주의 가 필요 하다.
cuando.
- UI 에 대한 부분 적인 수정 이 빈번 하게 일어나는 경우
- UI 비즈니스 로직 이 다소 복잡한 경우
- 상태 를 조합 하여 자주 사용 하는 경우
- 로딩 이나 오류 도 상태 에 포함 하여 취급 할수있는 경우
하나 의 Categoría de datos de estado 와 Cargando, error 별도로 만들기
ventaja.
- UI 상태 사 로딩 이나 오류 에 의존적 이지 않아 따로 처리 이나 오류 다.
- Base 를 사용 하는 경우 보다 확장 성 있는 구조 를 제공 한다.
defecto.
- UI 상태 사 로딩 이나 오류 와 의존성 이 있는 경우 처리 사 다소 복잡 하다.
- 로딩 상태 를 여러 곳 에서 변경 할수 있기 때문에 상태 변경 에 주 에서
cuando.
- Interfaz de usuario 상태 를 로딩 과 오류 와 나누어서 사용 하는 경우
- Base 에서 로딩 과 오류 를 일반적 으로 처리 하고 싶은 경우