All Projects → Lajesh → Android Mvvm

Lajesh / Android Mvvm

Android MVVM + Retrofit + Dagger 2 + Room

Projects that are alternatives of or similar to Android Mvvm

Fountain
Android Kotlin paged endpoints made easy
Stars: ✭ 175 (+14.38%)
Mutual labels:  rxjava, architecture-components, retrofit2
AndroidMVPArchitecture
Android MVP architecture sample project with or without RxJava and Dagger2 and Kotlin
Stars: ✭ 78 (-49.02%)
Mutual labels:  rxjava, retrofit2, dagger2-android
AndroidCleanArchitecture
Android Project with clean android architecture contain Dagger, Retrofit, Retrofit, Android archtecture components, LiveData with MVVM architecture
Stars: ✭ 22 (-85.62%)
Mutual labels:  retrofit2, dagger2-android, architecture-components
paybill-manager
Your personal finance manager
Stars: ✭ 46 (-69.93%)
Mutual labels:  retrofit2, dagger2-android, architecture-components
flickr-android
A small sample app to showcase architecting app using Clean Architecture and MVVM
Stars: ✭ 25 (-83.66%)
Mutual labels:  retrofit2, dagger2-android, architecture-components
Star Wars Shop
Simple project with clean architecture and android lifecycle
Stars: ✭ 37 (-75.82%)
Mutual labels:  rxjava, architecture-components, retrofit2
Cateye
高仿猫眼电影App
Stars: ✭ 102 (-33.33%)
Mutual labels:  rxjava, retrofit2
Mvparms
⚔️ A common architecture for Android applications developing based on MVP, integrates many open source projects, to make your developing quicker and easier (一个整合了大量主流开源项目高度可配置化的 Android MVP 快速集成框架).
Stars: ✭ 10,146 (+6531.37%)
Mutual labels:  rxjava, retrofit2
Kotlin Mvvm Architecture
Android Architecture Design Patterns using Kotlin, MVVM, Dagger2, LiveData, Room, MediatorLiveData, NetworkBoundResources, Retrofit, AndroidX, ViewModels, Dependency Injection using Dagger2, Repository pattern.
Stars: ✭ 126 (-17.65%)
Mutual labels:  retrofit2, dagger2-android
Lgank
Beautiful client of Gank.io 优雅的干货客户端
Stars: ✭ 151 (-1.31%)
Mutual labels:  rxjava, retrofit2
Newspaper
An aggregated newspaper app containing news from 10+ local news publishers in Hong Kong. Made with ❤
Stars: ✭ 82 (-46.41%)
Mutual labels:  rxjava, retrofit2
Modular App Core
Core implementations for a modular Android App
Stars: ✭ 127 (-16.99%)
Mutual labels:  architecture-components, retrofit2
Dagger2
Kotlin Dagger2 example project
Stars: ✭ 145 (-5.23%)
Mutual labels:  rxjava, retrofit2
Mvpframes
整合大量主流开源项目并且可高度配置化的 Android MVP 快速集成框架,支持 AndroidX
Stars: ✭ 100 (-34.64%)
Mutual labels:  rxjava, retrofit2
Kotlinrxmvparchitecture
Clean MVP Architecture with RxJava + Dagger2 + Retrofit2 + Mockito + Fresco + EasiestGenericRecyclerAdapter using Kotlin. Includes Unit Tests(Kotlin Tests)!
Stars: ✭ 94 (-38.56%)
Mutual labels:  rxjava, retrofit2
Catchup
An app for catching up on things.
Stars: ✭ 1,690 (+1004.58%)
Mutual labels:  rxjava, architecture-components
Alfonz
Mr. Alfonz is here to help you build your Android app, make the development process easier and avoid boilerplate code.
Stars: ✭ 90 (-41.18%)
Mutual labels:  rxjava, architecture-components
Awesome Blogs Android
어썸블로그 ・ 개발 블로그 모음 ・ 개발 잡덕들을 위한 본격 고퀄리티 개발 블로그 큐레이션 서비스 🕵️‍♀️
Stars: ✭ 128 (-16.34%)
Mutual labels:  rxjava, retrofit2
Just Another Android App
An Android base app with loads of cool libraries/configuration NOT MAINTAINED
Stars: ✭ 1,654 (+981.05%)
Mutual labels:  rxjava, retrofit2
Retrofit rxjava mvp
Network uses Retrofit and RxJava With MVP architecture
Stars: ✭ 132 (-13.73%)
Mutual labels:  rxjava, retrofit2

Android MVVM Base Architecture for Enterprise Mobile Application using Architectural Components

Highlights

  1. MVVM Architectural pattern
  2. Offline Support
  3. Unit test demonstration using JUnit and Mockito
  4. UI unit test demonstartion using Espresso
  5. Gradle scripts for running sonarqube static code analysis, code coverage, etc.

The application has been built with offline support. It has been designed using Android Architecture components with Room for offline data caching. The application is built in such a way that whenvever there is a service call, the result will be stored in local database.

The whole application is built based on the MVVM architectural pattern.

Application Architecture

alt text

The main advatage of using MVVM, there is no two way dependency between ViewModel and Model unlike MVP. Here the view can observe the datachanges in the viewmodel as we are using LiveData which is lifecycle aware. The viewmodel to view communication is achieved through observer pattern (basically observing the state changes of the data in the viewmodel).

Screenshots

Home Home Home

Programming Practices Followed

a) Android Architectural Components
b) Dagger 2 for Dependency Injection
c) MVVM
d) Retrofit with Okhttp
e) Room for data caching
f) JUnit and Mockito for Unit testing
d) Repository pattern
e) JSoup for HTML Parsing

How to build ?

Open terminal and type the below command to generate debug build

./gradlew assembleDebug

Open terminal and type the below command to generate release build

./gradlew assembleRelease

How to generate Sonarqube report ?

Open gradle.properties and update the below line with the sonarqube server url

systemProp.sonar.host.url=http://localhost:9000

Before running the sonarqube job, make sure the project version has been updated in the build.gradle. On every run, increment the version by 1.

            property "sonar.sources", "src/main"
            property "sonar.projectName", "NYTimesApp" // Name of your project
            property "sonar.projectVersion", "1.0.0" // Version of your project
            property "sonar.projectDescription", "NYTimes Application to list popular Articles"

For running the sonarqube job, type the below command in the terminal.

./gradlew sonarqube assembleDebug


How to generate code coverage report ?

Open terminal and type the following command

./gradlew clean jacocoTestReport

The coverage report will be generated on the following path.

app/build/reports

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