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
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:
- 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
- Use Parcelable instead of Serializable using the popular Parceler library.
- Leverages the data binding support module to bind data into layout templates.
- Replace all icon drawables and other static image assets with vector drawables where appropriate.
- Replace Picasso with Glide for more efficient image rendering.
- Uses retrolambda expressions to cleanup event handling blocks.
- Leverages the popular GSON library to streamline the parsing of JSON data.
- Leverages the Retrofit networking library to access the New York Times API.
- Replace the embedded
WebView
with Chrome Custom Tabs using a custom action button for sharing. (2 points)
The following additional features are implemented:
- Add another horizontal RecyclerView with News desk categories
- Add Calligraphy to use cool fonts!
Here's a walkthrough of implemented user stories:
GIF created with LiceCap.
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.
- 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!