Code Monkey home page Code Monkey logo

wanted-pre-onboarding-android's Introduction

원티드 프리온보딩 Android 코스 사전과제

News 앱 만들기

  • dev 브랜치에 기능 개발 완료

Feature 🌟

1. News 목록

  • RecyclerView를 사용한 뉴스 리스트 출력
  • 기사 클릭 시, 상세 기사 화면으로 이동
  • Room DB를 사용한 기사 저장 기능

2. News 카테고리

  • 카테고리 버튼 클릭 시, 카테고리별 기사 리스트를 출력하는 화면으로 이동
  • 기사 클릭 시, 상세 기사 화면으로 이동 (News 목록과 동일)

3. Saved 목록

  • 저장한 기사 목록 출력

Tech Stack 🛠️

Language

  • Kotlin

Architecture

  • MVVM (DataBinding, ViewBinding)

DataBase

  • RoomDB

DI

  • Hilt

Image Library

  • Glide

Network

  • Retrofit2
  • Coroutine

Architecture 💡

adapter

  • RecyclerView의 Adapter, ViewHolder 구성

data

  • Entity, Dao, Repository, DataSource 구성
  • Repository는 LocalDataSource, RemoteDataSource의 진입점
  • DataSource: Network, Database 접근 함수 분리

di

  • DatabaseModule: Room Database와 Dao를 제공
  • NetworkModule: Retrofit과 Okhttp 제공

model

  • Article, News Data class

network

  • News api 인터페이스 정의

ui

  • Activity, Fragment 구성
  • MainActivity는 Bottom Navigation을 관리하며, 네비게이션은 CategoryFragment, SavedFragment, TopNewsFragment를 열 수 있음
  • ArticleDetailActivity는 뉴스 상세 화면을 담당
  • CategoryListActivity는 특정 카테고리 별 뉴스 리스트 화면 담당

util

  • VerticalItemDecorator: RecyclerView item의 수직 여백 설정을 위한 클래스
  • NetworkResult: Network 응답 handling을 위한 추상 클래스
  • BaseDiffUtil: RecyclerView 성능 향상을 위한 Utility 클래스 (기존의 리스트와 비교해 업데이트가 필요한 item만 필터링)

viewmodel

  • Network, Database 접근 기능을 UI 코드와 분리하기 위함

wanted-pre-onboarding-android's People

Contributors

gyurim avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.