Skip to content

ydxb7/FindArticles

Repository files navigation

FindArticles

FindArticles finds the articles the user interested in the new york times. The app utilizes the New york times Database API to search and display articles.

Time spent: A week spent in total

Video Walkthrough

Here's a walkthrough of the app:

Video Walkthrough 1

User Stories

I use Java to compelete this Application. The following required functionality is completed:

  • User can scroll through all the articles find from the New York Times Database API
  • User can Endlessly get the data in the server to find their interested articles.
  • User can According to the their interesting topic to show the articles and store these information use preference .
  • Even though there is no network available, the user can also see the same articles list as they loaded last time.
  • Use the DatePicker to pick the begin date of the articles list.
  • User can use SearchView to find their interested articles by using keywords.
  • For each article displayed, user can see the details of the articles.
    • Use WebView to display the selected article.
    • User can share the article's url.
  • Layout is optimized with the RecyclerView pattern.

The following optional features are implemented:

  • User can swipe-to-refresh latest stream to get the latest articles.
  • The lateset articles will be stored in the Realm Database.
  • Display a loading indicator during loading.
  • Display the empty view for empty results.
  • Improved the user interface through styling and coloring.
    • Use different view type for article with image and without image.
    • Add margin or padding for each elements in article item.
    • Custom the background the color of article list.

The following bonus features are implemented:

  • Use ViewModel and LiveData to optimize the Architecture.
  • Use BindingAdapter and data transform to bind the data and reduce codes.
  • Use Realm Database and LiveData to generate our database and get the data in the database.
  • Use async-http to fetch the data online.
  • Allow user to view details of the article using WebView to show the web page within a separate fragment.
  • Use a DialogFragment to show the preference settings.
  • Allow users to share the url of the articles.
  • Apply the popular Data-binding library to reduce boilerplate code.
  • Apply the images of the articles using Glide transformations.
  • Use the CardView to show the articles list.
  • Use the SwipeRefreshLayout allow user to pull to refresh the articles.

The following additional features are implemented:

  • Use Fragment
  • Use navigation
  • Add launch icon

Open-source libraries used

  • Realm Database
  • ViewModel
  • LiveData
  • Glide
  • Async Http
  • CardView
  • Parceler
  • Preference
  • DatePicker

License

Copyright 2019 Yini Duanmu

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages