Project 2 - New York Times Article Search
This is an android app that allows a user to search for images on web using simple filters. The app utilizes New York Times Search API.
Time spent: 12 hours spent in total
User Stories
The following required functionality is completed:
- [x] 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.
- [x] User can click on "settings" which allows selection of advanced search options to filter results
- [ ] User can configure advanced search filters such as:
- [x] Begin Date (using a date picker)
- [x] News desk values (Arts, Fashion & Style, Sports)
- [x] Sort order (oldest or newest)
- [x] Subsequent searches have any filters applied to the search results
- [x] User can tap on any image in results to see the full text of article full-screen
- [x] 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
- [x] Used the ActionBar SearchView or custom layout as the query box instead of an EditText
- [x] User can share an article link to their friends or email it to themselves
- [x] 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:
- [x] Use the RecyclerView with the
StaggeredGridLayoutManager
to display improve the grid of image results
- [ ] For different news articles that only have text or only have images, use Heterogenous Layouts with RecyclerView
- [ ] Apply the popular Butterknife annotation library to reduce view boilerplate.
- [x] Use Parcelable instead of Serializable using the popular Parceler library.
- [ ] Leverage the popular GSON library to streamline the parsing of JSON data.
- [x] Replace Picasso with Glide for more efficient image rendering.
The following additional features are implemented:
- [ ] List anything else that you can get done to improve the app functionality!
Video Walkthrough
Here's a walkthrough of implemented user stories:
GIF created with LiceCap.
Open-source libraries used
- Android Async HTTP - Simple asynchronous HTTP requests with JSON parsing
- Picasso - Image loading and caching library for Android