Google Image Search is a simple way to search for pictures and share them with your friends. You can apply some basic filters and see a nice view.
Time spent: ~12 hours spent in total.
The following required functionality is completed:
- User can enter a search query that will display a grid of image results from the Google Image API.
- User can click on "settings" which allows selection of advanced search options to filter results
- User can configure advanced search filters such as:
- Size (small, medium, large, extra-large)
- Color filter (black, blue, brown, gray, green, etc...)
- Type (faces, photo, clip art, line art)
- Site (espn.com)
- Subsequent searches will have any filters applied to the search results
- User can tap on any image in results to see the image full-screen
- User can scroll down “infinitely” to continue loading more image results (up to 8 pages)
The following optional features are implemented:
- Robust error handling, check if internet is available, handle error cases, network failures
- Use the ActionBar SearchView or custom layout as the query box instead of an EditText
- User can share an image to their friends or email it to themselves
- Replace Filter Settings Activity with a lightweight modal overlay
- Improve the user interface and experiment with image assets and/or styling and coloring
The following bonus features are implemented:
- Use the StaggeredGridView to display improve the grid of image results
- User can zoom or pan images displayed in full-screen detail view
The following extra features are also implemented:
- Automatic alerting to network failure in activity.
- Persistence of settings to sqllite.
- Android Async HTTP - Simple asynchronous HTTP requests with JSON parsing
- Picasso - Image loading and caching library for Android
- [Material Dialogs] (https://github.com/afollestad/material-dialogs) - clean modal design
- [Etsy Staggered Grid View] (https://github.com/etsy/AndroidStaggeredGrid) - clean staggered grid view
- [TouchImageView] (https://github.com/MikeOrtiz/TouchImageView) - clean implementation of touch view for images