All Projects → abhinav272 → Newsapp

abhinav272 / Newsapp

A Sample News App written in Kotlin using Android Architecture Components, MVVM

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Newsapp

Clean-MVVM-NewsApp
Android News app developed using Clean + MVVM architecture
Stars: ✭ 52 (-70.95%)
Mutual labels:  rxjava2, retrofit2, livedata, room-persistence-library
Foodium
It simply loads Posts data from API and stores it in persistence storage (i.e. SQLite Database). Posts will be always loaded from local database. Remote data (from API) and Local data is always synchronized.
Stars: ✭ 1,940 (+983.8%)
Mutual labels:  retrofit2, livedata, room-persistence-library, android-architecture-components
Pursuit-Core-Android
Pursuit Core Android
Stars: ✭ 45 (-74.86%)
Mutual labels:  picasso, rxjava2, retrofit2, livedata
AndroidCleanArchitecture
Android Project with clean android architecture contain Dagger, Retrofit, Retrofit, Android archtecture components, LiveData with MVVM architecture
Stars: ✭ 22 (-87.71%)
Mutual labels:  rxjava2, retrofit2, livedata, android-architecture-components
Android Architecture Components Kotlin
Clean code App with Kotlin and Android Architecture Components
Stars: ✭ 23 (-87.15%)
Mutual labels:  retrofit2, livedata, room-persistence-library, android-architecture-components
Base Mvvm
App built to showcase basic Android View components like ViewPager, RecyclerView(homogeneous and heterogeneous items), NavigationDrawer, Animated Vector Drawables, Collapsing Toolbar Layout etc. housed in a MVVM architecture
Stars: ✭ 18 (-89.94%)
Mutual labels:  rxjava2, retrofit2, livedata, room-persistence-library
searchi
Demo of PagedListAdapter, PageKeyedDataSource, LiveData, ViewModel in Kotlin
Stars: ✭ 13 (-92.74%)
Mutual labels:  picasso, rxjava2, retrofit2, livedata
Fountain
Android Kotlin paged endpoints made easy
Stars: ✭ 175 (-2.23%)
Mutual labels:  rxjava2, retrofit2, livedata, room-persistence-library
Moviehub
Showcases popular movies, tv shows, and people from The Movie Database
Stars: ✭ 325 (+81.56%)
Mutual labels:  rxjava2, picasso, retrofit2
News Sample App
A sample news app which demonstrates clean architecture and best practices for developing android app
Stars: ✭ 334 (+86.59%)
Mutual labels:  rxjava2, retrofit2, livedata
Mvvmsmart
基于谷歌最新AAC架构,MVVM设计模式的一套快速开发库,整合ViewModel+Lifecycles+Navigation+DataBinding+LiveData+Okhttp+Retrofit+RxJava+Glide等主流模块,满足日常开发需求。使用该框架可以快速开发高质量、易维护的Android应用。 项目组会持续维护,请放心使用.欢迎Start并Fork交流.
Stars: ✭ 382 (+113.41%)
Mutual labels:  rxjava2, retrofit2, livedata
Android Clean Architecture Mvvm Dagger Rx
Implemented by Clean Architecture, Dagger2, MVVM, LiveData, RX, Retrofit2, Room, Anko
Stars: ✭ 138 (-22.91%)
Mutual labels:  picasso, retrofit2, livedata
Kotlin Android Mvvm Starter
Android Kotlin Starter is a starter project which implements MVVM Pattern.
Stars: ✭ 276 (+54.19%)
Mutual labels:  rxjava2, picasso, retrofit2
Paonet
【MVVM+RxJava2+AspectJ】泡网第三方客户端,网站主页:http://www.jcodecraeer.com/index.php
Stars: ✭ 374 (+108.94%)
Mutual labels:  rxjava2, retrofit2, room-persistence-library
Kotlin Android Mvp Starter
Create/Generate your kotlin MVP projects easily
Stars: ✭ 270 (+50.84%)
Mutual labels:  rxjava2, picasso, retrofit2
Instant Weather
An Android weather application implemented using the MVVM pattern, Retrofit2, Dagger2, LiveData, ViewModel, Coroutines, Room, Navigation Components, Data Binding and some other libraries from the Android Jetpack.
Stars: ✭ 473 (+164.25%)
Mutual labels:  retrofit2, livedata, room-persistence-library
StackOverFlowApi
working with Stack OverFlow Api
Stars: ✭ 24 (-86.59%)
Mutual labels:  rxjava2, retrofit2, livedata
Mvvmarms
Android MVVM Architecture Components based on MVPArms and Android Architecture Components.
Stars: ✭ 425 (+137.43%)
Mutual labels:  rxjava2, retrofit2, livedata
Offlinesampleapp
Sample Offline-First MVVM app that uses Android Priority Job Queue, Room, Retrofit2, LiveData, LifecycleObserver, RxJava2, Dagger Android
Stars: ✭ 653 (+264.8%)
Mutual labels:  rxjava2, retrofit2, livedata
android-live-broadcasts
Live broadcast receiver library for Android
Stars: ✭ 19 (-89.39%)
Mutual labels:  rxjava2, livedata, android-architecture-components

Android Architecture Sample

Android Architecture Components were announced in Google I/O 2017 This is just a sample app explaining the new Architecture Guidelines written in Kotlin. This sample app is powered by NewsAPI.

Components Used

About App

This app uses NewsAPI to get various sources and each source can provide major headlines. It uses Retrofit 2 to fetch news sources and news headlines from the API and displays in a RecyclerView. It uses Room Persistence Library to provide offline functionality App first loads the data from DB and then checks for fresh data from API, API is only called if DB data is empty or expired The main aim of this sample app is show how to use the new Architecture Guidelines with Kotlin.

If you want to run:

  • Go to NewsAPI and generate an API key (It's only 2 steps!)
  • Put the API key at the bottom of the gradle.properties newsAPIKey = "YOUR_API_KEY"
  • Run the app

Architecture

The app uses ViewModel to abstract the data from UI and Repository as single source of truth for data. Repository fetch the data from database and shows, while also checks if the data is old. If the data is old or database does not contain any data (such as first launch) it fetches data from Web Service and saves the data into database.

Architecture


Screenshots

NewsApp Main Page NewsApp Main Page NewsApp Main Page

Future Roadmap

  • Room Persistence Library for offline support
  • Support for Launguage, Country and Category selection
  • Write test cases

Proudly 💪 made in Kotlin

License


The MIT License (MIT)

Copyright (c) 2017 Abhinav Sharma

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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].