All Projects → xujiaji → MVVMQuick

xujiaji / MVVMQuick

Licence: Apache-2.0 license
🚀使用MVVMQuick快速构建您的MVVM结构项目!(Quickly start projects with MVVMQuick!)

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to MVVMQuick

WanAndroid
一个简洁漂亮与众不同的WanAndroid客户端,欢迎下载体验(〃'▽'〃)。(A simple and beautiful Wanandroid client App.) MVVM + Dagger2 + DataBinding + Lifecycle + OkHttp + Retrofit2
Stars: ✭ 81 (+252.17%)
Mutual labels:  dagger2, databinding, mvvm-databing, mvvm-sample, mvvm-android, dagger2-android, dagger2-mvvm
Android Mvp Mvvm Flytour
🔥🔥🔥 FlyTour是Android MVVM+MVP+Dagger2+Retrofit+RxJava+组件化+插件组成的双编码架构+双工程架构+双语言Android应用开发框架,通过不断的升级迭代该框架已经有了十个不同的版本,5.0之前工程架构采用gradle配置实现组件化,5.0之后的工程架构采用VirtualAPK实现了插件化,5.0之前采用Java编码实现,5.0之后采用Kotlin编码实现,编码架构由MVVM和MVP组成,工程架构和编码架构及编码语言开发者可根据自己具体的项目实际需求去决定选择使用,该框架是Android组件化、Android插件化、Android MVP架构、Android MVVM架构的集大成者,帮助你快速的搭建自己的App项目开发框架,以便把主要的精…
Stars: ✭ 2,948 (+12717.39%)
Mutual labels:  dagger2, mvvm-architecture, databinding, mvvm-databing, mvvm-android
AndroidCleanArchitecture
Android Project with clean android architecture contain Dagger, Retrofit, Retrofit, Android archtecture components, LiveData with MVVM architecture
Stars: ✭ 22 (-4.35%)
Mutual labels:  dagger2, mvvm-architecture, mvvm-android, dagger2-android, dagger2-mvvm
Github-Trending-Repos
An Android App that lists the most trending repositories from Github.
Stars: ✭ 57 (+147.83%)
Mutual labels:  mvvm-architecture, databinding, dagger2-android, dagger2-mvvm
Mvvmframe
🏰 MVVMFrame for Android 是一个基于Google官方推出的Architecture Components dependencies(现在叫JetPack){ Lifecycle,LiveData,ViewModel,Room } 构建的快速开发框架。有了MVVMFrame的加持,从此构建一个MVVM模式的项目变得快捷简单。
Stars: ✭ 218 (+847.83%)
Mutual labels:  dagger2, lifecycle, mvvm-architecture, databinding
NYTimesMostPopularArticles
A simple app to hit the NY Times Most Popular Articles API and show a list of articles, that shows details when items on the list are tapped (a typical master/detail app), also user able to browse/ add articles to favorite list that implements MVVM architecture using Dagger2, Retrofit, Coroutines, LiveData, RoomDatabase, Database Debugging, Data…
Stars: ✭ 38 (+65.22%)
Mutual labels:  mvvm-architecture, databinding, dagger2-android, dagger2-mvvm
Mvvmarms
Android MVVM Architecture Components based on MVPArms and Android Architecture Components.
Stars: ✭ 425 (+1747.83%)
Mutual labels:  dagger2, lifecycle, databinding, dagger2-android
catchflicks
🎬 Kitchen sink project for learning android concepts 🎬
Stars: ✭ 12 (-47.83%)
Mutual labels:  dagger2, lifecycle, mvvm-architecture, databinding
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 (+1956.52%)
Mutual labels:  dagger2, databinding, dagger2-android
Frekans
📻 Frekans is a radio player app. It will be fully developed with Kotlin. It is work-in-progress and under heavy development.
Stars: ✭ 43 (+86.96%)
Mutual labels:  dagger2, databinding, dagger2-android
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 (+447.83%)
Mutual labels:  dagger2, mvvm-architecture, dagger2-android
Star Wars Shop
Simple project with clean architecture and android lifecycle
Stars: ✭ 37 (+60.87%)
Mutual labels:  dagger, dagger2, lifecycle
Android Mvvm Architecture
This repository contains a detailed sample app that implements MVVM architecture using Dagger2, Room, RxJava2, FastAndroidNetworking and PlaceholderView
Stars: ✭ 2,720 (+11726.09%)
Mutual labels:  dagger2, mvvm-architecture, dagger2-mvvm
AndroidVIP
Android project to experiment the VIPER approach using mosby, RxJava and dagger2
Stars: ✭ 21 (-8.7%)
Mutual labels:  dagger, dagger2, dagger-android
MockAppMVVM
A sample app structure using the MVVM architecture using Retrofit, Dagger2, LiveData, RxJava, ViewModel and Room.
Stars: ✭ 14 (-39.13%)
Mutual labels:  dagger, lifecycle, mvvm-architecture
Movieapp Clean Architecture
Learning Project (Movie App) For Applying Android Architecture Components And Clean Architecture Using MVVM With Kotlin
Stars: ✭ 123 (+434.78%)
Mutual labels:  dagger2, mvvm-architecture, databinding
Tvflix
TvFlix android app using Dagger Hilt, Coroutines, Flow, KTX, Jetpack(Room, ViewModel, Paging3, Lifecycle) based on MVVM architecture purely written in Kotlin
Stars: ✭ 286 (+1143.48%)
Mutual labels:  dagger2, mvvm-architecture, databinding
Androidstarters.com
Kickstart your next Android Application in 10 seconds.
Stars: ✭ 280 (+1117.39%)
Mutual labels:  dagger2, mvvm-architecture, databinding
dagger-track
Gradle plugin to add clock trackings to your dagger components and subcomponents
Stars: ✭ 59 (+156.52%)
Mutual labels:  dagger, dagger2, dagger-android
AndroidMVPArchitecture
Android MVP architecture sample project with or without RxJava and Dagger2 and Kotlin
Stars: ✭ 78 (+239.13%)
Mutual labels:  dagger, dagger2, dagger2-android

