感觉好久没有写Android的文章了,囧囧囧!因为Retrofit实在是太火了, 火得我一直跃跃欲试,但是由于种种原因吧,一直都没有用过。周末闲来无事,利用一个以前开发中用过的服务器API来小试牛刀一下,非常简单,记录自己的第一次Retrofit之旅。 重要说明:由于涉及到商业机密,所以对请求的数据和服务器地址进行了处理。自己实验时,请换成自己的服务器。 一、添加依赖、配置项目 这一步就不详细说了,会的都会,基本就是添加两个依赖和网络访问权限。 compile 'com.squareup.retrof
在使用retrofit之前,你需要导入retrofit gsonconverter这些库。详情可以查看相关资料。https://github.com/square/retrofit ,现在出到最新的版本是2.4.0.
Rxjava由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。
大约在两年前,写了一篇Jetpack 系列之Paging3,看这一篇就够了~,本篇文章主要来看,在Compose中如何使用Paging3,这里不得不说一句,在xml中使用Paging3和在Compose中使用仅有UI层代码不同,所以之前定义的接口层、仓库层直接复用直接的代码即可。
前言 Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。 如果还不了解RxJava,请看文章:Android:这是一篇 清晰 & 易懂的R
早都想撸一个demo出来总结一下加深理解的,也想搞的深入一点,但是发现越深入反而越不好总结,只好先作罢,所以目前本文只是简单事例(大佬跳过)。 MVP 简化Activity,以接口的方式实现M层和V层的交互,所以在定义接口前一定要先想好业务逻辑,这样接口写起来也比较便捷,不然的话就是写着写着,诶少个接口啊,然后回来又写个接口,这样的情况一次还好,一多就影响开发效率了。 Retrofit 其实是对OkHttp的封装,官网是这样介绍的:A type-safe HTTP client for Android
最近一直闭关修炼Kotlin,说实话真香真好用,刚好公司准备交给我一个新项目,于是打算直接用Kotlin来构建项目。刚好整体架构搭建完毕了,于是把网络请求这一部分先分享给大家。这次使用到的是 协程+ retrofit +mvvm的模式,我这儿直接用一个简单的demo来看一下具体的实现方式吧。文章只是描述实现思路,需要demo的直接跳到文末
一、概述 Retrofit是Square公司开发的一个类型安全的Java和Android 的REST客户端库。来自官网的介绍: A type-safe HTTP client for Android and Java Rest API是一种软件设计风格,服务器作为资源存放地。客户端去请求GET,PUT, POST,DELETE资源。并且是无状态的,没有session的参与。关于REST的介绍可以参考维基百科 retrofit模型如下:(来自如何使用Retrofit写一个Android的REST客户端
现在虽然是多端平台开发的天下,但做Iot开发主要在安卓系统下,当然不排除以后的什么鸿蒙系统(至于能不能成大器这另一回事)。做Iot开发主要就是解决设备孤岛的问题,就是怎么将设备的数据上传到服务器是。传统的就http(s)或MQ这两套板斧,不过其实MQ也是基于http(s),只是由于其已经大多封装好调用直连所以是俺等懒人的必选之一。不过用MQ又要部署太多的事情,为几个简单去部署一堆事情,俺乐意其时间也不乐意,好吧!那用回http(s),虽然安卓的http传输还是可以,不过刚接触到一套Retrofit2框架。感觉不错,于是向大伙推荐一下吧。
PS:上一篇写了Retrofit网络请求库的简单使用,仅仅是获取百度的源码,来证明连接成功,这篇讲解如何解析JSON数据,该框架不再是我们之前自己写的那样用JsonArray等来解析,这些东西,我们都不用写,只需要写和数据相关的model就可以,下面是简单的JSON数据格式,我们来分析一下。 { "Xname": "中国", "type": "true", "province": [ { "name": "黑龙江", "
许久没有更新Jetpack系列的文章了,本篇文章为大家分享分页库Paging3的使用,如果你还没有看过我Jetpack其他的文章,可以移步至链接:
前面介绍完RESTful之后,我们先来初步认识下Retrofit的使用"姿势"。本文的主要内容如下:
用Kotlin的方式写Kotlin代码,什么意思呢?对比一下下面2个代码就知道了:
最近公司项目比较空,花了点时间写了个人脸识别的app,可以查看你的性别、年龄、颜值、情绪等信息,利用的是 Face++ 的人脸识别API。本项目采用了 MVP 的架构,使用了 Retrofit、RxJava、Dagger、EventBus 等框架进行开发和解耦,利用 MaterialDesign 进行UI上的布局设计。
Retrofit框架越来越流行了,Retrofit是基于OKHTTP的大家都知道,在之前的话,在Retrofit1.x的时候,是必须要自己手动导入OKHTTP 和 OKio的包的,因为Retrofit依赖于这两个库的。但是自从升级了Retrofit2之后,就可以不用手动导入了,因为已经自己引入了。 Retrofit有一个优点,就是可以自动根据获取到的数据转换成相对应的Bean,它内部提供了一个转换机制,只需要你重写,就能写出自己的转换规则。 dependencies { compile
我们项目当中的每个app都需要用到网络和服务器进行交互,在Android项目开发中使用HTTP协议完成通信的话,基本上都要用到OkHttp或者Retrofit。
在Android应用开发中,我们经常需要以列表的方式来展示大量的数据,这些数据可能来自网路,也可以来自本地的数据库。为了避免一次性加载大量的数据,对数据进行分页就显得很有必要。分页加载可以根据需要对数据进行按需加载,在不影响用户体验的前提下,提升应用的性能。
MMKV的出现是为了替代SharedPreferences的轻量级存储解决方案。SharedPreferences需要被替换的原因主要是存在下述问题:
首先确定自己需要一些什么数据,在满足自己要求的情况下越简单越好。对每个详情页面,我需要一张图片和一个 html 显示描述就够了。以奶德为例,在服务器的对应目录下,就会有 Eddard_Stark.png 和 Eddard_Stark.html 这两个文件。
Retrofit简单介绍 Retrofit是Square提供的开源产品,为Android平台的应用提供一个类型安全的REST客户端。它是基于注解,提供 JSON to POJO(Plain Ordin
前面我们使用Java来运用JetPack中的一系列组件,又使用kotlin运用这些组件实现了一系列功能: kotlin--Flow文件下载 kotlin--Flow结合Room运用 kotlin--Flow结合retrofit运用 kotlin--StateFlow运用 kotlin--SharedFlow运用 接着,Jetpack的Paging3中,我们使用的语言是kotlin,相信通过这些项目的对比,你就能发现koltin取代Java的理由了,kotlin拥有更好的扩展性,更高的性能,更简洁的代码,更好
本篇文章将采用循序渐进的编码方式,从零开始实现一个Retorift框架,在实现过程中不断提出问题并分析实现,最终开发出一个mini版的Retrofit框架
一开始就不多说废话了,主要因为工作时遇到了一些使用 OKHttp 拦截器的问题,所以在此特写这篇以作记录。
前言 Retrofit是squareup公司的开源力作,和同属squareup公司开源的OkHttp,一个负责网络调度,一个负责网络执行,为Android开发者提供了即方便又高效的网络访问框架。 不过,对于Retrofit这样设计精妙、代码简洁、使用方便的优秀开源项目,不能仅知道如何扩展和使用,或者仅研究它采用的技术或模式,“技”当然重要,但不能忽视了背后的“道”。 对于Retrofit,我们还应该看到的,是她在优化App架构方面的努力,以及她在提升开发效率方面的借鉴和启示。 本文试图通过一个具体场景,先
去年的时候学习了Rxjava和Retrofit的基本用法,但一直没有在实际项目中运用。今年开做新项目,果断在新项目中引入了RxJava和Retrofit。本篇文章将介绍笔者在项目中对Retrofit的封装。 先来看一下封装过后的Retrofit如何使用。
Kotlin协程是什么,如何使用?如何结合Retrofit使用?Kotlin协程的优势在哪里?相信看完这一篇你一定有所收获!
Compose是Android官方提供的声明式UI开发框架,而Compose Multiplatform是由JetBrains 维护的,对于Android开发来说,个人认为学习Jetpack Compose是必须的,因为它会成为Android主流的开发模式,而compose-jb作为一个扩展能力,我们可以有选择的去尝试。今天我们先来了解一下使用compose-jb开发一个桌面端应用的流程。
本文想阐述一下当你开发Android应用并采用RxJava作为你的架构,尤其是有关网络请求时最常见的三种场景。
有关材料设计,我写过一个系列:详见--Android材料设计Material Design 开篇前言
有一段时间没有去写过框架了,最近新的框架MVI,其实出来有一段时间了,只不过大部分项目还没有切换过去,对于公司的老项目来说,之前的MVC、MVP也能用,没有替换的必要,而对于新建的项目来说还是可以替换成功MVVM、MVI等框架的。本文完成后的效果图:
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/52745491
javacompile 'com.squareup.retrofit2:retrofit:2.0.1'
一:Retrofit是什么? 准确来说,Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装。 原因:网络请求的工作本质上是 OkHttp 完成,而 Retrofit 仅负责 网络请求接口的封装 我们先来看看下面这个图:
原文链接: http://www.jianshu.com/p/a8b88c7fe831 http://blog.csdn.net/qq_24889075/article/details/52181133
我想无论是移动端工程师还是服务器工程师,技术成长路线大致都是先熟练(不是熟悉,hahaha)掌握了编程语言、现行开发流行框架和项目业务逻辑后,向着架构师的方向发展。自己搭建一个符合软件工程和项目要求的架构,并在不断实现项目需求的时候一步步完善她设计她,并慢慢和具体框架解耦。当然过程中也是一步步完善自己的编程语言代码的优雅性,可读性,并保持高效的效率。写代码对于个人来说就是一个不断修正,完善自己的过程。最后都是架构,思想,境界的问题了。就像成为了令狐冲这样武侠大咖,无招胜有招,不困惑于具体的编程语言和框架。 当然以上纯属个人扯蛋,YY。
MVVM和MVP是当前比较流行的两种应用开发架构,两者各有优缺点。目前公司所有Android项目用的都是MVP架构,所以这篇文章我们可以一起来深入了解一下。当然光讲MVVM显得有些空洞,因此本文还会附带上了解经常和它搭配使用的RxJava和Retrofit。
每个Android开发者在产品开发的过程中,都需要用到网络和服务器进行交互。而对于网络框架的使用和理解,往往可以看出一个开发者到底处于什么段位:
Retrofit是当前应用非常广泛的网络请求框架,通常结合RxJava来进行网络请求,本文将展示一个采用RxJava+Retrofit的网络请求demo.
大家在和服务交互的时候,大多情况下都应该使用的是 GET、POST 请求吧,下面我们就对 POST 各种数据类型及如何定义接口进行说明。
Retrofit 是 square 公司的另一款广泛流行的网络请求框架。前面的一篇文章《源码分析OKHttp执行过程》已经对 OkHttp 网络请求框架有一个大概的了解。今天同样地对 Retrofit 的源码进行走读,对其底层的实现逻辑做到心中有数。
<List<Repo>>对应的位置类型就是User, 所以上面这个Call方法 返回的就是一个User类型的实例; 所以省去了我们用Gson解析的步骤:
通常我们是Retrofit是和Rxjava配合使用,这里我们不做用法上的过多研究,主要看原理,所以下面的代码都是Retrofit的自身API,没有用Rxjava。
这次继续是在实际项目中遇到的后台传过来的Json数据,我们来看下这次后台传给我们的是怎么样的。
比较AsyncTask、Volley、Retrofit三者的请求时间 使用 单次请求 7个请求 25个请求 AsyncTask 941ms 4539ms 13957ms Volley 560ms 2202ms 4275ms Retrofit2.0 312ms 889ms 1059ms Retrofit2.0 完胜 使用 添加依赖 build.gradle compile ‘com.squareup.retrofit2:retrofit:2.0.0-beta4’ 请求范例 以淘宝的ip库请
比较AsyncTask、Volley、Retrofit三者的请求时间 使用 单次请求 7个请求 25个请求 AsyncTask 941ms 4539ms 13957ms Volley 560ms 2202ms 4275ms Retrofit2.0 312ms 889ms 1059ms Retrofit2.0 完胜 使用 添加依赖 build.gradle compile ‘com.squareup.retrofit2:retrofit
原文地址: http://www.jianshu.com/p/48e66e879061
随着Google对HttpClient 摒弃,和Volley的逐渐没落,OkHttp开始异军突起,而Retrofit则对okHttp进行了强制依赖。Retrofit是由Square公司出品的针对于Android和Java的类型安全的Http客户端,如果看源码会发现其实质上就是对okHttp的封装,使用面向接口的方式进行网络请求,利用动态生成的代理类封装了网络接口请求的底层,其将请求返回javaBean,对网络认证 REST API进行了很好对支持此,使用Retrofit将会极大的提高我们应用的网络体验。
由于后台返回统一数据结构,比如 code, data, message; 使用过 Retrofit 的同学一定定义过类似 BaseResponse 这种类,但是 BaseResponse 的处理逻辑都大同小异, 每次都写着实让人很烦,有没有什么好的方式解决这一痛点呢?本文讲介绍一种优雅的方式 来解决这一问题。
Adapter,继承于PagingDataAdapter,和paging2一样需要DiffUtil.ItemCallback:
领取专属 10元无门槛券
手把手带您无忧上云