太细了!阿里十年技术专家联合打造“最新”Jetpack强化实战手册

前言
提到Android架构,我们首先想到的是MVC,MVP,MVVM。他们主要是针对视图和模型的。随着Android的发展,从原来的框架很少,全是自己动手撸。到现在框架越来越多,选型也越来越多,导致开发出来越来越不规范。我们知道MVP和MVVM只是应用在架构上,而不是在框架选型上。而google在2018年推出jetpack就是为了解决以上的问题。
Jetpack是什么?
Jetpack它不是一个新的架构,而是一个由多个库组成的套件,可帮助开发者遵循最佳做法,减少样板代码并编写可在各种Android版本和设备中一致运行的代码,让开发者精力集中编写重要的代码。
Jetpack的优势
既然需要使用Jetpack,那么说不出一些优势,你的领导也不会同意说换就换的。下面我们看看jetpack有哪些优势:
Jetpack 拥有基于生命周期感知的能力,可以减少NPE崩溃、内存泄漏。为我们开发出健壮且流畅的程序提供强力保障。
Jetpack 可以减少样板代码,有助于提升 Android 开发的效率。
Android Jetpack要学吗?
学,肯定要学,Android Jetpack于谷歌而言,这是他们重新整理和统一安卓生态环境决心的体现,Android Jetpack所展现的内容,也是谷歌想拓展和维护的方向。于长期苦恼于第三方库选择的广大Android开发者而言,这是谷歌为我们提供的一盏明灯。
也许,Android Jetpack系列的部分库还没成熟到成为你工作的第一选择,但是,深入学习Android Jetpack组件会为你提供与谷歌大佬深入交流的机会,为你日常的开发带来一些想法。
如何学习?
如果你是因为缺少学习资料,而我正好薅到这本阿里十年技术专家联合打造“最新”《Jetpack强化实战手册》,是你学习Jetpack的葵花宝典。下面正文开始:
一、初识ConstraintLayout之实现登录页面
1.创建项目
2.沉浸式的布局
3.富文本
4.属性动画

二、Navigation实践之实现APP主框架以及Navigation的相关介绍
1.搭建 Bottom Navigation Activity
2.导航界面跳转
3.Navigation传值
4.Navigation跳转动画
5.导航文件拆分
6.Deeplink导航

三、使用 Coroutines, Retrofit, Moshi实现网络数据请求
1.kotlin - Coroutine 协程
2.用协程和Retrofit实现网络请求

四、使用 TabLayout,ViewPager2 ,RecyclerView实现实现歌单广场页面
1.ViewPager2
2.TabLayout
3.RecyclerView
4.网络数据请求和数据填充
5.优化界面

五、歌单页面MVVM架构改造及其ViewModel和LiveData的使用介绍
1.MVC和MVVM介绍
2.修改歌单页面

六、Paging实现加载更多和下拉刷新,错误后重新请求
1.Paging的优势
2.Paging实现分页加载更多
3.Paging和SwipRefreshLayout组合实现下拉刷新
4.给RecyclerView添加加载状态的Footer
5.发生网络错误后重试
6.帧动画

七、vlayout嵌套横向RecyclerView和Banner 实现主页的展示,自定义Moshi的JsonAdapter
1.vlayout架构分析
2.vlayout布局介绍
3.基础工作准备
4.vlayout实现轮播图
5.字段内容类型不一致

八、Room数据库实现增删改查和事务处理
1.添加Room依赖
2.Room详细介绍
3.DataBase创建时插入数据
4.Room实现歌单标签编辑界面的增删改查

九、Room数据库Migration
1.新建 Entity
2.新建 Dao
3.修改 Database
4.修改 HomeViewModel
5.Migration

十、ExoPlayer进行视频播放的实现
1.ExoPlayer介绍
2.ExoPlayer简单的使用方法
3.ExoPlayer简单自定义
4.ExoPlayer高级自定义
5.ExoPlayer在RecyclerView中的复用

十一、MotionLayout让动画如此简单
1.MotionLayout基础
2.关键帧 Keyframes
3.代码启动动画和监听动画
4.MotionLayout案例分析

十二、Kotlin Flow基础知识详解
1.Flow 引入的场景
2.Flow 的特性
3.Flow的构造函数
4.Flow中间运算函数
5.Flow结束函数
6.Flow的错误异常处理
7.Flow的取消
8.StateFlow/MutableStateFlow

十三、Kotlin Flow项目实战-网络、数据库和UI的应用
1.MVVM架构中留给Flow的位置
2.网络数据请求
3.UI相关 - 输入框中输入关键词
4.数据库

十四、View Binding替代ButterKnife和Kotlin synthetics
1.解决findViewById的忧伤
2.View Binding的使用
3.从Kotlin synthetics迁移到View Binding

