일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- compose
- PrototypePattern
- designPattern
- Singleton
- 싱글톤
- 추상 팩토리
- 팩토리 메소드
- 프로토타입 패턴
- El
- F
- 빌터패턴
- Observer Pattern
- Functional Programming
- 디자인패턴 #
- factory method
- Design Pattern
- 안드로이드 디자인시스템
- 코틀린
- ㅓ
- Kotlin
- 디자인패턴
- 옵저버 패턴
- builderPattern
- android designsystem
- 추상팩토리패턴
- Abstract Factory
- material3
- ㅋㅁ
- 함수형프로그래밍
- r
- Today
- Total
목록전체 글 (333)
오늘도 더 나은 코드를 작성하였습니까?

다양한 화면 전환 및 앱 간의 navigation은 사용자 경험의 핵심 부분입니다 원칙은 앱 전체에서 일관되고 직관적인 사용자 경험의 기준을 설정합니다. navigation component는 원칙을 기본적으로 구현하도록 설계되어 사용자가 앱 사이를 이동할 때 동일한 navigation 휴리스틱(체계적이면서 합리적인 판단이 굳이 필요하지 않은 상황에서 사람들이 빠르게 사용할 수 있게 보다 용이하게 구성된 간편추론의 방법) 과 동일한 이동 패턴을 경험하게 할수 있다. 1. Fixed start destination (확정된 시작 화면) - 모든 앱에는 고정된 시작 화면이 있어야한다. 사용자가 런처(아이콘)에서 앱을 실행할 때 표시되는 첫 번째 화면입니다. - 이 화면은 사용자가 뒤로 버튼을 누른 후 런처로..

앱이 목록 상단부터 REFRESH를 하는 경우 RemoteMediator가 prepend 로드 동작을 정의할 필요가 없다. 앱이 네트워크에서 로컬 데이터베이스로 incremental loading 를 지원해야 하는 경우에는 사용자의 스크롤 위치인 anchor 부터 페이지 나누기를 재개하는 기능을 지원해야 합니다. Room의 PagingSource 구현에서 이 작업이 자동으로 처리되지만, Room을 사용하지 않는 경우에는 PagingSource.getRefreshKey()를 재정의하면 됩니다. getRefreshKey()의 구현 예는 PagingSource 정의를 참고
race conditions 여러 소스에서 데이터를 로드할 때 로컬 캐시 데이터가 원격 데이터 소스와 동기화되지 않는 경우 1. RemoteMediator initialize() 메서드가 LAUNCH_INITIAL_REFRESH를 반환하면 데이터가 오래된 것을 새 데이터로 교체 2. PREPEND 또는 APPEND 로드 요청은 원격 REFRESH 로드가 성공할 때까지 기다려야 합니다. PREPEND 또는 APPEND 요청이 REFRESH 요청 전에 큐에 추가되었으므로 요청이 실행되는 시점에 이러한 로드 호출에 전달된 PagingState가 만료될 수 있습니다. 데이터가 로컬에 저장되는 방식에 따라 캐시된 데이터 변경으로 인해 데이터가 무효화되거나 새 데이터를 가져오는 경우 앱이 중복 요청을 무시할 수 있..
RemoteMediator의 기본 구현 Pager가 데이터를 모두 사용했거나 기존 데이터가 무효화되었을 때 네트워크에서 더 많은 데이터를 로드하는 것입니다. RemoteMediator는 로드 동작을 정의하기 위해 재정의해야 하는 load() 메서드를 포함합니다. 일반적인 RemoteMediator 구현에는 다음 매개변수가 포함됩니다. query 백엔드에서 검색할 데이터를 정의하는 쿼리 문자열 database: 로컬 캐시의 역할을 하는 데이터베이스 networkService: 백엔드 서비스 API 요청 RemoteMediator 구현을 만듭니다. Key 유형과 Value 유형은 동일한 네트워크 데이터 소스의 PagingSource를 정의하는 경우와 동일하다. @OptIn(ExperimentalPagingA..