Giter Club home page Giter Club logo

millietest's Introduction

MillieTest

기술 요건

  • kotlin
  • Clean Architecture, MVVM, MVP, MVI 중에 하나 사용
  • RX, Coroutine 중에 하나 이상 사용
  • Retrofit2 사용 추천
  • Dagger Hilt 사용 추천

요구 조건

  1. News API – Search News and Blog Articles on the Web 통해 api키를 발급 받습니다.
  2. https://newsapi.org/v2/top-headlines?country=kr&apiKey={api-key} 이 api를 통하여 raw데이터를 가져옵니다.
  3. 메인 화면에는 일반 폰에서는 1개의 row를 사용하여 아래로 스크롤 되는 UI를 작성합니다.
  4. 가로가 600dp 이상 일때는 3개의 row를 사용하여 아래로 스크롤 되는 UI를 작성합니다.
  5. api를 통해 받은 데이터는 로컬에 저장하여 api call이 실패하거나 오프라인 상태일때 저장된 데이터를 사용하여 UI를 표시합니다.
  6. urlToImage 의 이미지 데이터 역시 로컬에 저장하여 오프라인 상태일때 저장된 데이터를 사용하여 이미지를 표시합니다. 또는 온라인 상태 일때도 저장된 데이터가 있는 경우 사용합니다.
  7. 한개의 셀에 표시할 데이터는 titleurlToImagepublishedAt 입니다. 그외의 추가 ui는 자유롭게 표시해주세요.
  8. 셀을 터치 시에 webView 가 전체를 덮는 Activity 를 표시합니다.
  9. 물리 백버튼 이벤트에서 webView activity를 닫습니다.
  10. 한번 진입했던 cell에는 title 의 text 컬러를 red 로 설정합니다.
  • 이외의 ui, 인터렉션 등은 자유롭게 표시해 주세요.

선택한 기술 스펙

  • kotlin
  • Clean Architecture By Robert C. Martin (Uncle Bob)
  • Coroutine
  • Retrofit2
  • Dagger Hilt
  • Room

data flow

Architecture

적용된 클린 아키텍처 의존성 방향과 흐름을 간단하게 이미지화 한 그림입니다. 해당 프로젝트는 마틴의 클린 아키텍쳐를 따라 만들어 졌습니다.

  • Domain
  • Data
  • Presentation 크게 셋으로 나눠지며 각 역할에 맞게 network와 local(database) 외 필요한 데이터를 모듈화 했습니다.

millietest's People

Contributors

taiyoungkim 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.