This Android application allows a user to find old articles using the New York Times Search API.
Time spent: 15 hours spent in total
Completed user stories:
- Required: User can enter a search query that will display a grid of news articles using the thumbnail and headline from the New York Times Search API
- Required: User can click on "filter" icon which allows selection of advanced search options to filter articles.
- Required: User can configure advanced search filters such as: begin date, sort order and news desk values(categories)
- Required: Subsequent searches will have any filters applied to the search results.
- Required: User can tap on any article in results to view the contents in an embedded browser.
- Required: User can scroll down "infinitely" to continue loading more news articles. The maximum number of articles is limited by the API search.
Completed advanced user stories:
- Optional: Robust error handling, check if internet is available, handle error cases, network failures.
- Optional: Use the ActionBar SearchView or custom layout as the query box instead of an EditText.
- Optional: User can share a link to their friends or email it to themselves.
- Optional: Replace Filter Settings Activity with a lightweight modal overlay.
- Optional: Improve the user interface and experiment with image assets and/or styling and coloring.
- Optional: Use the RecyclerView with the StaggeredGridLayoutManager to display improve the grid of image results.
- Optional: For different news articles that only have text or have text with thumbnails, use Heterogenous Layouts with RecyclerView.
- Optional: Apply the popular ButterKnife annotation library to reduce view boilerplate.
- Optional: Use Parcelable instead of Serializable using the popular Parceler library.
- Optional: Replace all icon drawables and other static image assets with vector drawables where appropriate.
- Optional: Leverage the data binding support module to bind data into one or more activity layout templates.
- Optional: Replace Picasso with Glide for more efficient image rendering.
- Optional: Switch to using retrolambda expressions to cleanup event handling blocks.
- Optional: Leverage the popular GSON library to streamline the parsing of JSON data.
- Optional: Consume the New York Times API using the popular Retrofit networking library instead of Android Async HTTP.
Enhancements:
- Optional: Included Chrome Custom tabs instead of Webview.
Here's a walkthrough of implemented user stories:
GIF created with LiceCap.