Skip to content

Latest commit

 

History

History
66 lines (50 loc) · 3.96 KB

README.md

File metadata and controls

66 lines (50 loc) · 3.96 KB

GitHub Cards Preview

News Planet

News Planet connects to the News API to retrieve Breaking News Feed based on the particular endpoint used and then displays them as a list.

App Compatibility

Android device running with Android OS 6.0 (API Level 23) or above. Designed for Phones and NOT for Tablets.

Getting Started

  • Register for the Developer API Key from the News API Platform. Registration is free of cost.
  • Create a new package named myApplication.utils in the Project's root folder.
  • Define a property named API_KEY and assign it the value of the API Key obtained from the Registration process.
  • If the above API Key is not defined, then the App will use the default "test" API Key which is heavily rate-limited. Whenever the rate-limit is hit, the app may crash or not display proper results.
  • The Developer API Key is also rate-limited, but not as limited as the default "test" API Key.

Rubric followed for the Project

  • App queries the newsapi.org API to fetch news stories and properly parses the JSON Response.
  • Each List item displayed by the App for the News stories should contain relevant text and information about the story. This includes -
    • Title of the article.
    • Source name of the article if present.
    • Published date and time of the article if present.
  • Default text field remains empty when any of the above parsed information is not available.
  • Networking operations are handled by Retrofit library.
  • Clicking on a story, redirects and opens the story in user's browser.
  • On device rotation
    • The layout remains scrollable.
    • The app saves state and restores the list back to the previously scrolled position.
    • The UI properly adjusts so that all contents of each list item is still visible and not truncated/overlapped.
  • When new News data is fetched, the main screen properly updates the new data.
  • Check whether connected to internet or not. Also, validate for any occurrence of bad server response or lack of response.

Things explored/developed in addition to the above defined Rubric

  • Used RecyclerView in place of ListView (to display the News stories) for its advantages in performance and easy placeholders for custom item decoration.
  • CardView for displaying the News stories content for each News List items.
  • List of libraries used:
  • Custom Fonts for TextViews using Google Fonts.
  • Explored CoordinatorLayout.
  • Used RecyclerView in a SwipeRefreshLayout to use the integrated Progress/Refresh indicator.
  • Vector graphics editing was done using Figma.

Design

Day Mode

Breaking News Page Search News Page Bookmarks Page

Night Mode

Breaking News Page Search News Page Bookmarks Page

Install