dudwls901 / wanted-pre-onboarding-Android

프리 온보딩 사전 과제 뉴스 앱

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

wanted-pre-onboarding-Android

프리 온보딩 사전 과제 뉴스 앱

TopNews

topnewstopnews_detail

Categories

categorycategory_listcategory_detail

Saved News

saved_emptysaved_listsaved_detail

Structure

news
├── data
│   ├── local
│   │   ├── NewsDao.kt
│   │   ├── NewsDatabase.kt
│   │   └── repository
│   │       ├── SavedNewsRepository.kt
│   │       └── SavedNewsRepositoryImpl.kt
│   ├── model
│   │   ├── Category.kt
│   │   └── News.kt
│   └── remote
│       ├── ApiRequestFactory.kt
│       ├── api
│       │   └── NewsApi.kt
│       └── repository
│           ├── NewsRepository.kt
│           └── NewsRepositoryImpl.kt
├── global
│   ├── Constants.kt
│   └── base
│       └── BaseFragment.kt
├── util
│   └── BindingAdapter.kt
├── view
│   ├── MainActivity.kt
│   ├── adapter
│   │   ├── CategoryListAdapter.kt
│   │   └── NewsListAdapter.kt
│   ├── categories
│   │   ├── NewsCategoryFragment.kt
│   │   └── NewsListInCategoryFragment.kt
│   ├── newsdetails
│   │   └── NewsDetailFragment.kt
│   ├── newslist
│   │   └── NewsListFragment.kt
│   └── saved
│       └── SavedNewsListFragment.kt
└── viewmodel
    ├── NewsListIntCategoryViewModel.kt
    ├── NewsListViewModel.kt
    ├── SavedNewsListViewModel.kt
    └── TopNewsListViewModel.kt

TODO

  • Paging()
  • Multiple Backstack(Navigation-Bottomnavigationview)(해결)
    • 탭의 첫 페이지에도 '<-'버튼 생성되는 이슈 (해결)

      • appBarConfiguration에 최상위 프래그먼트들 설정
      • appBarConfiguration = AppBarConfiguration(navController.graph)
      • appBarConfiguration = AppBarConfiguration(setOf(R.id.newsListFragment, R.id.newsCategoryFragment, R.id.savedNewsListFragment))
    • Top News 탭에서 newsDetail 프래그먼트까지 활성화하고 Categories 탭으로 넘어간 후 다시 Top News 탭 클릭하면 화면은 newsDetail 프래그먼트이지만 탭은 여전히 Categories가 활성화되는 이슈(해결)

    issue

🪒Stacks

  • MVVM pattern
  • Navigation : 프래그먼트 관리
  • LiveData : 생명주기에 따른 데이터 관리
  • ViewModel : UI 데이터 저장 및 데이터 로직 캡슐화
  • Retrofit2, Gson, OkHttp3 : 네트워킹
  • Coroutine : 비동기 처리
  • DataBinding : 데이터와 뷰 연결
  • Room : 로컬 데이터베이스
  • Glide : 이미지 로드
  • Paging3 : 데이터 소스 페이징 처리

About

프리 온보딩 사전 과제 뉴스 앱


Languages

Language:Kotlin 100.0%