이번 포스트는 작업량이 좀 많습니다.
신규작업소스(스프링부트API): https://github.com/kimilguk/shop-api
신규작업소스(안드로이드앱): https://github.com/kimilguk/shop-app
### 20220603(금) 상품 리스트 내용 출력용 RecyclerView(상하스크롤) 만들기4
- ProductListUI.kt 생성: ProductListFragment + 리사이클러 뷰 로 구성된 앙코 UI클래스
- ProductListFragment.kt 의 fun onCreateView 에서 ProductListUI 사용
### 20220602(목) 상품 리스트 내용 출력용 RecyclerView(상하스크롤) 만들기3
- RecyclerView에 ProductListPagedAdapter를 바인딩하는 ProductListViewModel 수정.
- ProductDetailActivity.kt 액티비티인 상품상세 페이지는 나중에 작업예정
### 20220601(수) 상품 리스트 내용 출력용 RecyclerView(상하스크롤) 만들기2
- 전처리, 스프링부트 API 에서 정의한 상품 판매 상태값 나열값을 정의한 ProductStatus.kt 싱글톤 상수생성
- 리사이클러뷰에 들어갈 상하스크롤 시 데이터를 구현한 ProductListPagedAdapter 어댑터클래스 생성(아래)
- 작업1, 리사이클러뷰에 들어갈 상하스크롤 시 데이터를 구현한 페이지드리스트어댑터 클래스
- 작업2, 상품이미지를 어댑터뷰홀더에 바인딩 시키기 위한 bumptech.glide 외부 모듈 추가
### 20220531(화) 상품 리스트 내용 출력용 RecyclerView(상하스크롤) 만들기1
- 앱수준의 build.gradle에 리사이클러뷰와 페이징 라이브러러 사용 의존성 모듈추가
- 스프링부트에서 반환받은 상품값을 안드로이드에서 처리하는 api를 api/response/ProductListItemResponse.kt 생성
- 스프링부트API 쇼핑 기능에 접근하는 인터페이스인 ShopApi에 @GET으로 상품리스트에 접근하는 코드 추가
- 필요한 기능 클래스: ViewHolder(뷰유지), RecyclerView.Adapter -> PagedListAdapter(페이징구현)
- 페이징 기능 클래스: PageKeyedDataSource(초기데이터, next데이터, prev데이터)
- 위 클래스를 상속한 ProductListItemDataSource 클래스 생성.
- 페이징 데이터 빌더 인터페이스: LiveDataPagedListBuilder(최종데이터인 LiveData<PagedList>를 만드는 인터페이스)
- 최종데이터인 LiveData<PagedList>를 만드는 ProductListItemUI 클래스 생성.
아래 결과 앱 화면(남성의류가 카테고리 1 번이다.)
위 상품 리스트 내용은 어댑터의 뷰홀더에서 정의 된다.(아래)
위 상품을 클릭했을 때 액션처리는 ProductListViewModel.kt 에서 구현한다.(아래)
위 결과화면에서 상품이 없을때는 ProductListUI.kt 에서 출력을 구현 한다.(아래)
Ps. 아래는 위 내용과 상관없는 내용 입니다.
#최초실행시 기존테이블 삭제(아래)
#spring.jpa.hibernate.ddl-auto=create-drop
#2번째 실행부터는 기존테이블 삭제하지 않고 업데이트만처리(아래)
spring.jpa.hibernate.ddl-auto=update
스프링부트2 프로젝트를 스프링부트3로 마이그레이션_1/3 (1) | 2024.01.28 |
---|---|
헤로쿠 클라우드플랫폼 기존에 사용하던 스택 업그레이드 (0) | 2022.08.19 |
코틀린 프로젝트16 (0) | 2022.05.30 |
코틀린 프로젝트15 (0) | 2022.04.04 |
코틀린 프로젝트14 (0) | 2022.04.03 |
댓글 영역