0
点赞
收藏
分享

微信扫一扫

Jetpack全系列组件实战网易云音乐APP


为什么要学习Jetpack

  • Jetpack是Google为解决Android开发碎片化,打造成熟健康生态圈提出的战略规划,是Google对Android未来提出的发展方向。
  • Jetpack现已成为面试必问,各大厂+github都已经在拥抱适配Jetpack了。
  • 谷歌力推一统开发规范,support库停更。

所以我认为只要是安卓开发的同学,都或者或晚的要拥抱Jetpack。

Jetpack核心组件介绍

  • Navigation:强大的APP导航组件,能够为Activity,Fragment,Dialog,FloatWindow提供导航。
  • Paging:强大的分页库组件,能够自动化加载页面初始化和分页(向前分页,向后分页)数据。
  • LiveData:基于生命周期的消息订阅组件,不会发生内存泄漏,不用反注册。
  • Room:灵活易用的数据库组件,对sqlite做了上层包装,无缝对接LiveData。
  • ViewModel:数据共享组件,能够实现数据的存储和页面间数据共享。
  • CameraX:强大的基于生命周期的相机控制组件。轻松定制视频录制&拍照功能。
  • DataBinding:空安全的数据与View双向绑定组件,减少异常率
  • WorkManager:强大的后台任务,异步任务管理组件
  • Lifecycles:生命周期管理组件

Jetpack包含了非常多的优秀的组件,但是目前国内关于Jetpack的文章质量良莠不齐,或者说直接翻译英文的比较多,难以引用到项目中。更别谈改造灵活应用了。

本人经历了4个月的时间,潜心研究Jetpack,基于本人的理解,写出这份《Jetpack强化实战手册——网易云音乐APP》。旨在帮助大家在短时间内高效的掌握Jetpack的工作原理和一些搜索不到的用法。

一、初识ConstraintLayout之实现登录页面

1.创建项目
2.沉浸式的布局
3.富文本
4.属性动画

Jetpack全系列组件实战网易云音乐APP_java

二、Navigation实践之实现APP主框架以及Navigation的相关介绍

1.搭建 Bottom Navigation Activity
2.导航界面跳转
3.Navigation传值
4.Navigation跳转动画
5.导航文件拆分
6.Deeplink导航

Jetpack全系列组件实战网易云音乐APP_数据库_02

三、使用 Coroutines, Retrofit, Moshi实现网络数据请求

1.kotlin - Coroutine 协程
2.用协程和Retrofit实现网络请求

Jetpack全系列组件实战网易云音乐APP_android_03

四、使用 TabLayout,ViewPager2 ,RecyclerView实现实现歌单广场页面

1.ViewPager2
2.TabLayout
3.RecyclerView
4.网络数据请求和数据填充
5.优化界面

Jetpack全系列组件实战网易云音乐APP_android_04

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

1.MVC和MVVM介绍
2.修改歌单页面

Jetpack全系列组件实战网易云音乐APP_分页_05

六、Paging实现加载更多和下拉刷新,错误后重新请求

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

Jetpack全系列组件实战网易云音乐APP_数据库_06

七、vlayout嵌套横向RecyclerView和Banner 实现主页的展示,自定义Moshi的JsonAdapter

1.vlayout架构分析
2.vlayout布局介绍
3.基础工作准备
4.vlayout实现轮播图
5.字段内容类型不一致

Jetpack全系列组件实战网易云音乐APP_apache_07

八、Room数据库实现增删改查和事务处理

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

Jetpack全系列组件实战网易云音乐APP_java_08

九、Room数据库Migration

1.新建 Entity
2.新建 Dao
3.修改 Database
4.修改 HomeViewModel
5.Migration

Jetpack全系列组件实战网易云音乐APP_java_09

十、ExoPlayer进行视频播放的实现

1.ExoPlayer介绍
2.ExoPlayer简单的使用方法
3.ExoPlayer简单自定义
4.ExoPlayer高级自定义
5.ExoPlayer在RecyclerView中的复用

Jetpack全系列组件实战网易云音乐APP_数据库_10

十一、MotionLayout让动画如此简单

1.MotionLayout基础
2.关键帧 Keyframes
3.代码启动动画和监听动画
4.MotionLayout案例分析

Jetpack全系列组件实战网易云音乐APP_apache_11

十二、Kotlin Flow基础知识详解

1.Flow 引入的场景
2.Flow 的特性
3.Flow的构造函数
4.Flow中间运算函数
5.Flow结束函数
6.Flow的错误异常处理
7.Flow的取消
8.StateFlow/MutableStateFlow

Jetpack全系列组件实战网易云音乐APP_java_12

十三、Kotlin Flow项目实战-网络、数据库和UI的应用

1.MVVM架构中留给Flow的位置
2.网络数据请求
3.UI相关 - 输入框中输入关键词
4.数据库

Jetpack全系列组件实战网易云音乐APP_android_13

十四、View Binding替代ButterKnife和Kotlin synthetics

1.解决findViewById的忧伤
2.View Binding的使用
3.从Kotlin synthetics迁移到View Binding

Jetpack全系列组件实战网易云音乐APP_java_14


举报

相关推荐

0 条评论