分享一款实用的APP开发框架
kframe App开发框架
Kotlin App 框架(MVVM)
- Model :数据模型部分
- View :界面展示部分
- ViewModel :Model和View的桥梁,从而实现业务与界面展示的分离
How to use
Add it in your root build.gradle at the end of repositories:
To use this frmame,add this dependency to the build.gradle of the app:
allprojects {repositories {...maven { url 'https://jitpack.io' }}}
Add the dependency
implementation 'com.github.guclib.gutils:kframe:2.0.2'
Proguard rule
-dontwarn com.guc.kframe.**
-keep class com.guc.kframe.** { *;}
Simple usage
- Config Engine at the app entry:
val config = Config().apply {currentMode = Config.MODEL_DEBUGurlDebug = "http://192.168.44.141:8099/"urlBeta = "http://192.168.44.141:8099/"urlRelease = "http://192.168.44.141:8099/"}Engine.init(this, config)
- Your Activity inheritance BaseActivity,then you can use ActivityCollector to manage you App.
- Get the http system:
val http = SystemManager.getSystem(SystemHttp::class.java)
- More functions wait for you to discover.
自定义控件
- TitleLayout 自定义标题栏
自定义xml属性
leftType :左侧图标类型。(none:不显示 finish:返回)
leftImage:设置左侧图标。
title:设置标题。
titleGravity:设置标题位置。(start:左侧,左图标右侧 center:居中)
titleTextColor:设置标题颜色。
titleTextSize:设置标题字体大小。
rightType:右侧功能样式。(none:不显示 text:文字样式 image:图标样式 image_text:图标文字样式 text_spinner:文字带功能弹窗样式 image_spinner:图标文字带功能弹窗样式)
rightSpinnerType:右侧功能弹窗样式。(text:文字样式 image_text:图标文字样式)
rightText:右侧功能文字。
rightTextColor:设置右侧文字颜色。
rightImage:设置右侧图标。
- LoadingDialog 加载框
- DialogSelect 单选/多选框
- DialogUpdate 升级框,带下载功能
val dialogUpdate = DialogUpdate.getInstanceWithArguments {putParcelable(DialogUpdate.DATA,BeanVersion().apply {fileUrl ="https://down.qq.com/qqweb/QQ_1/android_apk/Android_8.3.6.4590_537064458.apk"fileSize = "84161244"updateJournal = "1.bug修复"newVersion = "V1.0.0"})}dialogUpdate.show(supportFragmentManager, "dialog")
- LooperTextView 滚动展示的TextView
- NoScrollViewPager 禁止滑动的ViewPager
- RichTextView 标题和内容同行不同样式
- FixedGridView/FixedListView 解决ScrollView中嵌套高度显示不正常的问题(1行半)
- AdaptiveWithListView 宽度自适应ListView
- SyncHorizontalScrollView 实现同步滚动HorizontalScrollView
- CornerImageView 圆角矩形/圆形头像
- Banner 广告轮播
- WaterMarkView 自定义水印
- OptionsPickerView 仿ios参数选择
var mOptionPicker = OptionsPickerView<String>(this).apply {//参数及样式设置titleBackgroundColor = Color.parseColor("#FFFFFF")}.create(object :OptionsPickerView.OnOptionsSelectListener {override fun onOptionsSelect(options1: Int,options2: Int,options3: Int,v: View?) {//回调}}).apply {setPicker(mOptions!!, mOptions2Opt)//设置数据 必须再create()后调用才有效}mOptionPicker.show()
- TimePickerView 仿ios时间选择
var mOptionPickerDate = TimePickerView(this).apply {//设置参数type = WheelTime.Type.YEAR_MONTH_DAY //选择日期类型titleText = "请选择日期"titleBackgroundColor = Color.parseColor("#FFFFFF")submitTextColor = Color.parseColor("#1E90FF")cancelTextColor = Color.parseColor("#B0C4DE")isDialogM = true //窗口样式cancelable = true //点击外部可取消}.create(object : TimePickerView.OnTimeSelectListener {@SuppressLint("SimpleDateFormat")override fun onTimeSelect(date: Date?, v: View?) {date?.let {//回调}}})mOptionPickerDate.show()
- SearchView 搜索框
- RiseNumberTextView 带自增动画效果的数字展示TextView
- PieChartView 自定义PieChart
- DialogConfirm 自定义Dialog,支持单按钮
- EmptyView 空提示控件
- BannerIndicator 轮播指示控件
系统工具
- SystemHttp 网络请求工具系统
- SystemCrash 崩溃处理系统
- SystemPermission 权限申请系统
- SystemImageLoader 图片加载工具
- SystemDownload 下载工具
- SystemWaterMark 水印工具
//开启水印 activity 需继承 BaseActivitySystemManager.getSystem(SystemWaterMark::class.java)?.apply {enable = truetext = "自定义水印"}
适配器封装
- CommonAdapter4ListView 通用ListView适配器封装
- CommonAdapter4Rcv 通用RecyclerView适配器封装
- ViewPager2FragmentStateAdapter 通用ViewPager2+Fragment适配器封装
- ViewPagerAdapter 通用ViewPagerAdapter封装
- CommonPagerAdapter 通用ViewPagerAdapter封装
- GroupAdapter ExpandableListView 分组Adapter封装
工具类
- TimeFormatUtils 时间格式转换工具
- ImageUtils 图片处理工具
- KeyWordUtils 文本关键字改色处理工具
- SPUtils SharedPreferences操作工具,请在使用前调用 SPUtils.getSharedPreferences()获取preference实例
- CacheManagerUtils 缓存管理工具(获取缓存大小/清理缓存)
- AssetsUtils 读取assets资源
- LocationUtils 原生定位工具
- RunStateRegister 监听App前台/后台运行
- ToastUtil 快速Toast,支持显示、隐藏应用名
- FileUtils 快速读写文件
- FormatterUtils 字符串格式化
- ScreenUtils 屏幕单位转换,获取状态栏高度等工具
Android 进程间通讯
- Intent
- 使用文件共享
- 使用Messager(底层AIDL实现)
- 使用AIDL
- 使用ContentProvider
- 使用Socket
Kotlin协程知识
- GlobalScope.launch{} 创建一个顶级协程 //不阻塞当前线程
- runBlocking{} 创建一个协程作用域 //阻塞当前线程
- launch{} 在协程作用域内创建一个协程
- coroutineScope{} 在协程作用域内创建一个子协程作用域 //阻塞当前协程
- async{}.await() 代码块中的代码会立刻执行,当调用await()时,会阻塞当前协程,直到获取结果
- withContext(Dispatchers.Default){} 代码块会立即执行,同时阻塞协程,直到获取结果
//协程作用域的常用创建方式(实际项目中)val job = Job()val scope = CoroutineScope(job)scope.launch {//不阻塞线程//}job.cancel()
- suspendCoroutine{continuation -> } 必须在挂起函数或协程作用域中才可调用,将当前协程挂起,然后在普通线程中执行lambda表达式中的代码,再调用resume() 或 resumeWithException(e)让协程恢复
gutils 工具类(从kframe中提取,若使用kframe,则无需再引用gutils)
How to use
Add it in your root build.gradle at the end of repositories:
To use this frmame,add this dependency to the build.gradle of the app:
allprojects {repositories {...maven { url 'https://jitpack.io' }}}
Add the dependency
implementation 'com.github.guclib.gutils:gutils:2.0.2'
Simple usage
1.init on the app entry
class MyApp : Application() {override fun onCreate() {super.onCreate()GUtils.init(this)}
}
2.工具集
- IpUtils 获取本机ip工具
- KeyWordUtils 文本关键字改色处理工具
- LocationUtils 原生定位工具
- RunStateRegister 监听App前台/后台运行
- ToastUtil 提示工具
- String 扩展功能
** String.times 重复字符串
** String.letterCount() 统计字母个数
** String.urlDecoder url解码
** String.urlEncoder url编码
** ByteArray.encodeToBase64String 字节数组转base64
** String.base64DecodeToByteArray base64转字节数组
** String.md5Encrypt() md5加密
关于我
Name: Guchao
Email: happygc913@gmail.com / happygc@126.com
CSDN: snow_lyGirl
GitHub: GuchaoGit
Gitee:GuChaoGitee
加入QQ群:128937635
分享一款实用的APP开发框架相关推荐
- 软件:分享9款实用电脑软件,值得看一看
今天给大家分享9款实用电脑软件,值得看一看. 01.ArcTime 下载地址:https://arctime.org/ 这是一款特别好用的字幕制作软件. 只需导入视频和字幕文件. 它的制作模式不仅支持 ...
- Mac上好用的投屏工具,分享几款实用的mac投屏工具
电脑在我们的生活中变得越来越重要,工作.学习.娱乐都离不开电脑,有时候想坐在舒服的沙发上看一场电影但是又不想移动电脑该怎么办?我们可以采用投屏的方式将画面投到电视上,那么有哪些实用的mac投屏工具呢? ...
- 悬浮按钮app_分享一款网页转App的神器,绝对值得一用
分享一款制作安卓app的神器:名字叫做Fusion Apps,这款神器的主要作用就是可以制作属于自己的网页APP,这款软件的列害之处是他不光可以通过网页制作app,而且可以自己自定义制作,非常具有实用 ...
- 今日分享五款有意思的app 让你的手机好用到极致!
随着智能手机的不断完善,手机内存越来越大,我们使用的app也越来越多,但是一定要安装我们真正需要的app,有哪些好用的呢?下面给你们分享五款有意思的app. 简单搜索 拥有强大语音搜索.图像搜索.语音 ...
- 分享5款实用网络管理工具
网络管理包括对硬件.软件和人力的使用.综合与协调,以便对网络资源进行监视.测试.配置.分析.评价与控制.IT管理人员正对网络管理的要求较高,需要通过工具对网络上的资源进行集中化管理和操作.下面,IDC ...
- 职场人必备的6款实用办公app,每一款都是心头爱
打工人不容易啊,不提高工作效率怕是要被淘汰了.今天给大家分享6款职场人必备的实用办公APP,免费效率神器让工作事半功倍.这些APP每一款都是我的心头爱,肯定会让人大开眼界的,超级实用,直接往下看吧. ...
- select2中文帮助文档_5款实用办公app , 石墨文档、收趣 | 发现有趣app
发现有趣app,专注分享高质量.有趣.有用的APP. 今天分享五款 :白描.石墨文档.腾讯文档.收趣.彩云小译 . 第一个:白描 白描是一款准确高效的文字识别软件. 识别速度快,准确度高,而且还能识别 ...
- 实时翻译app哪个好用一些?分享四款实用的对话翻译软件
最近有很多外国友人来中国游玩,偶尔在大街上或者网红美食店等都能遇到他们,有时候向我们问路.有时候向我们问什么美食好吃等等问题,遇到这种情况大家是怎么处理的呢?是告诉他们外语水平不好,还是用手语表达?其 ...
- 分享3款消除笔app,轻松去除各种水印瑕疵,太方便了
大家总会在各种平台上下载心水的图片,来给自己的手机或是电脑当壁纸,但是有些网站为了保护权益,会在上面盖上水印,可我们并不是进行商用,就会显得有些多余,并且影响使用.难道我们只能将这些图片放弃吗?其实, ...
- 分享几款实用的识别图片文字的软件
日常生活中,我们经常要面对很多图片,并且大多数时候都需要得到图片中的内容.比如车牌号图片,我们需要它的车牌颜色.地区简写以及车牌中的号码.但是如果给你一大堆车牌照片,让你将其登记起来,那该怎么办呢?一 ...
最新文章
- 分布式数据库灵活存储机制与应用实践
- python具备哪些特点_Python具备那些特点?
- 目标文件(.o)结构的简单了解
- CVPR 2018 RASNet:《Learning Attentions: Residual Attentional Siamese Network for Tracking》论文笔记
- centos配置oracle自启,centos 下配置oracle11gR2开机自启
- springMVC3.0(文件上传,@RequestMapping加参数,@SessionAttributes,@ModelAttribute,转发,重定向,数值获取,传参,ajax,拦截器)
- 《复杂》读书笔记(part1)--一些思想是由简单的思想组合而成,我称此为复杂
- GPU Gems1 - 22 颜色控制(Color Controls)
- windows下安装python和Python-opencv
- 安装Python psutil包
- 公基会考计算机知识,公基计算机基础知识汇总70.doc
- 【机器学习】hist参数解读
- IBM SPSS Amos下载与安装
- google guava Joiner 示列
- docker---docker save
- 成果丰硕!SWORD 斯沃德惊艳亮相“第18届深圳名品家博会”
- 数据统计分析常用指标
- 用计算机中的知识秀恩爱,教你用专业知识取情侣网名
- 如何把Windows主机中的文件拉到centOS虚拟机中
- java对接七牛后台进行内容审核(鉴黄、敏感人物、暴恐)
热门文章
- 《UNIX网络编程 卷1》一、环境配置
- 拆t460拆机图解_ThinkPad T460P评测,二楼附ThinkPad T460P拆机图
- 多媒体SCM格式介绍
- 阿帕虎题库管理系统服务器,阿帕虎题库管理系统
- Sql Server 2008R2 备份文件还原数据库
- 课程设计题五:汽车尾灯控制器设计
- 基于java 网页的宠物店管理系统
- 嵌入式系统作业12(SD卡读取)
- 最新emoji表情代码大全_7张最新有创意好看的早上好问候动画表情图片 暖心的早安问候祝福动态图片表情大全...
- 【第二章 | 进程的描述与控制】《操作系统 慕课版》课后答案 + 复习