Version

MVVMQuick

旨在快速以MVVM开始开发项目,其内集成了dagger2、okhttp3、retrofit、BaseRecyclerViewAdapterHelper、lifecycle等常用的框架和一些工具。

将大部分逻辑抽象,希望可以通过几步简单的配置,即可省去重复逻辑的代码。

Note

目前还在测试开发中,有兴趣的朋友可以体验体验给给建议哦!如要运用到项目中请自行下载项目导入mvvm-quik模块,也可直接以该项目开始开发。

该项目参考:

  1. 学习MVVM的实际运用,并且结合Dagger
  2. todo-mvp-dagger
  3. todo-mvvm-live
  4. todo-mvvm-databinding
  5. mvvm-sample-app
  6. LearnMVVM

dependencies

implementation 'com.github.xujiaji:mvvm-quick:0.0.5'

Use

详细使用案例请参考:https://github.com/xujiaji/WanAndroid

1.定义ViewModel,继承MQViewModel

@Singleton
public class ProjectListViewModel extends MQViewModel
{
    ...
}

2.布局文件fragment_project_list以DataBinding的写法

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <data>
        <variable
            name="projectListViewModel"
            type="com.xujiaji.learnmvvm.module.projectlist.ProjectListViewModel"/>
    </data>
    ...
</layout>

3.ui中的写法,将DataBinding和ViewModel作为泛型配置,MQFragment会自动为您自动实例化

@ActivityScoped
public class ProjectListFragment extends MQFragment<FragmentProjectListBinding, ProjectListViewModel>
{

    @Inject
    Lazy<ProjectAdapter> mAdapter;

    @Inject
    public ProjectListFragment() {}

    @Override
    public void onBinding(FragmentProjectListBinding binding)
    {
        ... 当Binding初始化后会调用
    }

    @Override
    public void onObserveViewModel(ProjectListViewModel viewModel)
    {
        ... 当ViewModel初始化后会调用(在Binding之后初始化)
    }
}

4.在ViewModelSubComponent中添加配置,提供ViewModel实例(实例提供通过Dagger实现)

@Subcomponent
public interface ViewModelSubComponent
{
    ...
    Lazy<ProjectListViewModel> projectListViewModel(); //add
}

5.在AppModuleprovidesViewModel方法中添加配置

    @Singleton
    @Provides
    static Map<Class<?>, Callable<Lazy<? extends ViewModel>>> providesViewModel(ViewModelSubComponent.Builder viewModelSubComponent)
    {
        ...
        creators.put(ProjectListViewModel.class, vmsc::projectListViewModel);//add
        return creators;
    }

License

   Copyright 2018 XuJiaji

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