Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Archi | 3,363 | 3 years ago | 11 | apache-2.0 | Java | |||||
Repository that showcases 3 Android app architectures: "Standard Android", MVP and MVVM. The exact same app is built 3 times following the different patterns. | ||||||||||
Thirtyinch | 1,040 | 2 years ago | 34 | apache-2.0 | Java | |||||
a MVP library for Android favoring a stateful Presenter | ||||||||||
Androidviewmodel | 822 | 4 years ago | apache-2.0 | Java | ||||||
Separating data and state handling from Fragments or Activities without lots of boilerplate-code. | ||||||||||
Mvvmsmart | 458 | a year ago | 3 | Java | ||||||
基于谷歌最新AAC架构,MVVM设计模式的一套快速开发库,整合ViewModel+Lifecycles+Navigation+DataBinding+LiveData+Okhttp+Retrofit+RxJava+Glide等主流模块,满足日常开发需求。使用该框架可以快速开发高质量、易维护的Android应用。 项目组会持续维护,请放心使用.欢迎Start并Fork交流. | ||||||||||
Jetpack_github | 355 | a year ago | mit | Roff | ||||||
基于Kotlin + Jetpack全家桶 + Coroutines(协程) + Flutter等架构实现的一款精简版Github客户端项目,望与广大小伙伴一起成长,欢迎start or fork! | ||||||||||
Android Viewmodelbinding | 312 | 5 years ago | 7 | Java | ||||||
A lightweight library aiming to speed up Android app development by leveraging the new Android Data Binding together with the Model-View-ViewModel design pattern. | ||||||||||
Kompass | 306 | 4 years ago | 8 | mit | Kotlin | |||||
Kotlin Multiplatform Router for Android and iOS | ||||||||||
Mvvmframe | 277 | a year ago | 3 | April 21, 2022 | mit | Java | ||||
🏰 MVVMFrame for Android 是一个基于Google官方推出的Architecture Components dependencies(现在叫JetPack){ Lifecycle,LiveData,ViewModel,Room } 构建的快速开发框架。有了MVVMFrame的加持,从此构建一个MVVM模式的项目变得快捷简单。 | ||||||||||
Jetpackmvvm | 177 | a year ago | 1 | apache-2.0 | Java | |||||
最新最实用的组件化android-MVVM框架 | ||||||||||
Tedu | 127 | a year ago | 6 | gpl-3.0 | Kotlin | |||||
Todo app but minimal, open-source, and free. |
注册的密码规则是数字加字母超过8位即可 测试账号:13126965106 密码:111111aa
阅读此文档前,先尝试运行项目,文档中部分类名需要结合项目中代码进行参考和理解
注:①测试使用小米9手机,单表数据量从最小100条到最大200W条,字段为30个String+一个自增ID,每个字符串长度都在20到30长度的随机字符,测试过程没有严格做到控制变量法,所以测试并不是很严谨,仅供参考;
②我们项目使用sqlite最近碰到SQLiteDatabaseCorruptException: database disk image is malformed等一系列的数据库损坏bug(官方说明关机或sd卡打满可能出现),我们线上用户不到万一的概率,从大数据定位出是几个深度用户,
解决这个问题的最好方式是引入腾讯wcdb中的c++的repair模块修复损坏数据库,构建新库,UI层做友好提示(类似于QQ更新之后跳出的加载数据页面),工作量比较大,但实际效果比较好,修复数据有利于用户留存;
注:在Version Control中commit弹框,输入message使用插件编辑;
对于组件aar版本的说明
前提/背景/须知:
目前此工程可以满足大家开发需要,但随着项目上线,组件越来越多,小组成员不断增多,我们整体工程越来越大,所以我们期望一个工程只包含两部分:app壳工程+自己负责的组件,对于自己不负责的组件只需要在壳工程中引入依赖即可。 需要承认一点,现在包括之前的版本都没有做到组件开发和维护的灵活性,所以最近有时间会继续改进一版,做到一个工程只包含两部分:app壳工程+自己负责的组件; 使用了现在或以前版本的小伙伴也不要伤心,组件改进不涉及任何业务功能,所以你依旧可以根据下方提供的技术方案对自己的项目改进。技术方案流程:
- 建议大家一步到位,不要本地打包拷贝libs,请自行搭建公司私有仓库(本地或者远程服务器均可),然后配置gradle发布脚本,发布aar到私服上;
- 请主程/小组长在app的build.gradle中dependencies引入所有的aar,在config.gradle做好aar版本管理,视情况删除工程中build.gradle的打包流程(可保留,应对后续组件功能扩展);
- 将整理好的工程clone多份,删除.git,在settings.gradle中删除不需要的组件名称,然后在每份源码中保留不同的组件,重新上传仓库,完成改版。
关于工具类改进的一些想法:
考虑了很多次是否改进,最终个人决定不改进,留给各位小伙伴完成,目前common中util工具类比较少,而且只使用了其中的某几个,大家可以根据需求自行增加, 另外比较重要的Log/File工具类强烈建议根据业务和Android版本做深度改进,推荐大家在github中搜索一下相关的工具类工程。
Fragment组件化通信怎么实现的,实现原理?
我怎么快速使用Fragment组件化通信?
组合设计模式(Component),通过对子节点初始化赋值,利用MutableLiveData达到共享数据的目的,建议使用Message对象,减少代码量,增加功能最大适配性。
Arouter中path是常量字符串,当模块众多的时候,需要实现path共享。
如何使用常量插件呢?
在工程的build.gradle中dependencies添加:
classpath 'com.github.VcStrong:ConstantPlugin:0.0.1'
在module的build.gradle中使用:
apply plugin: 'com.vc.constant'//启用常量插件
constant {
enable false//不进行编译,不写的话,默认每次都进行编译,查看build日志
moduleName "common"//生成新代码存放的moduleName
packageName "com.vc.wd.common.util"//生成的新代码放在哪个包下
className "Constant"//生成的常量类名
fieldMap = [
ACTIVITY_URL_MAIN : '/main/MainActivity',
ACTIVITY_URL_ADD_CIRCLE : '/main/AddCircleActivity'
]//属性参数
}
v3版本绝对让你眼前一新,重新提起兴致,追求适配到4.x,由于ObjectBox框架最低支持4.0.3,所以本项目最低只能支持4.0.3版本机型, 新增功能处处都能体现代码的奇妙:
v2版本在v1基础上进行组件化升级,由于对组件和模块的概念有了更深的了解,参考了网上的组件化教程,实践总结利弊之后,决定自己写一套优秀高效率的组件运行gradle:
注:请认真查看config.gradle中的变量备注
这是一个整合架构,所有功能开发都只能在一个module中