- dev 브랜치에 기능 개발 완료
- RecyclerView를 사용한 뉴스 리스트 출력
- 기사 클릭 시, 상세 기사 화면으로 이동
- Room DB를 사용한 기사 저장 기능
- 카테고리 버튼 클릭 시, 카테고리별 기사 리스트를 출력하는 화면으로 이동
- 기사 클릭 시, 상세 기사 화면으로 이동 (News 목록과 동일)
- 저장한 기사 목록 출력
- Kotlin
- MVVM (DataBinding, ViewBinding)
- RoomDB
- Hilt
- Glide
- Retrofit2
- Coroutine
- RecyclerView의 Adapter, ViewHolder 구성
- Entity, Dao, Repository, DataSource 구성
- Repository는 LocalDataSource, RemoteDataSource의 진입점
- DataSource: Network, Database 접근 함수 분리
- DatabaseModule: Room Database와 Dao를 제공
- NetworkModule: Retrofit과 Okhttp 제공
- Article, News Data class
- News api 인터페이스 정의
- Activity, Fragment 구성
- MainActivity는 Bottom Navigation을 관리하며, 네비게이션은 CategoryFragment, SavedFragment, TopNewsFragment를 열 수 있음
- ArticleDetailActivity는 뉴스 상세 화면을 담당
- CategoryListActivity는 특정 카테고리 별 뉴스 리스트 화면 담당
- VerticalItemDecorator: RecyclerView item의 수직 여백 설정을 위한 클래스
- NetworkResult: Network 응답 handling을 위한 추상 클래스
- BaseDiffUtil: RecyclerView 성능 향상을 위한 Utility 클래스 (기존의 리스트와 비교해 업데이트가 필요한 item만 필터링)
- Network, Database 접근 기능을 UI 코드와 분리하기 위함