All Projects → KunMinX → Jetpack Mvvm Scaffold

KunMinX / Jetpack Mvvm Scaffold

人生苦短,让脚手架为你节省时间。(目前作为《最佳实践》项目的 Dev 版来优先更新)

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Jetpack Mvvm Scaffold

Jetpackmvvm
🐔🏀一个Jetpack结合MVVM的快速开发框架,基于MVVM模式集成谷歌官方推荐的JetPack组件库:LiveData、ViewModel、Lifecycle、Navigation组件 使用Kotlin语言,添加大量拓展函数,简化代码 加入Retrofit网络请求,协程,帮你简化各种操作,让你快速开发项目
Stars: ✭ 1,100 (+360.25%)
Mutual labels:  lifecycle, mvvm, viewmodel, navigation, livedata
MockAppMVVM
A sample app structure using the MVVM architecture using Retrofit, Dagger2, LiveData, RxJava, ViewModel and Room.
Stars: ✭ 14 (-94.14%)
Mutual labels:  navigation, viewmodel, lifecycle, mvvm-architecture, livedata
Aachulk
️🔥️🔥️🔥AACHulk是以Google的ViewModel+DataBinding+LiveData+Lifecycles框架为基础, 结合Okhttp+Retrofit+BaseRecyclerViewAdapterHelper+SmartRefreshLayout+ARouter打造的一款快速MVVM开发框架
Stars: ✭ 109 (-54.39%)
Mutual labels:  lifecycle, mvvm, mvvm-architecture, viewmodel, livedata
Android Jetpack Demo
🔥 快速入门Android Jetpack以及相关Kotlin、RxJava、MVVM等主流技术,独立构架App的基础技能
Stars: ✭ 335 (+40.17%)
Mutual labels:  lifecycle, mvvm, viewmodel, navigation, livedata
Mvvmframe
🏰 MVVMFrame for Android 是一个基于Google官方推出的Architecture Components dependencies(现在叫JetPack){ Lifecycle,LiveData,ViewModel,Room } 构建的快速开发框架。有了MVVMFrame的加持,从此构建一个MVVM模式的项目变得快捷简单。
Stars: ✭ 218 (-8.79%)
Mutual labels:  lifecycle, mvvm, mvvm-architecture, viewmodel, livedata
Jetpack Mvvm Best Practice
是 难得一见 的 Jetpack MVVM 最佳实践!在 以简驭繁 的代码中,对 视图控制器 乃至 标准化开发模式 形成正确、深入的理解!
Stars: ✭ 6,950 (+2807.95%)
Mutual labels:  mvvm, mvvm-architecture, navigation, livedata
Androidroom
Android example to show how to use Room to access SQLite database on device for reading and writing data. This example also shows how to use LiveData and ViewModel with Room to build reactive, well performing and easy to maintain applications.
Stars: ✭ 36 (-84.94%)
Mutual labels:  mvvm, mvvm-architecture, viewmodel, livedata
Movieapp Clean Architecture
Learning Project (Movie App) For Applying Android Architecture Components And Clean Architecture Using MVVM With Kotlin
Stars: ✭ 123 (-48.54%)
Mutual labels:  mvvm, mvvm-architecture, viewmodel, livedata
Mvvm Architecture
The practice of MVVM + Jetpack architecture in Android.
Stars: ✭ 1,634 (+583.68%)
Mutual labels:  lifecycle, mvvm, mvvm-architecture, navigation
Mvvmsmart
基于谷歌最新AAC架构,MVVM设计模式的一套快速开发库,整合ViewModel+Lifecycles+Navigation+DataBinding+LiveData+Okhttp+Retrofit+RxJava+Glide等主流模块,满足日常开发需求。使用该框架可以快速开发高质量、易维护的Android应用。 项目组会持续维护,请放心使用.欢迎Start并Fork交流.
Stars: ✭ 382 (+59.83%)
Mutual labels:  mvvm, viewmodel, navigation, livedata
Wanandroid
Jetpack MVVM For Wanandroid 最佳实践 !
Stars: ✭ 1,004 (+320.08%)
Mutual labels:  lifecycle, mvvm, viewmodel, livedata
Android Mvvm Architecture
A basic sample android application to understand MVVM in a very simple way.
Stars: ✭ 129 (-46.03%)
Mutual labels:  mvvm, mvvm-architecture, viewmodel, livedata
Jethub
Sample App with Jetpack components(LiveData, Navigation, ViewModel) + MVVM + coroutine + single activity
Stars: ✭ 224 (-6.28%)
Mutual labels:  mvvm, viewmodel, navigation, livedata
Mvvm Sample App
MVVM, ViewModel and LiveData Sample App
Stars: ✭ 498 (+108.37%)
Mutual labels:  mvvm, mvvm-architecture, viewmodel, livedata
Harrypotter
🧙🏻 Sample HarryPotter application based on MVVM architecture (ViewModel, LiveData, Repository, Coroutines, Koin or Dagger-Hilt)
Stars: ✭ 116 (-51.46%)
Mutual labels:  lifecycle, mvvm, mvvm-architecture, livedata
Mvvmarms
Android MVVM Architecture Components based on MVPArms and Android Architecture Components.
Stars: ✭ 425 (+77.82%)
Mutual labels:  lifecycle, mvvm, viewmodel, livedata
Tdcapp
Sample app which access the TDC (The Developer's Conference) REST API.
Stars: ✭ 55 (-76.99%)
Mutual labels:  lifecycle, mvvm, viewmodel, livedata
DeezerClone
This Application using Dagger Hilt, Coroutines, Flow, Jetpack (Room, ViewModel, LiveData),Navigation based on MVVM architecture.
Stars: ✭ 81 (-66.11%)
Mutual labels:  navigation, mvvm, viewmodel, livedata
Easychatandroidclient
EasyChat是一个开源的社交类的App。主要包含消息、好友、群组等相关的IM核心功能。部分界面参照了QQ、微信等相关社交APP。EasyChat APP整体采用MVVM模式,基于JetPack(Lifecycle,LiveData,ViewModel,Room)构建
Stars: ✭ 64 (-73.22%)
Mutual labels:  lifecycle, mvvm, viewmodel, livedata
Moviefinderusingmvvm Android
🔥 MVVM + Clean Architecture + Best Practices | 🍿Movie Finder is a sample Android application 📱to search movies using OMDb API which is built to demonstrate use of Modern Android development tools - (Kotlin, Coroutines, Kodein, Architecture Components, MVVM, Retrofit, Gson, Material Components) 😊😊😉
Stars: ✭ 66 (-72.38%)
Mutual labels:  mvvm, mvvm-architecture, viewmodel, livedata

公告:

刚刚就本项目 "被卖课" 一事,在掘金发表了一期专访 《开源项目被人拿去做课程卖了 1000 多万是什么体验》

本项目系我为了方便开发者们 无痛理解 Google 开源的 Jetpack MVVM 中 每个架构组件的 存在缘由、职责边界,而 精心设计的一个又一个高频应用场景

与此同时,本项目是作为 《重学安卓》专栏 Jetpack MVVM 系列文章的配套项目而存在,文章内容和项目中的代码设计均涉及本人对 Jetpack MVVM 的独家理解,本人对此享有著作权

任何组织或个人,未经与作者本人沟通,不得将本项目的代码设计和本人对 Jetpack MVVM 的独家理解用于出书和卖课的商业用途。

 

背景

人,不是机器,人注定会犯错。

尤其是在 多人协作的软件工程背景下 快速版本迭代的时候。

有限的注意力应始终放在刀刃上,因而那些机械重复的模板代码,应在后台自己默默安排好一切、免除因各种手工操作的失误 而造成的不可预期的后果

脚手架项目应运而生。

 

架构图总览

脚手架项目不仅仅是我一个人的创作,也是集许许多多优秀开发者参与演化的结果。

该项目主要包含 表现层、领域层、数据层 三层:

脚手架项目有 3 宝。考虑到 “按需” 选用的原则,现已抽取为 “依赖库” 独立维护。

  • 福利 1:DataBinding 严格模式

GitHub:Strict-DataBinding

  • 福利 2:UnPeekLiveData 发送一次性事件

GitHub:UnPeek-LiveData

  • 福利 3:Smooth-Navigation 使转场顺滑

GitHub:Smooth-Navigation

  • 通过 Request 来复用转发逻辑

  • 通过 UseCase 管理可叫停的业务

  • 通过 DataResult 回调数据层结果

如对具体的设计缘由感兴趣,可参见源码中注释的解析,此处不做累述。

 

综上

任何技术的存在,都是旨在特定背景下解决特定问题,架构模式也不例外。

透过过去一年的开源和对高频场景的总结,我们已为 “页面开发” 场景下存在的高频隐患提供了 “相应解”。

随着背景因素的不断变化,技术亦处于不断的发展中,因而《Jetpack MVVM 脚手架》仍朝着趋于成熟的方向不断完善。

今后如在个人项目中 用到了该脚手架项目的依赖库,可随时在 issue 区提供项目信息,如此可以让更多的开发者 有机会认识你的开源作品

 

谁在使用

刚刚在 GitHub 看到有小伙伴基于《最佳实践》项目的架构设计重构了多个项目,感兴趣的小伙伴可前往查阅 😉

GitHub - Jetpack开发短视频应用实战 - 重构

GitHub - 仿网易云音乐安卓客户端 - 重构

 

版权声明

本文以 CC 署名-非商业性使用-禁止演绎 4.0 国际协议 发行。

Copyright © 2019-present KunMinX

 

License

Copyright 2019-present KunMinX

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