有需要的朋友直接点击此处免费获取完整文档。
太细了!阿里十年技术专家联合打造“最新”Jetpack强化实战手册的更多相关文章
- 阿里云高级技术专家空见: CDN的数据化之路
想要实现优质高速的互联网视频服务,一定离不开高质量的内容分发网络服务,就是我们常说的CDN,在10月13日云栖大会视频多媒体分论坛上,阿里云高级技术专家空见为大家讲解了CDN服务过程中,数据处理.安全 ...
- 阿里云资深技术专家黄省江:让天下没有难做的SaaS
导语:本文中,阿里云资深技术专家黄省江(花名禅笑)将聚焦“SaaS加速器——让天下没有难做的SaaS”,对伙伴来说,SaaS加速器帮助他们做好SaaS,卖好SaaS:对企业来说,SaaS加速器帮助他们 ...
- 专访阿里云资深技术专家黄省江:中国SaaS公司的成功之路
笔者采访中国SaaS厂商10多年,深感面对获客成本巨大.产品技术与功能成熟度不足.项目经营模式难以大规模复制.客户观念有待转变等诸多挑战,很多中国SaaS公司的经营状况都不容乐观. 7月26日,阿里云 ...
- 阿里云内部超全K8s实战手册!超全127页可下载
一直关注云计算领域的人,必定知道Docker和Kubernetes的崛起.如今,世界范围内的公有云巨头(谷歌.亚马逊.微软.华为云.阿里云等等)都在其传统的公共云服务之上提供托管的Kubernetes ...
- 开源Flex Air版免费激情美女视频聊天室,免费网络远程视频会议系统((Flex,Fms3联合打造))
开源Flex Air版免费激情美女视频聊天室,免费网络远程视频会议系统((Flex,Fms3联合打造)) Flex,Fms3系列文章导航 Flex,Fms3相关文章索引 本篇是视频聊天,会议开发实 ...
- 阿里十年架构经验总结的Java学习体系
Java学习这一部分其实是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个 ...
- 细数阿里云在使用 Docker 过程中踩过的那些坑
昨天下午道哥在微信上丢给我一条新闻,看看,我们阿里云支持 Docker 企业版了.我打开一看,果然,阿里云发布了飞天敏捷版,开始支持企业级的 Docker 容器. 美国中部时间4月19日,阿里云在容器 ...
- 【NOI2019十二省联合省选】部分题简要题解
Day 1 T1 异或粽子 题意:给出一个长为n的序列,选择K个不完全重合的区间使得每个区间的异或值的总和最大. 题解:先做一个前缀异或和,对于每一个右端点我们记录三元组(l,r,x)表示在左端点在\ ...
- 8年前诞生于淘宝,细数阿里云RPA 的前世今生!
9月10日,踏入55岁的马云正式卸任阿里巴巴董事局主席一职,由阿里巴巴集团CEO张勇接任.公寓创业.西湖论剑.美国敲钟,从成立到登顶中国最值钱的公司,阿里巴巴只用了20年. 阿里云RPA,2011年诞 ...
随机推荐
- 源码搭建Zabbix4.0.23LTS监控系统
实验环境 centos 7.5 主机名 IP地址 配置 应用 controlnode 172.16.1.120/24 4核/8G/60G java-1.8.0-openjdk zabbix serve ...
- IE浏览器 AjaxForm文件上传错误:Stream ended unexpectedly
错误日志: 1 org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet requ ...
- WEB与游戏开发的一些区别
WEB与游戏开发的一些区别 前言 最近由于在准备期末考,以及准备实习.其实都没好好写过博客,但今天由于个人身边的一些事,所以对做web和做游戏开发的区别做个记录,以下都是从网上搜索到的资料文章,感 ...
- centos7 php开发环境安装-composer
1.安装composer cd /usr/local/src curl -sS https://getcomposer.org/installer | php mv composer.phar /us ...
- mybatis框架的第二天
一.mybatis的基础crud的操作 先在接口中,写对应的方法名称,返回类型,访问符. 之后在映射配置文件中,写具体的实现 二.mybati中crud的细节 1.模糊查询 这是接口中 这是xml中 ...
- 查找----python
class Solution: #顺序查找 def seq_search(self,list,num): for i in(range(len(list))): if list[i] == num: ...
- 知识全聚集 .Net Core 技术突破 丨ABP vNext 开始
介绍 很久没有更新博客了,之前想更新但是发现博客园崩了,外加工作上的调换也比较忙,最近有了点时间我来继续更新下这个系列的文章. 今年3月份我带着我们研发组同事,将公司产品从老Abp重构到Abp vNe ...
- 选择适合入门的自动化测试框架TestNG 基于Java语言的入门选择之一
对于测试工程师新手来说,最痛苦的莫过于入门,其实只要入门3个月左右,对于自动化测试,所有的测试工程师除了喜爱,就是更爱.自动化测试工作,是从根本上解放人性,不用重复去完成鼠标的点点点,例如以下测试常常 ...
- C语言共同体
结构体(Struct)是一种构造类型或复杂类型,它可以包含多个类型不同的成员.在C语言中,还有另外一种和结构体非常类似的语法,叫做共用体(Union),它的定义格式为: union 共用体名{ ...
- 【Azure Redis 缓存】云服务Worker Role中调用StackExchange.Redis,遇见莫名异常(RedisConnectionException: UnableToConnect on xxx 或 No connection is available to service this operation: xxx)
问题描述 在Visual Studio 2019中,通过Cloud Service模板创建了一个Worker Role的角色,在角色中使用StackExchange.Redis来连接Redis.遇见了 ...