💥 A playground with the latest techs
This project is a playground to clutch MVVM pattern, Architecture Components, Room and others. This project actively uses Room Persistence Library to show feed in case no internet connection. Along with Lifecycle Components, API datum are consistently observed to able to detect whether or not there is any update or change. The app also benefits from PreferenceScreen to display news according to users' preferences. You can choose country, category, source or languages for different lists.
This repo is still under maintenance.
This project is powered by NewsAPI.org. To get your own API key, please visit NewsAPI.org
- Top Headlines, Everything and Sources are listed.
- Allowed users to switch between fragments using Bottom Navigation View and ViewPager.
- Integrated Room Persistence Library to list offline data in the event of no internet connection.
- Added Preferences Screen to display diverse news according to user's selection.
- Added Day/Night Mode.
- Implemented Custom News UI to list news from selected news source which takes place in Sources section.
- Implemented Search feature for Everything section and thus user can search anything in the app.
- Performed UI tests and passed successfully..
- Implement Filter feature for Sources section and thus user can filter results.
- Implement Firebase and Firestore to send push notifications.
- Implement endless scroll for more items.
- MVVM Pattern
- Architecture Components
- BindingAdapter
- ConstraintLayout
- Retrofit2
- RxJava2
- Glide v4
- GlideModule
- Timber
- LeakCanary
- OkHttp
- DataBinding
- Room Persistence Library
- PreferenceScreen v14
- ViewPagerTransforms
- Stetho
- Android About Page
- Espresso - Testing
- Materialish Progress
- Material Dialogs
- About Libraries
- Firebase & Firestore
App icon based on:
Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY
MIT License
Copyright (c) 2018 Nuh Koca
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.