Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kongxiaoan/Network-Demo
Retrofit + OkHttp3 + coroutines + LiveData打造一款网络请求框架
https://github.com/kongxiaoan/Network-Demo
Last synced: 21 days ago
JSON representation
Retrofit + OkHttp3 + coroutines + LiveData打造一款网络请求框架
- Host: GitHub
- URL: https://github.com/kongxiaoan/Network-Demo
- Owner: kongxiaoan
- Created: 2020-08-11T09:21:26.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-08-11T09:26:07.000Z (over 4 years ago)
- Last Synced: 2024-08-05T17:31:54.419Z (4 months ago)
- Language: Kotlin
- Size: 138 KB
- Stars: 79
- Watchers: 3
- Forks: 24
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-hacking-lists - kongxiaoan/Network-Demo - Retrofit + OkHttp3 + coroutines + LiveData打造一款网络请求框架 (Kotlin)
README
# Network-Demo
Retrofit + OkHttp3 + coroutines + LiveData打造一款网络请求框架
> 一个好的网络框架需要有那些特点呢?- 请求
当然这个请求不单单是发送请求这么简单,它包括请求相关的一系列配置是否简易、发送模式是否灵活切换、请求头信息是否易处理、请求参数是否易操作等等
- 响应
一个好的网络请求框架肯定需要提高我们的生产力,保证我们程序的健壮性,那么响应体和这些又有什么关系呢?
容易转换成不同需求的实体
是否能返回不同类型的结构。xml、json、text等等总的来说就是易使用、易扩展、可读性高
---
### 一、目的
- 背景
> 市场上现在存在的网络请求不在少数,从原生的HttpClient 到 OkHttp、Volley、xUtils 无疑都是将网络请求简单化、方便、安全等用以提升开发的效率以及程序的质量。后面出现Retrofit ,将OkHttp3 进行了封装,将请求API 接口化,将返回的数据结合GSON等各种转换器转换为直接面向开发的对象,大大的提升了我们的开发效率,为了解决Android UI/子线程 负责的功能场景方便切换,大家开始结合了RxJava, 这一操作直接将Retrofit + OkHttp3 + RxJava 组合的网络框架推上了热门写法,- 现状
> kotlin 的出现是Google 对于Android开发的重新定义,含糊不清的态度,既不丢弃Java又宣布kotlin 是首选语言。在次基础上结合jetpack框架,成了新时代开发的另一条选择路径,从始至终Google 没有对Android推出过官方的设计模式,大家都是从高内聚、低耦合等方面推行着自己的设计模式,让开发简单、维护简单、程序健壮。jetpack是Google 对设计模式的首次官方制造,重点可想而知,那在这个基础上我们还需要使用之前的网络框架吗?有没有更加优秀的框架以及框架的组合使得我们的程序健壮、开发简易呢?
- jetpack
> 具体的jetpack不是这里解释的。其中ViewModel - LiveData 已经得到了广大开发者的认可,ViewModel 和LiveData 的结合,使得Android中数据可控性变得更好,耦合度更低,简单来说是官方将观察者模式用于到了真个数据结构中,在这里也是将要结合其他框架来完成网络框架的设计
- coroutines
> kotlin较Java的最大变化就是kotlin推出的coroutines (协程),协程完全可以替代RxJava, Thread、多级接口回调等,并且有上下文及各种模式来迎合各种场景,具体不再这里解释,
- 使用上述出现的几个框架完成新的网络请求框架的封装