yoavgray / nytimes-codepath-2

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Project 2 - NYTArticleFinder

NYTArticleFinder is an android app that allows a user to search for articles on web using simple filters. The app utilizes New York Times Search API.

Time spent: 26 hours spent in total

User Stories

The following required functionality is completed:

  • User can search for news article by specifying a query and launching a search. Search displays a grid of image results from the New York Times Search API.
  • User can click on a FloatingActionButton which allows selection of advanced search options to filter results
  • User can configure advanced search filters such as:
    • Begin Date (using a date picker)
    • End Date !!!
    • News desk values (Arts, Fashion & Style, Sports)
    • Sort order (oldest or newest)
  • Subsequent searches have any filters applied to the search results
  • User can tap on any image in results to see the full text of article full-screen
  • User can scroll down to see more articles. The maximum number of articles is limited by the API search.

The following optional features are implemented:

  • Implements robust error handling, check if internet is available, handle error cases, network failures
  • Used the ActionBar SearchView or custom layout as the query box instead of an EditText
  • User can share an article link to their friends or email it to themselves
  • Replaced Filter Settings Activity with a lightweight modal overlay
  • Improved the user interface and experiment with image assets and/or styling and coloring

The following bonus features are implemented:

The following additional features are implemented:

  • Add another horizontal RecyclerView with News desk categories
  • Add Calligraphy to use cool fonts!

Video Walkthrough

Here's a walkthrough of implemented user stories:

Video Walkthrough

GIF created with LiceCap.

Notes

I had less time than in the first project but I did most of the things. I encountered some problems with Retrofit so I hope to implement it in the next project. I was super excited to learn about the Views data binding and i'm definitely going to use that.

Open-source libraries used

  • Parceler - Android Parcelables made easy through code generation
  • Calligraphy - Use cool fonts very easily!
  • OkHttp - An HTTP & HTTP/2 client for Android and Java applications
  • Glide - Image loading and caching library for Android
  • ButterKnife - View Binding for android
  • Gson - Java library that can be used to convert Java Objects into their JSON representation
  • Wasabeef - Tweak images downloaded from Glide!

About


Languages

Language:Java 100.0%