All Projects → AkshayChordiya → Newsappmvi

AkshayChordiya / Newsappmvi

Licence: mit
News app 🗞️ showcasing MVI architecture combined with Architecture Components

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Newsappmvi

Livedata Testing
TestObserver to easily test LiveData and make assertions on them.
Stars: ✭ 358 (+752.38%)
Mutual labels:  architecture-components
Posts
A sample Android app using Kotlin, Dagger 2, RxJava, RxAndroid, Retrofit and Android Architecture Components with a modular setup & effective networking
Stars: ✭ 599 (+1326.19%)
Mutual labels:  architecture-components
Kodein Mvvm
Example app using Kodein for dependency injection with MVVM and Architecture Components
Stars: ✭ 26 (-38.1%)
Mutual labels:  architecture-components
Wanandroid
🏄 基于Architecture Components dependencies (Lifecycles,LiveData,ViewModel,Room)构建的WanAndroid开源项目。 你值得拥有的MVVM快速开发框架:https://github.com/jenly1314/MVVMFrame
Stars: ✭ 410 (+876.19%)
Mutual labels:  architecture-components
Archapp
Simple Android app to show how to design a multi-modules MVVM Android app (fully tested)
Stars: ✭ 551 (+1211.9%)
Mutual labels:  architecture-components
Movienight
MovieNight is a sample Android application that uses the clean architecture approach and is written in Kotlin.
Stars: ✭ 744 (+1671.43%)
Mutual labels:  architecture-components
Android Architecture Components Kotlin
Sample used to practice Kotlin and Android Architecture Components.
Stars: ✭ 326 (+676.19%)
Mutual labels:  architecture-components
Market tech challenge
A best use case Android application sample with latest patterns. This app is developer as part of Kariyer.net Tech Challenge.
Stars: ✭ 31 (-26.19%)
Mutual labels:  architecture-components
Changedetection
Automatically track websites changes on Android in background.
Stars: ✭ 563 (+1240.48%)
Mutual labels:  architecture-components
Vegginner
App to change our consumption habits, fight against climate change and take part in relieving the world in hunger in our everyday life.
Stars: ✭ 19 (-54.76%)
Mutual labels:  architecture-components
Gank
干货集中营 app 安卓实现,基于 RxFlux 架构使用了 RxJava、Retrofit、Glide、Koin等
Stars: ✭ 444 (+957.14%)
Mutual labels:  architecture-components
Lives
Lives - Android LiveData Extensions for Kotlin and Java
Stars: ✭ 509 (+1111.9%)
Mutual labels:  architecture-components
News
A sample News 🗞 app built using Modern Android Development [Architecture Components, Coroutines, Retrofit, Room, Kotlin, Dagger]
Stars: ✭ 774 (+1742.86%)
Mutual labels:  architecture-components
Cc
业界首个支持渐进式组件化改造的Android组件化开源框架,支持跨进程调用。Componentize your android project gradually.
Stars: ✭ 3,863 (+9097.62%)
Mutual labels:  architecture-components
Ribble
Simple Dribbble Client using Dribbble API, fully written in Kotlin 😱 ❤️
Stars: ✭ 872 (+1976.19%)
Mutual labels:  architecture-components
News Sample App
A sample news app which demonstrates clean architecture and best practices for developing android app
Stars: ✭ 334 (+695.24%)
Mutual labels:  architecture-components
Reactive Mvvm Android
My way to MVVM using KotlinX Coroutines and Android data-binding
Stars: ✭ 626 (+1390.48%)
Mutual labels:  architecture-components
Star Wars Shop
Simple project with clean architecture and android lifecycle
Stars: ✭ 37 (-11.9%)
Mutual labels:  architecture-components
Blockchain Tracker
A blockchain market tracking app. Example implementation of reactive clean architecture and testing.
Stars: ✭ 30 (-28.57%)
Mutual labels:  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 (-57.14%)
Mutual labels:  architecture-components

NewsApp 🗞️

GitHub license

The news app is based upon NewsSampleMVVM but showcases MVI architecture pattern combined with power of ViewModel and LiveData, thanks to Roxie library

What's the app about?

It's a simple news app 🗞️which uses NewsAPI to fetch top news headlines from the API. The main aim of this app is to show how MVI helps in managing state combined with power of ViewModel and LiveData to make our lives easier.

The idea is to add new features With time to build a full-fledge app while making it easier to understand the codebase.

Steps to run 🏃

  • Go to NewsAPI and generate an API key (It's only 2 steps!)
  • Create new file -> credentials.properties
  • Add the API key as shown below: NEWS_API_KEY = "YOUR_API_KEY"
  • Build and run the app
  • Enjoyyyyy 🎉

Components used

  • Architecture Components [ViewModel, LiveData, Lifecycle]
  • Roxie library for MVI implementation
  • Dagger for Dependency Injection

Dependency Graph 🔪

The following diagram shows the dependency graph of the app.

News App Dependency Graph

Generated by Daggraph

Architecture

The app uses uni-directional flow of state of the app1 to have predictable state machine style architecture. It's inspired by MVVM and MVI hence it uses the following MVVM architecture while leveraging state management with MVI.

Architecture

Data flow1

The uni-directional pipeline for the flow of state.

Source: Building MVI apps with Roxie

Data flow

Testing

Super important and all the test cases will come soon.


Screenshots

NewsApp Main Page

Learn Architecture Components 📖

Trying to learn the new Architecture Components? I have wrote a series of articles to understand Android Architecture Components. Feel free to check it out to learn more.

Extra - Caster.io Course and Podcast


Contributing 💁

Please read CONTRIBUTING.md for contributions.

License

The MIT License (MIT)

Copyright (c) 2019 Akshay Chordiya

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].