상세 컨텐츠

본문 제목

코트린 프로젝트17

JSP·자바·코틀린

by 김일국 2022. 6. 3. 16:39

본문

이번 포스트는 작업량이 좀 많습니다.

신규작업소스(스프링부트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

관련글 더보기

댓글 영역