当前位置: 首页 > news >正文

轻量级kotlin + Mvp + Rxjava + Retrofit框架

适合团队的框架才是好的框架

1.项目简介

本项目是基于kotlin + Mvp + Rxjava + Retrofit 封装的轻量级模板项目。项目没有过多冗余的依赖, 适用于快速开发以及新手练手。

2.目录结构

├── .gradle
├── .idea
├── app.main.java.package
│   ├── api                 配置请求地址
│   ├── base                base基类封装
│   ├── glide               图片加载框架
│   ├── net                 网络请求框架配置
│   ├── rx                  rxjava配置
│   ├── mvp
│   │    └── contract       view和presenter实现方法接口
│   │    └── model          数据加载层
│   │    └── presenter      逻辑处理层(数据加载页面显示)
│   ├── ui
│   │    └── activity       activity
│   │    └── adapter        适配器
│   │    └── fragment       fragment
│   ├── utils               工具类
│   ├── view                view控件
│   ├── Constants.kt        全局常量
│   ├── Extensions.kt       扩展函数
│   ├── MyApplication.kt    Application
├── build
├── gradle
├── build.gradle
├── settings.gradle

复制代码

3.图解

4.技术选型

MvpArmsKotlinMvpTemplate
Mvp+Rxjava+Retrofit+Dagger+组件化Kotlin+Mvp+Rxjava+Retrofit
使用方便,还有一键生成工具,冗余代码过多,不适合快速开发使用方便,适合快速开发以及新手
框架成熟可根据需求定制
JavaKotlin
为什么和MvpArms做对比昵? 这个简单框架只是一个基础框架,其实没有和别的框架做比较的必要性,
但是之前用过一段时间MvpArms,也从中学到了很多东西,但是并不是所有公司项目都是大项目,可能会面临
快速开发的需求,所有MvpArms有些功能并不是很适合。适合团队的框架才是好的框架
复制代码

5.技术要点

主要使用的第三方开源框架有:

  • RxJava
  • RxAndroid
  • Retrofit
  • Glide
  • Logger
  • SmartRefreshLayout

6.后续更新

  • 加入Dagger2,过多冗余代码用标签代替
  • 开放一键生成contract - model - presenter 工具

7.简单效果图

项目功能较为简单,只是一个简单的图片展示,目前项目封装了以下点位:

  • 网络请求RetrofitManager封装
  • 网络请求 加载 - 失败 - 成功 MultipleStatusView是一个和好用的工具
  • Base基类 activity - fragment - adapter
  • glide封装
  • rxjava封装
  • 各种工具类封装
  • shape以及gradient各种图形封装
  • 动画封装

8.特别感谢

  • MvpArms
  • KotlinMvp

9.项目地址

  • 你的Star和Fork是我永生的追求

相关文章:

  • HDU 2722 Here We Go(relians) Again
  • yii2-queue一个好用的yii2队列操作扩展
  • ppwjs之bootstrap表格:响应式
  • [大牛翻译系列]Hadoop(22)附录D.2 复制连接框架
  • Java大小写转换
  • Transact-SQL语法速查手册
  • 开源地图数据可视化库——mapnik
  • IOS开发常用的linux命令
  • grep/字符/次数匹配/锚定符/小大括号/wc/tr/cut/sort/uniq
  • ajax跨域问题
  • 菜根谭#89
  • Kubernetes上的十大应用程序
  • 开发技巧:高效的使用 Response.Redirect
  • 正则表达式-基础知识Review
  • Andrew Ng机器学习公开课笔记 -- 线性回归和梯度下降
  • python3.6+scrapy+mysql 爬虫实战
  • CentOS 7 防火墙操作
  • CSS魔法堂:Absolute Positioning就这个样
  • Iterator 和 for...of 循环
  • JavaScript-Array类型
  • jdbc就是这么简单
  • Map集合、散列表、红黑树介绍
  • rc-form之最单纯情况
  • Shell编程
  • vue中实现单选
  • 诡异!React stopPropagation失灵
  • 浅谈Golang中select的用法
  • 设计模式(12)迭代器模式(讲解+应用)
  • 写代码的正确姿势
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #pragma data_seg 共享数据区(转)
  • ( 10 )MySQL中的外键
  • (02)vite环境变量配置
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (一)u-boot-nand.bin的下载
  • (转)Google的Objective-C编码规范
  • .Net 8.0 新的变化
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .net(C#)中String.Format如何使用
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET导入Excel数据
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • [145] 二叉树的后序遍历 js
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [AIGC] Java 和 Kotlin 的区别
  • [AIGC] 如何建立和优化你的工作流?
  • [CSDN首发]鱿鱼游戏的具体玩法详细介绍
  • [CSS]CSS 字体属性
  • [EFI]Dell Latitude-7400电脑 Hackintosh 黑苹果efi引导文件
  • [HUBUCTF 2022 新生赛]
  • [linux] C语言Linux系统编程进程基本概念