BluetoothDemo.zip
Android开发蓝牙与ble设备的通讯,实现扫描、连接、读写功能。
微信小程序自定义时间选择器.txt
由于微信小程序控件只有日期控件和时分控件,如果要用到日期和时分秒就需要进行自定义,自定义撸了一把,使用非常简单。
dart-sdk 2.4
dart-sdk 2.4版本
、
MVP-VM实践
引入VIewModel 减轻对P对V的操作
protected fun <T : BaseViewModel> vmProviders(modelClass: Class<T>): T {
val viewModel: BaseViewModel
if (mContext is FragmentActivity || mContext is Fragment) {
viewModel = if (mContext is BaseActivity) {
ViewModelProviders.of(mContext as FragmentActivity).get(modelClass)
} else {
ViewModelProviders.of(mContext as Fragment).get(modelClass)
}
} else {
viewModel = ViewModelProvider.AndroidViewModelFactory.getInstance(App.getInstance()).create(modelClass)
}
// 监听viewModel被销毁时 也销毁presenter
viewModel.setClearedListener(object : BaseViewModel.ViewModelClearedListener {
override fun onCleared() {
onDestroy()
}
})
initCommon(viewModel)
return viewModel
组件化 MVP MVVM 微信登录 微信支付等模块整合
组件化开发 微信登录 微信支付、支付宝支付等模块整合 MVP 主体架构 MVVM 双向绑定 Rxjava2 retrofit2 rxlifecycle2 生命周期绑定 arouter 路由 leakcanary 内存泄露检查 logger 漂亮的日记 takephoto 照片选择器 PickerView 地址选择器 rxpermissions 权限请求
组件化开发,适用于业务复杂,多人开发
组件化开发 随着APP版本不断的迭代,新功能的不断增加,业务也会变的越来越复杂,APP业务模块的数量有可能还会继续增加, 而且每个模块的代码也变的越来越多,这样发展下去单一工程下的APP架构势必会影响开发效率,增加项目的维护成本, 每个工程师都要熟悉如此之多的代码,将很难进行多人协作开发,而且Android项目在编译代码的时候电脑会非常卡, 又因为单一工程下代码耦合严重,每修改一处代码后都要重新编译打包测试,导致非常耗时,最重要的是这样的代码想要 做单元测试根本无从下手,所以必须要有更灵活的架构代替过去单一的工程架构。
经过组件化架构,可以将每个组件单独做为一个app开发,有可以组合不同的组件进行开发。
是否进行模块化开发 控制开关
isModule=false/true
自定义 Coverflow
基于recycleview和基于viewpger实现的Coverflow
从无到有撸一把自定义下拉多选菜单 仿美团
从无到有撸一把自定义下拉多选菜单 代码简洁 漂亮
MVP+DataBinding+Rxjava+retrofit2 封装最流行的技术 极度减少代码重复
MVP+DataBinding+Rxjava+retrofit2 封装最流行的技术 极度减少代码重复
AutoScrollTextView
超级漂亮的自定义消息滚动条,动画优美,使用简单
NavigationView
超级简单的底部导航栏,使用简单,几行代码搞定,支持红点
mvp+rxjava+retrofit2+glide 封装 图片选择器
mvp+rxjava+retrofit2+glide 封装 图片选择器 超级封装 代码少
autoLayout自适应方案
妈妈再也不用担心android屏幕适配了,直接在布局里面写px值,全尺寸屏幕适配,碉堡了
MD5Util.java
MD5Util.java